diff --git a/Database/Cassandra/Thrift/Cassandra.hs b/Database/Cassandra/Thrift/Cassandra.hs
--- a/Database/Cassandra/Thrift/Cassandra.hs
+++ b/Database/Cassandra/Thrift/Cassandra.hs
@@ -16,1677 +16,2208 @@
 import qualified Database.Cassandra.Thrift.Cassandra_Iface as Iface
 -- HELPER FUNCTIONS AND STRUCTURES --
 
-data Get_args = Get_args{f_Get_args_keyspace :: Maybe String,f_Get_args_key :: Maybe String,f_Get_args_column_path :: Maybe ColumnPath,f_Get_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_args oprot rec = do
-  writeStructBegin oprot "Get_args"
-  case f_Get_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_args_column_path rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_path",T_STRUCT,3)
-    write_ColumnPath oprot _v
-    writeFieldEnd oprot}
-  case f_Get_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,4)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_args_fields iprot rec = do
-  (_,_t81,_id82) <- readFieldBegin iprot
-  if _t81 == T_STOP then return rec else
-    case _id82 of 
-      1 -> if _t81 == T_STRING then do
-        s <- readString iprot
-        read_Get_args_fields iprot rec{f_Get_args_keyspace=Just s}
-        else do
-          skip iprot _t81
-          read_Get_args_fields iprot rec
-      2 -> if _t81 == T_STRING then do
-        s <- readString iprot
-        read_Get_args_fields iprot rec{f_Get_args_key=Just s}
-        else do
-          skip iprot _t81
-          read_Get_args_fields iprot rec
-      3 -> if _t81 == T_STRUCT then do
-        s <- (read_ColumnPath iprot)
-        read_Get_args_fields iprot rec{f_Get_args_column_path=Just s}
-        else do
-          skip iprot _t81
-          read_Get_args_fields iprot rec
-      4 -> if _t81 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_args_fields iprot rec{f_Get_args_consistency_level=Just s}
-        else do
-          skip iprot _t81
-          read_Get_args_fields iprot rec
-      _ -> do
-        skip iprot _t81
-        readFieldEnd iprot
-        read_Get_args_fields iprot rec
-read_Get_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_args_fields iprot (Get_args{f_Get_args_keyspace=Nothing,f_Get_args_key=Nothing,f_Get_args_column_path=Nothing,f_Get_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_result = Get_result{f_Get_result_success :: Maybe ColumnOrSuperColumn,f_Get_result_ire :: Maybe InvalidRequestException,f_Get_result_nfe :: Maybe NotFoundException,f_Get_result_ue :: Maybe UnavailableException,f_Get_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_result oprot rec = do
-  writeStructBegin oprot "Get_result"
-  case f_Get_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_STRUCT,0)
-    write_ColumnOrSuperColumn oprot _v
-    writeFieldEnd oprot}
-  case f_Get_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_result_nfe rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("nfe",T_STRUCT,2)
-    write_NotFoundException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,3)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,4)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_result_fields iprot rec = do
-  (_,_t86,_id87) <- readFieldBegin iprot
-  if _t86 == T_STOP then return rec else
-    case _id87 of 
-      0 -> if _t86 == T_STRUCT then do
-        s <- (read_ColumnOrSuperColumn iprot)
-        read_Get_result_fields iprot rec{f_Get_result_success=Just s}
-        else do
-          skip iprot _t86
-          read_Get_result_fields iprot rec
-      1 -> if _t86 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_result_fields iprot rec{f_Get_result_ire=Just s}
-        else do
-          skip iprot _t86
-          read_Get_result_fields iprot rec
-      2 -> if _t86 == T_STRUCT then do
-        s <- (read_NotFoundException iprot)
-        read_Get_result_fields iprot rec{f_Get_result_nfe=Just s}
-        else do
-          skip iprot _t86
-          read_Get_result_fields iprot rec
-      3 -> if _t86 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_result_fields iprot rec{f_Get_result_ue=Just s}
-        else do
-          skip iprot _t86
-          read_Get_result_fields iprot rec
-      4 -> if _t86 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_result_fields iprot rec{f_Get_result_te=Just s}
-        else do
-          skip iprot _t86
-          read_Get_result_fields iprot rec
-      _ -> do
-        skip iprot _t86
-        readFieldEnd iprot
-        read_Get_result_fields iprot rec
-read_Get_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_result_fields iprot (Get_result{f_Get_result_success=Nothing,f_Get_result_ire=Nothing,f_Get_result_nfe=Nothing,f_Get_result_ue=Nothing,f_Get_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_slice_args = Get_slice_args{f_Get_slice_args_keyspace :: Maybe String,f_Get_slice_args_key :: Maybe String,f_Get_slice_args_column_parent :: Maybe ColumnParent,f_Get_slice_args_predicate :: Maybe SlicePredicate,f_Get_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_slice_args oprot rec = do
-  writeStructBegin oprot "Get_slice_args"
-  case f_Get_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
-    write_ColumnParent oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("predicate",T_STRUCT,4)
-    write_SlicePredicate oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,5)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_slice_args_fields iprot rec = do
-  (_,_t91,_id92) <- readFieldBegin iprot
-  if _t91 == T_STOP then return rec else
-    case _id92 of 
-      1 -> if _t91 == T_STRING then do
-        s <- readString iprot
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_keyspace=Just s}
-        else do
-          skip iprot _t91
-          read_Get_slice_args_fields iprot rec
-      2 -> if _t91 == T_STRING then do
-        s <- readString iprot
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_key=Just s}
-        else do
-          skip iprot _t91
-          read_Get_slice_args_fields iprot rec
-      3 -> if _t91 == T_STRUCT then do
-        s <- (read_ColumnParent iprot)
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_column_parent=Just s}
-        else do
-          skip iprot _t91
-          read_Get_slice_args_fields iprot rec
-      4 -> if _t91 == T_STRUCT then do
-        s <- (read_SlicePredicate iprot)
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_predicate=Just s}
-        else do
-          skip iprot _t91
-          read_Get_slice_args_fields iprot rec
-      5 -> if _t91 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_consistency_level=Just s}
-        else do
-          skip iprot _t91
-          read_Get_slice_args_fields iprot rec
-      _ -> do
-        skip iprot _t91
-        readFieldEnd iprot
-        read_Get_slice_args_fields iprot rec
-read_Get_slice_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_slice_args_fields iprot (Get_slice_args{f_Get_slice_args_keyspace=Nothing,f_Get_slice_args_key=Nothing,f_Get_slice_args_column_parent=Nothing,f_Get_slice_args_predicate=Nothing,f_Get_slice_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_slice_result = Get_slice_result{f_Get_slice_result_success :: Maybe [ColumnOrSuperColumn],f_Get_slice_result_ire :: Maybe InvalidRequestException,f_Get_slice_result_ue :: Maybe UnavailableException,f_Get_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_slice_result oprot rec = do
-  writeStructBegin oprot "Get_slice_result"
-  case f_Get_slice_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter95:t) = do {write_ColumnOrSuperColumn oprot _viter95;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Get_slice_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_slice_result_fields iprot rec = do
-  (_,_t97,_id98) <- readFieldBegin iprot
-  if _t97 == T_STOP then return rec else
-    case _id98 of 
-      0 -> if _t97 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype102,_size99) <- readListBegin iprot; f _size99})
-        read_Get_slice_result_fields iprot rec{f_Get_slice_result_success=Just s}
-        else do
-          skip iprot _t97
-          read_Get_slice_result_fields iprot rec
-      1 -> if _t97 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_slice_result_fields iprot rec{f_Get_slice_result_ire=Just s}
-        else do
-          skip iprot _t97
-          read_Get_slice_result_fields iprot rec
-      2 -> if _t97 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_slice_result_fields iprot rec{f_Get_slice_result_ue=Just s}
-        else do
-          skip iprot _t97
-          read_Get_slice_result_fields iprot rec
-      3 -> if _t97 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_slice_result_fields iprot rec{f_Get_slice_result_te=Just s}
-        else do
-          skip iprot _t97
-          read_Get_slice_result_fields iprot rec
-      _ -> do
-        skip iprot _t97
-        readFieldEnd iprot
-        read_Get_slice_result_fields iprot rec
-read_Get_slice_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_slice_result_fields iprot (Get_slice_result{f_Get_slice_result_success=Nothing,f_Get_slice_result_ire=Nothing,f_Get_slice_result_ue=Nothing,f_Get_slice_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Multiget_args = Multiget_args{f_Multiget_args_keyspace :: Maybe String,f_Multiget_args_keys :: Maybe [String],f_Multiget_args_column_path :: Maybe ColumnPath,f_Multiget_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Multiget_args oprot rec = do
-  writeStructBegin oprot "Multiget_args"
-  case f_Multiget_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_args_keys rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keys",T_LIST,2)
-    (let {f [] = return (); f (_viter106:t) = do {writeString oprot _viter106;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Multiget_args_column_path rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_path",T_STRUCT,3)
-    write_ColumnPath oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,4)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Multiget_args_fields iprot rec = do
-  (_,_t108,_id109) <- readFieldBegin iprot
-  if _t108 == T_STOP then return rec else
-    case _id109 of 
-      1 -> if _t108 == T_STRING then do
-        s <- readString iprot
-        read_Multiget_args_fields iprot rec{f_Multiget_args_keyspace=Just s}
-        else do
-          skip iprot _t108
-          read_Multiget_args_fields iprot rec
-      2 -> if _t108 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype113,_size110) <- readListBegin iprot; f _size110})
-        read_Multiget_args_fields iprot rec{f_Multiget_args_keys=Just s}
-        else do
-          skip iprot _t108
-          read_Multiget_args_fields iprot rec
-      3 -> if _t108 == T_STRUCT then do
-        s <- (read_ColumnPath iprot)
-        read_Multiget_args_fields iprot rec{f_Multiget_args_column_path=Just s}
-        else do
-          skip iprot _t108
-          read_Multiget_args_fields iprot rec
-      4 -> if _t108 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Multiget_args_fields iprot rec{f_Multiget_args_consistency_level=Just s}
-        else do
-          skip iprot _t108
-          read_Multiget_args_fields iprot rec
-      _ -> do
-        skip iprot _t108
-        readFieldEnd iprot
-        read_Multiget_args_fields iprot rec
-read_Multiget_args iprot = do
-  readStructBegin iprot
-  rec <- read_Multiget_args_fields iprot (Multiget_args{f_Multiget_args_keyspace=Nothing,f_Multiget_args_keys=Nothing,f_Multiget_args_column_path=Nothing,f_Multiget_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Multiget_result = Multiget_result{f_Multiget_result_success :: Maybe (Map.Map String ColumnOrSuperColumn),f_Multiget_result_ire :: Maybe InvalidRequestException,f_Multiget_result_ue :: Maybe UnavailableException,f_Multiget_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Multiget_result oprot rec = do
-  writeStructBegin oprot "Multiget_result"
-  case f_Multiget_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_MAP,0)
-    (let {f [] = return (); f ((_kiter117,_viter118):t) = do {do {writeString oprot _kiter117;write_ColumnOrSuperColumn oprot _viter118};f t}} in do {writeMapBegin oprot (T_STRING,T_STRUCT,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  case f_Multiget_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Multiget_result_fields iprot rec = do
-  (_,_t120,_id121) <- readFieldBegin iprot
-  if _t120 == T_STOP then return rec else
-    case _id121 of 
-      0 -> if _t120 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ (k,v):r}} in do {(_ktype123,_vtype124,_size122) <- readMapBegin iprot; l <- f _size122; return $ Map.fromList l})
-        read_Multiget_result_fields iprot rec{f_Multiget_result_success=Just s}
-        else do
-          skip iprot _t120
-          read_Multiget_result_fields iprot rec
-      1 -> if _t120 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Multiget_result_fields iprot rec{f_Multiget_result_ire=Just s}
-        else do
-          skip iprot _t120
-          read_Multiget_result_fields iprot rec
-      2 -> if _t120 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Multiget_result_fields iprot rec{f_Multiget_result_ue=Just s}
-        else do
-          skip iprot _t120
-          read_Multiget_result_fields iprot rec
-      3 -> if _t120 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Multiget_result_fields iprot rec{f_Multiget_result_te=Just s}
-        else do
-          skip iprot _t120
-          read_Multiget_result_fields iprot rec
-      _ -> do
-        skip iprot _t120
-        readFieldEnd iprot
-        read_Multiget_result_fields iprot rec
-read_Multiget_result iprot = do
-  readStructBegin iprot
-  rec <- read_Multiget_result_fields iprot (Multiget_result{f_Multiget_result_success=Nothing,f_Multiget_result_ire=Nothing,f_Multiget_result_ue=Nothing,f_Multiget_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Multiget_slice_args = Multiget_slice_args{f_Multiget_slice_args_keyspace :: Maybe String,f_Multiget_slice_args_keys :: Maybe [String],f_Multiget_slice_args_column_parent :: Maybe ColumnParent,f_Multiget_slice_args_predicate :: Maybe SlicePredicate,f_Multiget_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Multiget_slice_args oprot rec = do
-  writeStructBegin oprot "Multiget_slice_args"
-  case f_Multiget_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_args_keys rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keys",T_LIST,2)
-    (let {f [] = return (); f (_viter129:t) = do {writeString oprot _viter129;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Multiget_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
-    write_ColumnParent oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("predicate",T_STRUCT,4)
-    write_SlicePredicate oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,5)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Multiget_slice_args_fields iprot rec = do
-  (_,_t131,_id132) <- readFieldBegin iprot
-  if _t131 == T_STOP then return rec else
-    case _id132 of 
-      1 -> if _t131 == T_STRING then do
-        s <- readString iprot
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_keyspace=Just s}
-        else do
-          skip iprot _t131
-          read_Multiget_slice_args_fields iprot rec
-      2 -> if _t131 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype136,_size133) <- readListBegin iprot; f _size133})
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_keys=Just s}
-        else do
-          skip iprot _t131
-          read_Multiget_slice_args_fields iprot rec
-      3 -> if _t131 == T_STRUCT then do
-        s <- (read_ColumnParent iprot)
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_column_parent=Just s}
-        else do
-          skip iprot _t131
-          read_Multiget_slice_args_fields iprot rec
-      4 -> if _t131 == T_STRUCT then do
-        s <- (read_SlicePredicate iprot)
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_predicate=Just s}
-        else do
-          skip iprot _t131
-          read_Multiget_slice_args_fields iprot rec
-      5 -> if _t131 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_consistency_level=Just s}
-        else do
-          skip iprot _t131
-          read_Multiget_slice_args_fields iprot rec
-      _ -> do
-        skip iprot _t131
-        readFieldEnd iprot
-        read_Multiget_slice_args_fields iprot rec
-read_Multiget_slice_args iprot = do
-  readStructBegin iprot
-  rec <- read_Multiget_slice_args_fields iprot (Multiget_slice_args{f_Multiget_slice_args_keyspace=Nothing,f_Multiget_slice_args_keys=Nothing,f_Multiget_slice_args_column_parent=Nothing,f_Multiget_slice_args_predicate=Nothing,f_Multiget_slice_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Multiget_slice_result = Multiget_slice_result{f_Multiget_slice_result_success :: Maybe (Map.Map String [ColumnOrSuperColumn]),f_Multiget_slice_result_ire :: Maybe InvalidRequestException,f_Multiget_slice_result_ue :: Maybe UnavailableException,f_Multiget_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Multiget_slice_result oprot rec = do
-  writeStructBegin oprot "Multiget_slice_result"
-  case f_Multiget_slice_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_MAP,0)
-    (let {f [] = return (); f ((_kiter140,_viter141):t) = do {do {writeString oprot _kiter140;(let {f [] = return (); f (_viter142:t) = do {write_ColumnOrSuperColumn oprot _viter142;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter141); f _viter141;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  case f_Multiget_slice_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Multiget_slice_result_fields iprot rec = do
-  (_,_t144,_id145) <- readFieldBegin iprot
-  if _t144 == T_STOP then return rec else
-    case _id145 of 
-      0 -> if _t144 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype154,_size151) <- readListBegin iprot; f _size151});r <- f (n-1); return $ (k,v):r}} in do {(_ktype147,_vtype148,_size146) <- readMapBegin iprot; l <- f _size146; return $ Map.fromList l})
-        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_success=Just s}
-        else do
-          skip iprot _t144
-          read_Multiget_slice_result_fields iprot rec
-      1 -> if _t144 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_ire=Just s}
-        else do
-          skip iprot _t144
-          read_Multiget_slice_result_fields iprot rec
-      2 -> if _t144 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_ue=Just s}
-        else do
-          skip iprot _t144
-          read_Multiget_slice_result_fields iprot rec
-      3 -> if _t144 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_te=Just s}
-        else do
-          skip iprot _t144
-          read_Multiget_slice_result_fields iprot rec
-      _ -> do
-        skip iprot _t144
-        readFieldEnd iprot
-        read_Multiget_slice_result_fields iprot rec
-read_Multiget_slice_result iprot = do
-  readStructBegin iprot
-  rec <- read_Multiget_slice_result_fields iprot (Multiget_slice_result{f_Multiget_slice_result_success=Nothing,f_Multiget_slice_result_ire=Nothing,f_Multiget_slice_result_ue=Nothing,f_Multiget_slice_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_count_args = Get_count_args{f_Get_count_args_keyspace :: Maybe String,f_Get_count_args_key :: Maybe String,f_Get_count_args_column_parent :: Maybe ColumnParent,f_Get_count_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_count_args oprot rec = do
-  writeStructBegin oprot "Get_count_args"
-  case f_Get_count_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_args_column_parent rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
-    write_ColumnParent oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,4)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_count_args_fields iprot rec = do
-  (_,_t159,_id160) <- readFieldBegin iprot
-  if _t159 == T_STOP then return rec else
-    case _id160 of 
-      1 -> if _t159 == T_STRING then do
-        s <- readString iprot
-        read_Get_count_args_fields iprot rec{f_Get_count_args_keyspace=Just s}
-        else do
-          skip iprot _t159
-          read_Get_count_args_fields iprot rec
-      2 -> if _t159 == T_STRING then do
-        s <- readString iprot
-        read_Get_count_args_fields iprot rec{f_Get_count_args_key=Just s}
-        else do
-          skip iprot _t159
-          read_Get_count_args_fields iprot rec
-      3 -> if _t159 == T_STRUCT then do
-        s <- (read_ColumnParent iprot)
-        read_Get_count_args_fields iprot rec{f_Get_count_args_column_parent=Just s}
-        else do
-          skip iprot _t159
-          read_Get_count_args_fields iprot rec
-      4 -> if _t159 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_count_args_fields iprot rec{f_Get_count_args_consistency_level=Just s}
-        else do
-          skip iprot _t159
-          read_Get_count_args_fields iprot rec
-      _ -> do
-        skip iprot _t159
-        readFieldEnd iprot
-        read_Get_count_args_fields iprot rec
-read_Get_count_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_count_args_fields iprot (Get_count_args{f_Get_count_args_keyspace=Nothing,f_Get_count_args_key=Nothing,f_Get_count_args_column_parent=Nothing,f_Get_count_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_count_result = Get_count_result{f_Get_count_result_success :: Maybe Int,f_Get_count_result_ire :: Maybe InvalidRequestException,f_Get_count_result_ue :: Maybe UnavailableException,f_Get_count_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_count_result oprot rec = do
-  writeStructBegin oprot "Get_count_result"
-  case f_Get_count_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_I32,0)
-    writeI32 oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_count_result_fields iprot rec = do
-  (_,_t164,_id165) <- readFieldBegin iprot
-  if _t164 == T_STOP then return rec else
-    case _id165 of 
-      0 -> if _t164 == T_I32 then do
-        s <- readI32 iprot
-        read_Get_count_result_fields iprot rec{f_Get_count_result_success=Just s}
-        else do
-          skip iprot _t164
-          read_Get_count_result_fields iprot rec
-      1 -> if _t164 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_count_result_fields iprot rec{f_Get_count_result_ire=Just s}
-        else do
-          skip iprot _t164
-          read_Get_count_result_fields iprot rec
-      2 -> if _t164 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_count_result_fields iprot rec{f_Get_count_result_ue=Just s}
-        else do
-          skip iprot _t164
-          read_Get_count_result_fields iprot rec
-      3 -> if _t164 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_count_result_fields iprot rec{f_Get_count_result_te=Just s}
-        else do
-          skip iprot _t164
-          read_Get_count_result_fields iprot rec
-      _ -> do
-        skip iprot _t164
-        readFieldEnd iprot
-        read_Get_count_result_fields iprot rec
-read_Get_count_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_count_result_fields iprot (Get_count_result{f_Get_count_result_success=Nothing,f_Get_count_result_ire=Nothing,f_Get_count_result_ue=Nothing,f_Get_count_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_key_range_args = Get_key_range_args{f_Get_key_range_args_keyspace :: Maybe String,f_Get_key_range_args_column_family :: Maybe String,f_Get_key_range_args_start :: Maybe String,f_Get_key_range_args_finish :: Maybe String,f_Get_key_range_args_count :: Maybe Int,f_Get_key_range_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_key_range_args oprot rec = do
-  writeStructBegin oprot "Get_key_range_args"
-  case f_Get_key_range_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_key_range_args_column_family rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_family",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_key_range_args_start rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("start",T_STRING,3)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_key_range_args_finish rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("finish",T_STRING,4)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_key_range_args_count rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("count",T_I32,5)
-    writeI32 oprot _v
-    writeFieldEnd oprot}
-  case f_Get_key_range_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,6)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_key_range_args_fields iprot rec = do
-  (_,_t169,_id170) <- readFieldBegin iprot
-  if _t169 == T_STOP then return rec else
-    case _id170 of 
-      1 -> if _t169 == T_STRING then do
-        s <- readString iprot
-        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_keyspace=Just s}
-        else do
-          skip iprot _t169
-          read_Get_key_range_args_fields iprot rec
-      2 -> if _t169 == T_STRING then do
-        s <- readString iprot
-        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_column_family=Just s}
-        else do
-          skip iprot _t169
-          read_Get_key_range_args_fields iprot rec
-      3 -> if _t169 == T_STRING then do
-        s <- readString iprot
-        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_start=Just s}
-        else do
-          skip iprot _t169
-          read_Get_key_range_args_fields iprot rec
-      4 -> if _t169 == T_STRING then do
-        s <- readString iprot
-        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_finish=Just s}
-        else do
-          skip iprot _t169
-          read_Get_key_range_args_fields iprot rec
-      5 -> if _t169 == T_I32 then do
-        s <- readI32 iprot
-        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_count=Just s}
-        else do
-          skip iprot _t169
-          read_Get_key_range_args_fields iprot rec
-      6 -> if _t169 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_consistency_level=Just s}
-        else do
-          skip iprot _t169
-          read_Get_key_range_args_fields iprot rec
-      _ -> do
-        skip iprot _t169
-        readFieldEnd iprot
-        read_Get_key_range_args_fields iprot rec
-read_Get_key_range_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_key_range_args_fields iprot (Get_key_range_args{f_Get_key_range_args_keyspace=Nothing,f_Get_key_range_args_column_family=Nothing,f_Get_key_range_args_start=Nothing,f_Get_key_range_args_finish=Nothing,f_Get_key_range_args_count=Nothing,f_Get_key_range_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_key_range_result = Get_key_range_result{f_Get_key_range_result_success :: Maybe [String],f_Get_key_range_result_ire :: Maybe InvalidRequestException,f_Get_key_range_result_ue :: Maybe UnavailableException,f_Get_key_range_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_key_range_result oprot rec = do
-  writeStructBegin oprot "Get_key_range_result"
-  case f_Get_key_range_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter173:t) = do {writeString oprot _viter173;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Get_key_range_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_key_range_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_key_range_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_key_range_result_fields iprot rec = do
-  (_,_t175,_id176) <- readFieldBegin iprot
-  if _t175 == T_STOP then return rec else
-    case _id176 of 
-      0 -> if _t175 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype180,_size177) <- readListBegin iprot; f _size177})
-        read_Get_key_range_result_fields iprot rec{f_Get_key_range_result_success=Just s}
-        else do
-          skip iprot _t175
-          read_Get_key_range_result_fields iprot rec
-      1 -> if _t175 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_key_range_result_fields iprot rec{f_Get_key_range_result_ire=Just s}
-        else do
-          skip iprot _t175
-          read_Get_key_range_result_fields iprot rec
-      2 -> if _t175 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_key_range_result_fields iprot rec{f_Get_key_range_result_ue=Just s}
-        else do
-          skip iprot _t175
-          read_Get_key_range_result_fields iprot rec
-      3 -> if _t175 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_key_range_result_fields iprot rec{f_Get_key_range_result_te=Just s}
-        else do
-          skip iprot _t175
-          read_Get_key_range_result_fields iprot rec
-      _ -> do
-        skip iprot _t175
-        readFieldEnd iprot
-        read_Get_key_range_result_fields iprot rec
-read_Get_key_range_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_key_range_result_fields iprot (Get_key_range_result{f_Get_key_range_result_success=Nothing,f_Get_key_range_result_ire=Nothing,f_Get_key_range_result_ue=Nothing,f_Get_key_range_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_range_slice_args = Get_range_slice_args{f_Get_range_slice_args_keyspace :: Maybe String,f_Get_range_slice_args_column_parent :: Maybe ColumnParent,f_Get_range_slice_args_predicate :: Maybe SlicePredicate,f_Get_range_slice_args_start_key :: Maybe String,f_Get_range_slice_args_finish_key :: Maybe String,f_Get_range_slice_args_row_count :: Maybe Int,f_Get_range_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_range_slice_args oprot rec = do
-  writeStructBegin oprot "Get_range_slice_args"
-  case f_Get_range_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
-    write_ColumnParent oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("predicate",T_STRUCT,3)
-    write_SlicePredicate oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_start_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("start_key",T_STRING,4)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_finish_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("finish_key",T_STRING,5)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_row_count rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("row_count",T_I32,6)
-    writeI32 oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,7)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_range_slice_args_fields iprot rec = do
-  (_,_t185,_id186) <- readFieldBegin iprot
-  if _t185 == T_STOP then return rec else
-    case _id186 of 
-      1 -> if _t185 == T_STRING then do
-        s <- readString iprot
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_keyspace=Just s}
-        else do
-          skip iprot _t185
-          read_Get_range_slice_args_fields iprot rec
-      2 -> if _t185 == T_STRUCT then do
-        s <- (read_ColumnParent iprot)
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_column_parent=Just s}
-        else do
-          skip iprot _t185
-          read_Get_range_slice_args_fields iprot rec
-      3 -> if _t185 == T_STRUCT then do
-        s <- (read_SlicePredicate iprot)
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_predicate=Just s}
-        else do
-          skip iprot _t185
-          read_Get_range_slice_args_fields iprot rec
-      4 -> if _t185 == T_STRING then do
-        s <- readString iprot
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_start_key=Just s}
-        else do
-          skip iprot _t185
-          read_Get_range_slice_args_fields iprot rec
-      5 -> if _t185 == T_STRING then do
-        s <- readString iprot
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_finish_key=Just s}
-        else do
-          skip iprot _t185
-          read_Get_range_slice_args_fields iprot rec
-      6 -> if _t185 == T_I32 then do
-        s <- readI32 iprot
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_row_count=Just s}
-        else do
-          skip iprot _t185
-          read_Get_range_slice_args_fields iprot rec
-      7 -> if _t185 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_consistency_level=Just s}
-        else do
-          skip iprot _t185
-          read_Get_range_slice_args_fields iprot rec
-      _ -> do
-        skip iprot _t185
-        readFieldEnd iprot
-        read_Get_range_slice_args_fields iprot rec
-read_Get_range_slice_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_range_slice_args_fields iprot (Get_range_slice_args{f_Get_range_slice_args_keyspace=Nothing,f_Get_range_slice_args_column_parent=Nothing,f_Get_range_slice_args_predicate=Nothing,f_Get_range_slice_args_start_key=Nothing,f_Get_range_slice_args_finish_key=Nothing,f_Get_range_slice_args_row_count=Nothing,f_Get_range_slice_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_range_slice_result = Get_range_slice_result{f_Get_range_slice_result_success :: Maybe [KeySlice],f_Get_range_slice_result_ire :: Maybe InvalidRequestException,f_Get_range_slice_result_ue :: Maybe UnavailableException,f_Get_range_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_range_slice_result oprot rec = do
-  writeStructBegin oprot "Get_range_slice_result"
-  case f_Get_range_slice_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter189:t) = do {write_KeySlice oprot _viter189;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Get_range_slice_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_range_slice_result_fields iprot rec = do
-  (_,_t191,_id192) <- readFieldBegin iprot
-  if _t191 == T_STOP then return rec else
-    case _id192 of 
-      0 -> if _t191 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- (read_KeySlice iprot);r <- f (n-1); return $ v:r}} in do {(_etype196,_size193) <- readListBegin iprot; f _size193})
-        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_success=Just s}
-        else do
-          skip iprot _t191
-          read_Get_range_slice_result_fields iprot rec
-      1 -> if _t191 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_ire=Just s}
-        else do
-          skip iprot _t191
-          read_Get_range_slice_result_fields iprot rec
-      2 -> if _t191 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_ue=Just s}
-        else do
-          skip iprot _t191
-          read_Get_range_slice_result_fields iprot rec
-      3 -> if _t191 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_te=Just s}
-        else do
-          skip iprot _t191
-          read_Get_range_slice_result_fields iprot rec
-      _ -> do
-        skip iprot _t191
-        readFieldEnd iprot
-        read_Get_range_slice_result_fields iprot rec
-read_Get_range_slice_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_range_slice_result_fields iprot (Get_range_slice_result{f_Get_range_slice_result_success=Nothing,f_Get_range_slice_result_ire=Nothing,f_Get_range_slice_result_ue=Nothing,f_Get_range_slice_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Insert_args = Insert_args{f_Insert_args_keyspace :: Maybe String,f_Insert_args_key :: Maybe String,f_Insert_args_column_path :: Maybe ColumnPath,f_Insert_args_value :: Maybe String,f_Insert_args_timestamp :: Maybe Int64,f_Insert_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Insert_args oprot rec = do
-  writeStructBegin oprot "Insert_args"
-  case f_Insert_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_column_path rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_path",T_STRUCT,3)
-    write_ColumnPath oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_value rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("value",T_STRING,4)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_timestamp rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("timestamp",T_I64,5)
-    writeI64 oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,6)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Insert_args_fields iprot rec = do
-  (_,_t201,_id202) <- readFieldBegin iprot
-  if _t201 == T_STOP then return rec else
-    case _id202 of 
-      1 -> if _t201 == T_STRING then do
-        s <- readString iprot
-        read_Insert_args_fields iprot rec{f_Insert_args_keyspace=Just s}
-        else do
-          skip iprot _t201
-          read_Insert_args_fields iprot rec
-      2 -> if _t201 == T_STRING then do
-        s <- readString iprot
-        read_Insert_args_fields iprot rec{f_Insert_args_key=Just s}
-        else do
-          skip iprot _t201
-          read_Insert_args_fields iprot rec
-      3 -> if _t201 == T_STRUCT then do
-        s <- (read_ColumnPath iprot)
-        read_Insert_args_fields iprot rec{f_Insert_args_column_path=Just s}
-        else do
-          skip iprot _t201
-          read_Insert_args_fields iprot rec
-      4 -> if _t201 == T_STRING then do
-        s <- readString iprot
-        read_Insert_args_fields iprot rec{f_Insert_args_value=Just s}
-        else do
-          skip iprot _t201
-          read_Insert_args_fields iprot rec
-      5 -> if _t201 == T_I64 then do
-        s <- readI64 iprot
-        read_Insert_args_fields iprot rec{f_Insert_args_timestamp=Just s}
-        else do
-          skip iprot _t201
-          read_Insert_args_fields iprot rec
-      6 -> if _t201 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Insert_args_fields iprot rec{f_Insert_args_consistency_level=Just s}
-        else do
-          skip iprot _t201
-          read_Insert_args_fields iprot rec
-      _ -> do
-        skip iprot _t201
-        readFieldEnd iprot
-        read_Insert_args_fields iprot rec
-read_Insert_args iprot = do
-  readStructBegin iprot
-  rec <- read_Insert_args_fields iprot (Insert_args{f_Insert_args_keyspace=Nothing,f_Insert_args_key=Nothing,f_Insert_args_column_path=Nothing,f_Insert_args_value=Nothing,f_Insert_args_timestamp=Nothing,f_Insert_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Insert_result = Insert_result{f_Insert_result_ire :: Maybe InvalidRequestException,f_Insert_result_ue :: Maybe UnavailableException,f_Insert_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Insert_result oprot rec = do
-  writeStructBegin oprot "Insert_result"
-  case f_Insert_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Insert_result_fields iprot rec = do
-  (_,_t206,_id207) <- readFieldBegin iprot
-  if _t206 == T_STOP then return rec else
-    case _id207 of 
-      1 -> if _t206 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Insert_result_fields iprot rec{f_Insert_result_ire=Just s}
-        else do
-          skip iprot _t206
-          read_Insert_result_fields iprot rec
-      2 -> if _t206 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Insert_result_fields iprot rec{f_Insert_result_ue=Just s}
-        else do
-          skip iprot _t206
-          read_Insert_result_fields iprot rec
-      3 -> if _t206 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Insert_result_fields iprot rec{f_Insert_result_te=Just s}
-        else do
-          skip iprot _t206
-          read_Insert_result_fields iprot rec
-      _ -> do
-        skip iprot _t206
-        readFieldEnd iprot
-        read_Insert_result_fields iprot rec
-read_Insert_result iprot = do
-  readStructBegin iprot
-  rec <- read_Insert_result_fields iprot (Insert_result{f_Insert_result_ire=Nothing,f_Insert_result_ue=Nothing,f_Insert_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Batch_insert_args = Batch_insert_args{f_Batch_insert_args_keyspace :: Maybe String,f_Batch_insert_args_key :: Maybe String,f_Batch_insert_args_cfmap :: Maybe (Map.Map String [ColumnOrSuperColumn]),f_Batch_insert_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Batch_insert_args oprot rec = do
-  writeStructBegin oprot "Batch_insert_args"
-  case f_Batch_insert_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_insert_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_insert_args_cfmap rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("cfmap",T_MAP,3)
-    (let {f [] = return (); f ((_kiter210,_viter211):t) = do {do {writeString oprot _kiter210;(let {f [] = return (); f (_viter212:t) = do {write_ColumnOrSuperColumn oprot _viter212;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter211); f _viter211;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  case f_Batch_insert_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,4)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Batch_insert_args_fields iprot rec = do
-  (_,_t214,_id215) <- readFieldBegin iprot
-  if _t214 == T_STOP then return rec else
-    case _id215 of 
-      1 -> if _t214 == T_STRING then do
-        s <- readString iprot
-        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_keyspace=Just s}
-        else do
-          skip iprot _t214
-          read_Batch_insert_args_fields iprot rec
-      2 -> if _t214 == T_STRING then do
-        s <- readString iprot
-        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_key=Just s}
-        else do
-          skip iprot _t214
-          read_Batch_insert_args_fields iprot rec
-      3 -> if _t214 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype224,_size221) <- readListBegin iprot; f _size221});r <- f (n-1); return $ (k,v):r}} in do {(_ktype217,_vtype218,_size216) <- readMapBegin iprot; l <- f _size216; return $ Map.fromList l})
-        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_cfmap=Just s}
-        else do
-          skip iprot _t214
-          read_Batch_insert_args_fields iprot rec
-      4 -> if _t214 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_consistency_level=Just s}
-        else do
-          skip iprot _t214
-          read_Batch_insert_args_fields iprot rec
-      _ -> do
-        skip iprot _t214
-        readFieldEnd iprot
-        read_Batch_insert_args_fields iprot rec
-read_Batch_insert_args iprot = do
-  readStructBegin iprot
-  rec <- read_Batch_insert_args_fields iprot (Batch_insert_args{f_Batch_insert_args_keyspace=Nothing,f_Batch_insert_args_key=Nothing,f_Batch_insert_args_cfmap=Nothing,f_Batch_insert_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Batch_insert_result = Batch_insert_result{f_Batch_insert_result_ire :: Maybe InvalidRequestException,f_Batch_insert_result_ue :: Maybe UnavailableException,f_Batch_insert_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Batch_insert_result oprot rec = do
-  writeStructBegin oprot "Batch_insert_result"
-  case f_Batch_insert_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_insert_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_insert_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Batch_insert_result_fields iprot rec = do
-  (_,_t229,_id230) <- readFieldBegin iprot
-  if _t229 == T_STOP then return rec else
-    case _id230 of 
-      1 -> if _t229 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_ire=Just s}
-        else do
-          skip iprot _t229
-          read_Batch_insert_result_fields iprot rec
-      2 -> if _t229 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_ue=Just s}
-        else do
-          skip iprot _t229
-          read_Batch_insert_result_fields iprot rec
-      3 -> if _t229 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_te=Just s}
-        else do
-          skip iprot _t229
-          read_Batch_insert_result_fields iprot rec
-      _ -> do
-        skip iprot _t229
-        readFieldEnd iprot
-        read_Batch_insert_result_fields iprot rec
-read_Batch_insert_result iprot = do
-  readStructBegin iprot
-  rec <- read_Batch_insert_result_fields iprot (Batch_insert_result{f_Batch_insert_result_ire=Nothing,f_Batch_insert_result_ue=Nothing,f_Batch_insert_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Remove_args = Remove_args{f_Remove_args_keyspace :: Maybe String,f_Remove_args_key :: Maybe String,f_Remove_args_column_path :: Maybe ColumnPath,f_Remove_args_timestamp :: Maybe Int64,f_Remove_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Remove_args oprot rec = do
-  writeStructBegin oprot "Remove_args"
-  case f_Remove_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_args_column_path rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_path",T_STRUCT,3)
-    write_ColumnPath oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_args_timestamp rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("timestamp",T_I64,4)
-    writeI64 oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,5)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Remove_args_fields iprot rec = do
-  (_,_t234,_id235) <- readFieldBegin iprot
-  if _t234 == T_STOP then return rec else
-    case _id235 of 
-      1 -> if _t234 == T_STRING then do
-        s <- readString iprot
-        read_Remove_args_fields iprot rec{f_Remove_args_keyspace=Just s}
-        else do
-          skip iprot _t234
-          read_Remove_args_fields iprot rec
-      2 -> if _t234 == T_STRING then do
-        s <- readString iprot
-        read_Remove_args_fields iprot rec{f_Remove_args_key=Just s}
-        else do
-          skip iprot _t234
-          read_Remove_args_fields iprot rec
-      3 -> if _t234 == T_STRUCT then do
-        s <- (read_ColumnPath iprot)
-        read_Remove_args_fields iprot rec{f_Remove_args_column_path=Just s}
-        else do
-          skip iprot _t234
-          read_Remove_args_fields iprot rec
-      4 -> if _t234 == T_I64 then do
-        s <- readI64 iprot
-        read_Remove_args_fields iprot rec{f_Remove_args_timestamp=Just s}
-        else do
-          skip iprot _t234
-          read_Remove_args_fields iprot rec
-      5 -> if _t234 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Remove_args_fields iprot rec{f_Remove_args_consistency_level=Just s}
-        else do
-          skip iprot _t234
-          read_Remove_args_fields iprot rec
-      _ -> do
-        skip iprot _t234
-        readFieldEnd iprot
-        read_Remove_args_fields iprot rec
-read_Remove_args iprot = do
-  readStructBegin iprot
-  rec <- read_Remove_args_fields iprot (Remove_args{f_Remove_args_keyspace=Nothing,f_Remove_args_key=Nothing,f_Remove_args_column_path=Nothing,f_Remove_args_timestamp=Nothing,f_Remove_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Remove_result = Remove_result{f_Remove_result_ire :: Maybe InvalidRequestException,f_Remove_result_ue :: Maybe UnavailableException,f_Remove_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Remove_result oprot rec = do
-  writeStructBegin oprot "Remove_result"
-  case f_Remove_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Remove_result_fields iprot rec = do
-  (_,_t239,_id240) <- readFieldBegin iprot
-  if _t239 == T_STOP then return rec else
-    case _id240 of 
-      1 -> if _t239 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Remove_result_fields iprot rec{f_Remove_result_ire=Just s}
-        else do
-          skip iprot _t239
-          read_Remove_result_fields iprot rec
-      2 -> if _t239 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Remove_result_fields iprot rec{f_Remove_result_ue=Just s}
-        else do
-          skip iprot _t239
-          read_Remove_result_fields iprot rec
-      3 -> if _t239 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Remove_result_fields iprot rec{f_Remove_result_te=Just s}
-        else do
-          skip iprot _t239
-          read_Remove_result_fields iprot rec
-      _ -> do
-        skip iprot _t239
-        readFieldEnd iprot
-        read_Remove_result_fields iprot rec
-read_Remove_result iprot = do
-  readStructBegin iprot
-  rec <- read_Remove_result_fields iprot (Remove_result{f_Remove_result_ire=Nothing,f_Remove_result_ue=Nothing,f_Remove_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_string_property_args = Get_string_property_args{f_Get_string_property_args_property :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Get_string_property_args oprot rec = do
-  writeStructBegin oprot "Get_string_property_args"
-  case f_Get_string_property_args_property rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("property",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_string_property_args_fields iprot rec = do
-  (_,_t244,_id245) <- readFieldBegin iprot
-  if _t244 == T_STOP then return rec else
-    case _id245 of 
-      1 -> if _t244 == T_STRING then do
-        s <- readString iprot
-        read_Get_string_property_args_fields iprot rec{f_Get_string_property_args_property=Just s}
-        else do
-          skip iprot _t244
-          read_Get_string_property_args_fields iprot rec
-      _ -> do
-        skip iprot _t244
-        readFieldEnd iprot
-        read_Get_string_property_args_fields iprot rec
-read_Get_string_property_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_string_property_args_fields iprot (Get_string_property_args{f_Get_string_property_args_property=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_string_property_result = Get_string_property_result{f_Get_string_property_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Get_string_property_result oprot rec = do
-  writeStructBegin oprot "Get_string_property_result"
-  case f_Get_string_property_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_STRING,0)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_string_property_result_fields iprot rec = do
-  (_,_t249,_id250) <- readFieldBegin iprot
-  if _t249 == T_STOP then return rec else
-    case _id250 of 
-      0 -> if _t249 == T_STRING then do
-        s <- readString iprot
-        read_Get_string_property_result_fields iprot rec{f_Get_string_property_result_success=Just s}
-        else do
-          skip iprot _t249
-          read_Get_string_property_result_fields iprot rec
-      _ -> do
-        skip iprot _t249
-        readFieldEnd iprot
-        read_Get_string_property_result_fields iprot rec
-read_Get_string_property_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_string_property_result_fields iprot (Get_string_property_result{f_Get_string_property_result_success=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_string_list_property_args = Get_string_list_property_args{f_Get_string_list_property_args_property :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Get_string_list_property_args oprot rec = do
-  writeStructBegin oprot "Get_string_list_property_args"
-  case f_Get_string_list_property_args_property rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("property",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_string_list_property_args_fields iprot rec = do
-  (_,_t254,_id255) <- readFieldBegin iprot
-  if _t254 == T_STOP then return rec else
-    case _id255 of 
-      1 -> if _t254 == T_STRING then do
-        s <- readString iprot
-        read_Get_string_list_property_args_fields iprot rec{f_Get_string_list_property_args_property=Just s}
-        else do
-          skip iprot _t254
-          read_Get_string_list_property_args_fields iprot rec
-      _ -> do
-        skip iprot _t254
-        readFieldEnd iprot
-        read_Get_string_list_property_args_fields iprot rec
-read_Get_string_list_property_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_string_list_property_args_fields iprot (Get_string_list_property_args{f_Get_string_list_property_args_property=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_string_list_property_result = Get_string_list_property_result{f_Get_string_list_property_result_success :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
-write_Get_string_list_property_result oprot rec = do
-  writeStructBegin oprot "Get_string_list_property_result"
-  case f_Get_string_list_property_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter258:t) = do {writeString oprot _viter258;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_string_list_property_result_fields iprot rec = do
-  (_,_t260,_id261) <- readFieldBegin iprot
-  if _t260 == T_STOP then return rec else
-    case _id261 of 
-      0 -> if _t260 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype265,_size262) <- readListBegin iprot; f _size262})
-        read_Get_string_list_property_result_fields iprot rec{f_Get_string_list_property_result_success=Just s}
-        else do
-          skip iprot _t260
-          read_Get_string_list_property_result_fields iprot rec
-      _ -> do
-        skip iprot _t260
-        readFieldEnd iprot
-        read_Get_string_list_property_result_fields iprot rec
-read_Get_string_list_property_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_string_list_property_result_fields iprot (Get_string_list_property_result{f_Get_string_list_property_result_success=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_keyspace_args = Describe_keyspace_args{f_Describe_keyspace_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Describe_keyspace_args oprot rec = do
-  writeStructBegin oprot "Describe_keyspace_args"
-  case f_Describe_keyspace_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_keyspace_args_fields iprot rec = do
-  (_,_t270,_id271) <- readFieldBegin iprot
-  if _t270 == T_STOP then return rec else
-    case _id271 of 
-      1 -> if _t270 == T_STRING then do
-        s <- readString iprot
-        read_Describe_keyspace_args_fields iprot rec{f_Describe_keyspace_args_keyspace=Just s}
-        else do
-          skip iprot _t270
-          read_Describe_keyspace_args_fields iprot rec
-      _ -> do
-        skip iprot _t270
-        readFieldEnd iprot
-        read_Describe_keyspace_args_fields iprot rec
-read_Describe_keyspace_args iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_keyspace_args_fields iprot (Describe_keyspace_args{f_Describe_keyspace_args_keyspace=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_keyspace_result = Describe_keyspace_result{f_Describe_keyspace_result_success :: Maybe (Map.Map String (Map.Map String String)),f_Describe_keyspace_result_nfe :: Maybe NotFoundException} deriving (Show,Eq,Ord,Typeable)
-write_Describe_keyspace_result oprot rec = do
-  writeStructBegin oprot "Describe_keyspace_result"
-  case f_Describe_keyspace_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_MAP,0)
-    (let {f [] = return (); f ((_kiter274,_viter275):t) = do {do {writeString oprot _kiter274;(let {f [] = return (); f ((_kiter276,_viter277):t) = do {do {writeString oprot _kiter276;writeString oprot _viter277};f t}} in do {writeMapBegin oprot (T_STRING,T_STRING,Map.size _viter275); f (Map.toList _viter275);writeMapEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_MAP,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  case f_Describe_keyspace_result_nfe rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("nfe",T_STRUCT,1)
-    write_NotFoundException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_keyspace_result_fields iprot rec = do
-  (_,_t279,_id280) <- readFieldBegin iprot
-  if _t279 == T_STOP then return rec else
-    case _id280 of 
-      0 -> if _t279 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- readString iprot;r <- f (n-1); return $ (k,v):r}} in do {(_ktype287,_vtype288,_size286) <- readMapBegin iprot; l <- f _size286; return $ Map.fromList l});r <- f (n-1); return $ (k,v):r}} in do {(_ktype282,_vtype283,_size281) <- readMapBegin iprot; l <- f _size281; return $ Map.fromList l})
-        read_Describe_keyspace_result_fields iprot rec{f_Describe_keyspace_result_success=Just s}
-        else do
-          skip iprot _t279
-          read_Describe_keyspace_result_fields iprot rec
-      1 -> if _t279 == T_STRUCT then do
-        s <- (read_NotFoundException iprot)
-        read_Describe_keyspace_result_fields iprot rec{f_Describe_keyspace_result_nfe=Just s}
-        else do
-          skip iprot _t279
-          read_Describe_keyspace_result_fields iprot rec
-      _ -> do
-        skip iprot _t279
-        readFieldEnd iprot
-        read_Describe_keyspace_result_fields iprot rec
-read_Describe_keyspace_result iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_keyspace_result_fields iprot (Describe_keyspace_result{f_Describe_keyspace_result_success=Nothing,f_Describe_keyspace_result_nfe=Nothing})
-  readStructEnd iprot
-  return rec
-process_get (seqid, iprot, oprot, handler) = do
-  args <- read_Get_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_result Nothing Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (Control.Exception.catch
-          (do
-            res <- Iface.get handler (f_Get_args_keyspace args) (f_Get_args_key args) (f_Get_args_column_path args) (f_Get_args_consistency_level args)
-            return rs{f_Get_result_success= Just res})
-          (\e  -> 
-            return rs{f_Get_result_ire =Just e}))
-        (\e  -> 
-          return rs{f_Get_result_nfe =Just e}))
-      (\e  -> 
-        return rs{f_Get_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_result_te =Just e}))
-  writeMessageBegin oprot ("get", M_REPLY, seqid);
-  write_Get_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_slice (seqid, iprot, oprot, handler) = do
-  args <- read_Get_slice_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_slice_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.get_slice handler (f_Get_slice_args_keyspace args) (f_Get_slice_args_key args) (f_Get_slice_args_column_parent args) (f_Get_slice_args_predicate args) (f_Get_slice_args_consistency_level args)
-          return rs{f_Get_slice_result_success= Just res})
-        (\e  -> 
-          return rs{f_Get_slice_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Get_slice_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_slice_result_te =Just e}))
-  writeMessageBegin oprot ("get_slice", M_REPLY, seqid);
-  write_Get_slice_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_multiget (seqid, iprot, oprot, handler) = do
-  args <- read_Multiget_args iprot
-  readMessageEnd iprot
-  rs <- return (Multiget_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.multiget handler (f_Multiget_args_keyspace args) (f_Multiget_args_keys args) (f_Multiget_args_column_path args) (f_Multiget_args_consistency_level args)
-          return rs{f_Multiget_result_success= Just res})
-        (\e  -> 
-          return rs{f_Multiget_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Multiget_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Multiget_result_te =Just e}))
-  writeMessageBegin oprot ("multiget", M_REPLY, seqid);
-  write_Multiget_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_multiget_slice (seqid, iprot, oprot, handler) = do
-  args <- read_Multiget_slice_args iprot
-  readMessageEnd iprot
-  rs <- return (Multiget_slice_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.multiget_slice handler (f_Multiget_slice_args_keyspace args) (f_Multiget_slice_args_keys args) (f_Multiget_slice_args_column_parent args) (f_Multiget_slice_args_predicate args) (f_Multiget_slice_args_consistency_level args)
-          return rs{f_Multiget_slice_result_success= Just res})
-        (\e  -> 
-          return rs{f_Multiget_slice_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Multiget_slice_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Multiget_slice_result_te =Just e}))
-  writeMessageBegin oprot ("multiget_slice", M_REPLY, seqid);
-  write_Multiget_slice_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_count (seqid, iprot, oprot, handler) = do
-  args <- read_Get_count_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_count_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.get_count handler (f_Get_count_args_keyspace args) (f_Get_count_args_key args) (f_Get_count_args_column_parent args) (f_Get_count_args_consistency_level args)
-          return rs{f_Get_count_result_success= Just res})
-        (\e  -> 
-          return rs{f_Get_count_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Get_count_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_count_result_te =Just e}))
-  writeMessageBegin oprot ("get_count", M_REPLY, seqid);
-  write_Get_count_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_key_range (seqid, iprot, oprot, handler) = do
-  args <- read_Get_key_range_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_key_range_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.get_key_range handler (f_Get_key_range_args_keyspace args) (f_Get_key_range_args_column_family args) (f_Get_key_range_args_start args) (f_Get_key_range_args_finish args) (f_Get_key_range_args_count args) (f_Get_key_range_args_consistency_level args)
-          return rs{f_Get_key_range_result_success= Just res})
-        (\e  -> 
-          return rs{f_Get_key_range_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Get_key_range_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_key_range_result_te =Just e}))
-  writeMessageBegin oprot ("get_key_range", M_REPLY, seqid);
-  write_Get_key_range_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_range_slice (seqid, iprot, oprot, handler) = do
-  args <- read_Get_range_slice_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_range_slice_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.get_range_slice handler (f_Get_range_slice_args_keyspace args) (f_Get_range_slice_args_column_parent args) (f_Get_range_slice_args_predicate args) (f_Get_range_slice_args_start_key args) (f_Get_range_slice_args_finish_key args) (f_Get_range_slice_args_row_count args) (f_Get_range_slice_args_consistency_level args)
-          return rs{f_Get_range_slice_result_success= Just res})
-        (\e  -> 
-          return rs{f_Get_range_slice_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Get_range_slice_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_range_slice_result_te =Just e}))
-  writeMessageBegin oprot ("get_range_slice", M_REPLY, seqid);
-  write_Get_range_slice_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_insert (seqid, iprot, oprot, handler) = do
-  args <- read_Insert_args iprot
-  readMessageEnd iprot
-  rs <- return (Insert_result Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          Iface.insert handler (f_Insert_args_keyspace args) (f_Insert_args_key args) (f_Insert_args_column_path args) (f_Insert_args_value args) (f_Insert_args_timestamp args) (f_Insert_args_consistency_level args)
-          return rs)
-        (\e  -> 
-          return rs{f_Insert_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Insert_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Insert_result_te =Just e}))
-  writeMessageBegin oprot ("insert", M_REPLY, seqid);
-  write_Insert_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_batch_insert (seqid, iprot, oprot, handler) = do
-  args <- read_Batch_insert_args iprot
-  readMessageEnd iprot
-  rs <- return (Batch_insert_result Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          Iface.batch_insert handler (f_Batch_insert_args_keyspace args) (f_Batch_insert_args_key args) (f_Batch_insert_args_cfmap args) (f_Batch_insert_args_consistency_level args)
-          return rs)
-        (\e  -> 
-          return rs{f_Batch_insert_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Batch_insert_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Batch_insert_result_te =Just e}))
-  writeMessageBegin oprot ("batch_insert", M_REPLY, seqid);
-  write_Batch_insert_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_remove (seqid, iprot, oprot, handler) = do
-  args <- read_Remove_args iprot
-  readMessageEnd iprot
-  rs <- return (Remove_result Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          Iface.remove handler (f_Remove_args_keyspace args) (f_Remove_args_key args) (f_Remove_args_column_path args) (f_Remove_args_timestamp args) (f_Remove_args_consistency_level args)
-          return rs)
-        (\e  -> 
-          return rs{f_Remove_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Remove_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Remove_result_te =Just e}))
-  writeMessageBegin oprot ("remove", M_REPLY, seqid);
-  write_Remove_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_string_property (seqid, iprot, oprot, handler) = do
-  args <- read_Get_string_property_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_string_property_result Nothing)
-  res <- (do
-    res <- Iface.get_string_property handler (f_Get_string_property_args_property args)
-    return rs{f_Get_string_property_result_success= Just res})
-  writeMessageBegin oprot ("get_string_property", M_REPLY, seqid);
-  write_Get_string_property_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_string_list_property (seqid, iprot, oprot, handler) = do
-  args <- read_Get_string_list_property_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_string_list_property_result Nothing)
-  res <- (do
-    res <- Iface.get_string_list_property handler (f_Get_string_list_property_args_property args)
-    return rs{f_Get_string_list_property_result_success= Just res})
-  writeMessageBegin oprot ("get_string_list_property", M_REPLY, seqid);
-  write_Get_string_list_property_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_describe_keyspace (seqid, iprot, oprot, handler) = do
-  args <- read_Describe_keyspace_args iprot
-  readMessageEnd iprot
-  rs <- return (Describe_keyspace_result Nothing Nothing)
-  res <- (Control.Exception.catch
-    (do
-      res <- Iface.describe_keyspace handler (f_Describe_keyspace_args_keyspace args)
-      return rs{f_Describe_keyspace_result_success= Just res})
-    (\e  -> 
-      return rs{f_Describe_keyspace_result_nfe =Just e}))
-  writeMessageBegin oprot ("describe_keyspace", M_REPLY, seqid);
-  write_Describe_keyspace_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-proc handler (iprot,oprot) (name,typ,seqid) = case name of
-  "get" -> process_get (seqid,iprot,oprot,handler)
-  "get_slice" -> process_get_slice (seqid,iprot,oprot,handler)
-  "multiget" -> process_multiget (seqid,iprot,oprot,handler)
-  "multiget_slice" -> process_multiget_slice (seqid,iprot,oprot,handler)
-  "get_count" -> process_get_count (seqid,iprot,oprot,handler)
-  "get_key_range" -> process_get_key_range (seqid,iprot,oprot,handler)
-  "get_range_slice" -> process_get_range_slice (seqid,iprot,oprot,handler)
-  "insert" -> process_insert (seqid,iprot,oprot,handler)
-  "batch_insert" -> process_batch_insert (seqid,iprot,oprot,handler)
-  "remove" -> process_remove (seqid,iprot,oprot,handler)
-  "get_string_property" -> process_get_string_property (seqid,iprot,oprot,handler)
-  "get_string_list_property" -> process_get_string_list_property (seqid,iprot,oprot,handler)
-  "describe_keyspace" -> process_describe_keyspace (seqid,iprot,oprot,handler)
+data Login_args = Login_args{f_Login_args_keyspace :: Maybe String,f_Login_args_auth_request :: Maybe AuthenticationRequest} deriving (Show,Eq,Ord,Typeable)
+write_Login_args oprot rec = do
+  writeStructBegin oprot "Login_args"
+  case f_Login_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Login_args_auth_request rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("auth_request",T_STRUCT,2)
+    write_AuthenticationRequest oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Login_args_fields iprot rec = do
+  (_,_t129,_id130) <- readFieldBegin iprot
+  if _t129 == T_STOP then return rec else
+    case _id130 of 
+      1 -> if _t129 == T_STRING then do
+        s <- readString iprot
+        read_Login_args_fields iprot rec{f_Login_args_keyspace=Just s}
+        else do
+          skip iprot _t129
+          read_Login_args_fields iprot rec
+      2 -> if _t129 == T_STRUCT then do
+        s <- (read_AuthenticationRequest iprot)
+        read_Login_args_fields iprot rec{f_Login_args_auth_request=Just s}
+        else do
+          skip iprot _t129
+          read_Login_args_fields iprot rec
+      _ -> do
+        skip iprot _t129
+        readFieldEnd iprot
+        read_Login_args_fields iprot rec
+read_Login_args iprot = do
+  readStructBegin iprot
+  rec <- read_Login_args_fields iprot (Login_args{f_Login_args_keyspace=Nothing,f_Login_args_auth_request=Nothing})
+  readStructEnd iprot
+  return rec
+data Login_result = Login_result{f_Login_result_authnx :: Maybe AuthenticationException,f_Login_result_authzx :: Maybe AuthorizationException} deriving (Show,Eq,Ord,Typeable)
+write_Login_result oprot rec = do
+  writeStructBegin oprot "Login_result"
+  case f_Login_result_authnx rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("authnx",T_STRUCT,1)
+    write_AuthenticationException oprot _v
+    writeFieldEnd oprot}
+  case f_Login_result_authzx rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("authzx",T_STRUCT,2)
+    write_AuthorizationException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Login_result_fields iprot rec = do
+  (_,_t134,_id135) <- readFieldBegin iprot
+  if _t134 == T_STOP then return rec else
+    case _id135 of 
+      1 -> if _t134 == T_STRUCT then do
+        s <- (read_AuthenticationException iprot)
+        read_Login_result_fields iprot rec{f_Login_result_authnx=Just s}
+        else do
+          skip iprot _t134
+          read_Login_result_fields iprot rec
+      2 -> if _t134 == T_STRUCT then do
+        s <- (read_AuthorizationException iprot)
+        read_Login_result_fields iprot rec{f_Login_result_authzx=Just s}
+        else do
+          skip iprot _t134
+          read_Login_result_fields iprot rec
+      _ -> do
+        skip iprot _t134
+        readFieldEnd iprot
+        read_Login_result_fields iprot rec
+read_Login_result iprot = do
+  readStructBegin iprot
+  rec <- read_Login_result_fields iprot (Login_result{f_Login_result_authnx=Nothing,f_Login_result_authzx=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_args = Get_args{f_Get_args_keyspace :: Maybe String,f_Get_args_key :: Maybe String,f_Get_args_column_path :: Maybe ColumnPath,f_Get_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_args oprot rec = do
+  writeStructBegin oprot "Get_args"
+  case f_Get_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_args_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_args_column_path rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_path",T_STRUCT,3)
+    write_ColumnPath oprot _v
+    writeFieldEnd oprot}
+  case f_Get_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_args_fields iprot rec = do
+  (_,_t139,_id140) <- readFieldBegin iprot
+  if _t139 == T_STOP then return rec else
+    case _id140 of 
+      1 -> if _t139 == T_STRING then do
+        s <- readString iprot
+        read_Get_args_fields iprot rec{f_Get_args_keyspace=Just s}
+        else do
+          skip iprot _t139
+          read_Get_args_fields iprot rec
+      2 -> if _t139 == T_STRING then do
+        s <- readString iprot
+        read_Get_args_fields iprot rec{f_Get_args_key=Just s}
+        else do
+          skip iprot _t139
+          read_Get_args_fields iprot rec
+      3 -> if _t139 == T_STRUCT then do
+        s <- (read_ColumnPath iprot)
+        read_Get_args_fields iprot rec{f_Get_args_column_path=Just s}
+        else do
+          skip iprot _t139
+          read_Get_args_fields iprot rec
+      4 -> if _t139 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Get_args_fields iprot rec{f_Get_args_consistency_level=Just s}
+        else do
+          skip iprot _t139
+          read_Get_args_fields iprot rec
+      _ -> do
+        skip iprot _t139
+        readFieldEnd iprot
+        read_Get_args_fields iprot rec
+read_Get_args iprot = do
+  readStructBegin iprot
+  rec <- read_Get_args_fields iprot (Get_args{f_Get_args_keyspace=Nothing,f_Get_args_key=Nothing,f_Get_args_column_path=Nothing,f_Get_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_result = Get_result{f_Get_result_success :: Maybe ColumnOrSuperColumn,f_Get_result_ire :: Maybe InvalidRequestException,f_Get_result_nfe :: Maybe NotFoundException,f_Get_result_ue :: Maybe UnavailableException,f_Get_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_result oprot rec = do
+  writeStructBegin oprot "Get_result"
+  case f_Get_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRUCT,0)
+    write_ColumnOrSuperColumn oprot _v
+    writeFieldEnd oprot}
+  case f_Get_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_result_nfe rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("nfe",T_STRUCT,2)
+    write_NotFoundException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,3)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,4)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_result_fields iprot rec = do
+  (_,_t144,_id145) <- readFieldBegin iprot
+  if _t144 == T_STOP then return rec else
+    case _id145 of 
+      0 -> if _t144 == T_STRUCT then do
+        s <- (read_ColumnOrSuperColumn iprot)
+        read_Get_result_fields iprot rec{f_Get_result_success=Just s}
+        else do
+          skip iprot _t144
+          read_Get_result_fields iprot rec
+      1 -> if _t144 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_result_fields iprot rec{f_Get_result_ire=Just s}
+        else do
+          skip iprot _t144
+          read_Get_result_fields iprot rec
+      2 -> if _t144 == T_STRUCT then do
+        s <- (read_NotFoundException iprot)
+        read_Get_result_fields iprot rec{f_Get_result_nfe=Just s}
+        else do
+          skip iprot _t144
+          read_Get_result_fields iprot rec
+      3 -> if _t144 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_result_fields iprot rec{f_Get_result_ue=Just s}
+        else do
+          skip iprot _t144
+          read_Get_result_fields iprot rec
+      4 -> if _t144 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_result_fields iprot rec{f_Get_result_te=Just s}
+        else do
+          skip iprot _t144
+          read_Get_result_fields iprot rec
+      _ -> do
+        skip iprot _t144
+        readFieldEnd iprot
+        read_Get_result_fields iprot rec
+read_Get_result iprot = do
+  readStructBegin iprot
+  rec <- read_Get_result_fields iprot (Get_result{f_Get_result_success=Nothing,f_Get_result_ire=Nothing,f_Get_result_nfe=Nothing,f_Get_result_ue=Nothing,f_Get_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_slice_args = Get_slice_args{f_Get_slice_args_keyspace :: Maybe String,f_Get_slice_args_key :: Maybe String,f_Get_slice_args_column_parent :: Maybe ColumnParent,f_Get_slice_args_predicate :: Maybe SlicePredicate,f_Get_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_slice_args oprot rec = do
+  writeStructBegin oprot "Get_slice_args"
+  case f_Get_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_args_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,4)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,5)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_slice_args_fields iprot rec = do
+  (_,_t149,_id150) <- readFieldBegin iprot
+  if _t149 == T_STOP then return rec else
+    case _id150 of 
+      1 -> if _t149 == T_STRING then do
+        s <- readString iprot
+        read_Get_slice_args_fields iprot rec{f_Get_slice_args_keyspace=Just s}
+        else do
+          skip iprot _t149
+          read_Get_slice_args_fields iprot rec
+      2 -> if _t149 == T_STRING then do
+        s <- readString iprot
+        read_Get_slice_args_fields iprot rec{f_Get_slice_args_key=Just s}
+        else do
+          skip iprot _t149
+          read_Get_slice_args_fields iprot rec
+      3 -> if _t149 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Get_slice_args_fields iprot rec{f_Get_slice_args_column_parent=Just s}
+        else do
+          skip iprot _t149
+          read_Get_slice_args_fields iprot rec
+      4 -> if _t149 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Get_slice_args_fields iprot rec{f_Get_slice_args_predicate=Just s}
+        else do
+          skip iprot _t149
+          read_Get_slice_args_fields iprot rec
+      5 -> if _t149 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Get_slice_args_fields iprot rec{f_Get_slice_args_consistency_level=Just s}
+        else do
+          skip iprot _t149
+          read_Get_slice_args_fields iprot rec
+      _ -> do
+        skip iprot _t149
+        readFieldEnd iprot
+        read_Get_slice_args_fields iprot rec
+read_Get_slice_args iprot = do
+  readStructBegin iprot
+  rec <- read_Get_slice_args_fields iprot (Get_slice_args{f_Get_slice_args_keyspace=Nothing,f_Get_slice_args_key=Nothing,f_Get_slice_args_column_parent=Nothing,f_Get_slice_args_predicate=Nothing,f_Get_slice_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_slice_result = Get_slice_result{f_Get_slice_result_success :: Maybe [ColumnOrSuperColumn],f_Get_slice_result_ire :: Maybe InvalidRequestException,f_Get_slice_result_ue :: Maybe UnavailableException,f_Get_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_slice_result oprot rec = do
+  writeStructBegin oprot "Get_slice_result"
+  case f_Get_slice_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter153:t) = do {write_ColumnOrSuperColumn oprot _viter153;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Get_slice_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_slice_result_fields iprot rec = do
+  (_,_t155,_id156) <- readFieldBegin iprot
+  if _t155 == T_STOP then return rec else
+    case _id156 of 
+      0 -> if _t155 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype160,_size157) <- readListBegin iprot; f _size157})
+        read_Get_slice_result_fields iprot rec{f_Get_slice_result_success=Just s}
+        else do
+          skip iprot _t155
+          read_Get_slice_result_fields iprot rec
+      1 -> if _t155 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_slice_result_fields iprot rec{f_Get_slice_result_ire=Just s}
+        else do
+          skip iprot _t155
+          read_Get_slice_result_fields iprot rec
+      2 -> if _t155 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_slice_result_fields iprot rec{f_Get_slice_result_ue=Just s}
+        else do
+          skip iprot _t155
+          read_Get_slice_result_fields iprot rec
+      3 -> if _t155 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_slice_result_fields iprot rec{f_Get_slice_result_te=Just s}
+        else do
+          skip iprot _t155
+          read_Get_slice_result_fields iprot rec
+      _ -> do
+        skip iprot _t155
+        readFieldEnd iprot
+        read_Get_slice_result_fields iprot rec
+read_Get_slice_result iprot = do
+  readStructBegin iprot
+  rec <- read_Get_slice_result_fields iprot (Get_slice_result{f_Get_slice_result_success=Nothing,f_Get_slice_result_ire=Nothing,f_Get_slice_result_ue=Nothing,f_Get_slice_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Multiget_args = Multiget_args{f_Multiget_args_keyspace :: Maybe String,f_Multiget_args_keys :: Maybe [String],f_Multiget_args_column_path :: Maybe ColumnPath,f_Multiget_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Multiget_args oprot rec = do
+  writeStructBegin oprot "Multiget_args"
+  case f_Multiget_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_args_keys rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keys",T_LIST,2)
+    (let {f [] = return (); f (_viter164:t) = do {writeString oprot _viter164;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Multiget_args_column_path rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_path",T_STRUCT,3)
+    write_ColumnPath oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Multiget_args_fields iprot rec = do
+  (_,_t166,_id167) <- readFieldBegin iprot
+  if _t166 == T_STOP then return rec else
+    case _id167 of 
+      1 -> if _t166 == T_STRING then do
+        s <- readString iprot
+        read_Multiget_args_fields iprot rec{f_Multiget_args_keyspace=Just s}
+        else do
+          skip iprot _t166
+          read_Multiget_args_fields iprot rec
+      2 -> if _t166 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype171,_size168) <- readListBegin iprot; f _size168})
+        read_Multiget_args_fields iprot rec{f_Multiget_args_keys=Just s}
+        else do
+          skip iprot _t166
+          read_Multiget_args_fields iprot rec
+      3 -> if _t166 == T_STRUCT then do
+        s <- (read_ColumnPath iprot)
+        read_Multiget_args_fields iprot rec{f_Multiget_args_column_path=Just s}
+        else do
+          skip iprot _t166
+          read_Multiget_args_fields iprot rec
+      4 -> if _t166 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Multiget_args_fields iprot rec{f_Multiget_args_consistency_level=Just s}
+        else do
+          skip iprot _t166
+          read_Multiget_args_fields iprot rec
+      _ -> do
+        skip iprot _t166
+        readFieldEnd iprot
+        read_Multiget_args_fields iprot rec
+read_Multiget_args iprot = do
+  readStructBegin iprot
+  rec <- read_Multiget_args_fields iprot (Multiget_args{f_Multiget_args_keyspace=Nothing,f_Multiget_args_keys=Nothing,f_Multiget_args_column_path=Nothing,f_Multiget_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Multiget_result = Multiget_result{f_Multiget_result_success :: Maybe (Map.Map String ColumnOrSuperColumn),f_Multiget_result_ire :: Maybe InvalidRequestException,f_Multiget_result_ue :: Maybe UnavailableException,f_Multiget_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Multiget_result oprot rec = do
+  writeStructBegin oprot "Multiget_result"
+  case f_Multiget_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_MAP,0)
+    (let {f [] = return (); f ((_kiter175,_viter176):t) = do {do {writeString oprot _kiter175;write_ColumnOrSuperColumn oprot _viter176};f t}} in do {writeMapBegin oprot (T_STRING,T_STRUCT,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_Multiget_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Multiget_result_fields iprot rec = do
+  (_,_t178,_id179) <- readFieldBegin iprot
+  if _t178 == T_STOP then return rec else
+    case _id179 of 
+      0 -> if _t178 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ (k,v):r}} in do {(_ktype181,_vtype182,_size180) <- readMapBegin iprot; l <- f _size180; return $ Map.fromList l})
+        read_Multiget_result_fields iprot rec{f_Multiget_result_success=Just s}
+        else do
+          skip iprot _t178
+          read_Multiget_result_fields iprot rec
+      1 -> if _t178 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Multiget_result_fields iprot rec{f_Multiget_result_ire=Just s}
+        else do
+          skip iprot _t178
+          read_Multiget_result_fields iprot rec
+      2 -> if _t178 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Multiget_result_fields iprot rec{f_Multiget_result_ue=Just s}
+        else do
+          skip iprot _t178
+          read_Multiget_result_fields iprot rec
+      3 -> if _t178 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Multiget_result_fields iprot rec{f_Multiget_result_te=Just s}
+        else do
+          skip iprot _t178
+          read_Multiget_result_fields iprot rec
+      _ -> do
+        skip iprot _t178
+        readFieldEnd iprot
+        read_Multiget_result_fields iprot rec
+read_Multiget_result iprot = do
+  readStructBegin iprot
+  rec <- read_Multiget_result_fields iprot (Multiget_result{f_Multiget_result_success=Nothing,f_Multiget_result_ire=Nothing,f_Multiget_result_ue=Nothing,f_Multiget_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Multiget_slice_args = Multiget_slice_args{f_Multiget_slice_args_keyspace :: Maybe String,f_Multiget_slice_args_keys :: Maybe [String],f_Multiget_slice_args_column_parent :: Maybe ColumnParent,f_Multiget_slice_args_predicate :: Maybe SlicePredicate,f_Multiget_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Multiget_slice_args oprot rec = do
+  writeStructBegin oprot "Multiget_slice_args"
+  case f_Multiget_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_slice_args_keys rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keys",T_LIST,2)
+    (let {f [] = return (); f (_viter187:t) = do {writeString oprot _viter187;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Multiget_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,4)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,5)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Multiget_slice_args_fields iprot rec = do
+  (_,_t189,_id190) <- readFieldBegin iprot
+  if _t189 == T_STOP then return rec else
+    case _id190 of 
+      1 -> if _t189 == T_STRING then do
+        s <- readString iprot
+        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_keyspace=Just s}
+        else do
+          skip iprot _t189
+          read_Multiget_slice_args_fields iprot rec
+      2 -> if _t189 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype194,_size191) <- readListBegin iprot; f _size191})
+        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_keys=Just s}
+        else do
+          skip iprot _t189
+          read_Multiget_slice_args_fields iprot rec
+      3 -> if _t189 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_column_parent=Just s}
+        else do
+          skip iprot _t189
+          read_Multiget_slice_args_fields iprot rec
+      4 -> if _t189 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_predicate=Just s}
+        else do
+          skip iprot _t189
+          read_Multiget_slice_args_fields iprot rec
+      5 -> if _t189 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_consistency_level=Just s}
+        else do
+          skip iprot _t189
+          read_Multiget_slice_args_fields iprot rec
+      _ -> do
+        skip iprot _t189
+        readFieldEnd iprot
+        read_Multiget_slice_args_fields iprot rec
+read_Multiget_slice_args iprot = do
+  readStructBegin iprot
+  rec <- read_Multiget_slice_args_fields iprot (Multiget_slice_args{f_Multiget_slice_args_keyspace=Nothing,f_Multiget_slice_args_keys=Nothing,f_Multiget_slice_args_column_parent=Nothing,f_Multiget_slice_args_predicate=Nothing,f_Multiget_slice_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Multiget_slice_result = Multiget_slice_result{f_Multiget_slice_result_success :: Maybe (Map.Map String [ColumnOrSuperColumn]),f_Multiget_slice_result_ire :: Maybe InvalidRequestException,f_Multiget_slice_result_ue :: Maybe UnavailableException,f_Multiget_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Multiget_slice_result oprot rec = do
+  writeStructBegin oprot "Multiget_slice_result"
+  case f_Multiget_slice_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_MAP,0)
+    (let {f [] = return (); f ((_kiter198,_viter199):t) = do {do {writeString oprot _kiter198;(let {f [] = return (); f (_viter200:t) = do {write_ColumnOrSuperColumn oprot _viter200;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter199); f _viter199;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_Multiget_slice_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_slice_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_slice_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Multiget_slice_result_fields iprot rec = do
+  (_,_t202,_id203) <- readFieldBegin iprot
+  if _t202 == T_STOP then return rec else
+    case _id203 of 
+      0 -> if _t202 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype212,_size209) <- readListBegin iprot; f _size209});r <- f (n-1); return $ (k,v):r}} in do {(_ktype205,_vtype206,_size204) <- readMapBegin iprot; l <- f _size204; return $ Map.fromList l})
+        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_success=Just s}
+        else do
+          skip iprot _t202
+          read_Multiget_slice_result_fields iprot rec
+      1 -> if _t202 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_ire=Just s}
+        else do
+          skip iprot _t202
+          read_Multiget_slice_result_fields iprot rec
+      2 -> if _t202 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_ue=Just s}
+        else do
+          skip iprot _t202
+          read_Multiget_slice_result_fields iprot rec
+      3 -> if _t202 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_te=Just s}
+        else do
+          skip iprot _t202
+          read_Multiget_slice_result_fields iprot rec
+      _ -> do
+        skip iprot _t202
+        readFieldEnd iprot
+        read_Multiget_slice_result_fields iprot rec
+read_Multiget_slice_result iprot = do
+  readStructBegin iprot
+  rec <- read_Multiget_slice_result_fields iprot (Multiget_slice_result{f_Multiget_slice_result_success=Nothing,f_Multiget_slice_result_ire=Nothing,f_Multiget_slice_result_ue=Nothing,f_Multiget_slice_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_count_args = Get_count_args{f_Get_count_args_keyspace :: Maybe String,f_Get_count_args_key :: Maybe String,f_Get_count_args_column_parent :: Maybe ColumnParent,f_Get_count_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_count_args oprot rec = do
+  writeStructBegin oprot "Get_count_args"
+  case f_Get_count_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_args_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_args_column_parent rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_count_args_fields iprot rec = do
+  (_,_t217,_id218) <- readFieldBegin iprot
+  if _t217 == T_STOP then return rec else
+    case _id218 of 
+      1 -> if _t217 == T_STRING then do
+        s <- readString iprot
+        read_Get_count_args_fields iprot rec{f_Get_count_args_keyspace=Just s}
+        else do
+          skip iprot _t217
+          read_Get_count_args_fields iprot rec
+      2 -> if _t217 == T_STRING then do
+        s <- readString iprot
+        read_Get_count_args_fields iprot rec{f_Get_count_args_key=Just s}
+        else do
+          skip iprot _t217
+          read_Get_count_args_fields iprot rec
+      3 -> if _t217 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Get_count_args_fields iprot rec{f_Get_count_args_column_parent=Just s}
+        else do
+          skip iprot _t217
+          read_Get_count_args_fields iprot rec
+      4 -> if _t217 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Get_count_args_fields iprot rec{f_Get_count_args_consistency_level=Just s}
+        else do
+          skip iprot _t217
+          read_Get_count_args_fields iprot rec
+      _ -> do
+        skip iprot _t217
+        readFieldEnd iprot
+        read_Get_count_args_fields iprot rec
+read_Get_count_args iprot = do
+  readStructBegin iprot
+  rec <- read_Get_count_args_fields iprot (Get_count_args{f_Get_count_args_keyspace=Nothing,f_Get_count_args_key=Nothing,f_Get_count_args_column_parent=Nothing,f_Get_count_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_count_result = Get_count_result{f_Get_count_result_success :: Maybe Int,f_Get_count_result_ire :: Maybe InvalidRequestException,f_Get_count_result_ue :: Maybe UnavailableException,f_Get_count_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_count_result oprot rec = do
+  writeStructBegin oprot "Get_count_result"
+  case f_Get_count_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_I32,0)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_count_result_fields iprot rec = do
+  (_,_t222,_id223) <- readFieldBegin iprot
+  if _t222 == T_STOP then return rec else
+    case _id223 of 
+      0 -> if _t222 == T_I32 then do
+        s <- readI32 iprot
+        read_Get_count_result_fields iprot rec{f_Get_count_result_success=Just s}
+        else do
+          skip iprot _t222
+          read_Get_count_result_fields iprot rec
+      1 -> if _t222 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_count_result_fields iprot rec{f_Get_count_result_ire=Just s}
+        else do
+          skip iprot _t222
+          read_Get_count_result_fields iprot rec
+      2 -> if _t222 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_count_result_fields iprot rec{f_Get_count_result_ue=Just s}
+        else do
+          skip iprot _t222
+          read_Get_count_result_fields iprot rec
+      3 -> if _t222 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_count_result_fields iprot rec{f_Get_count_result_te=Just s}
+        else do
+          skip iprot _t222
+          read_Get_count_result_fields iprot rec
+      _ -> do
+        skip iprot _t222
+        readFieldEnd iprot
+        read_Get_count_result_fields iprot rec
+read_Get_count_result iprot = do
+  readStructBegin iprot
+  rec <- read_Get_count_result_fields iprot (Get_count_result{f_Get_count_result_success=Nothing,f_Get_count_result_ire=Nothing,f_Get_count_result_ue=Nothing,f_Get_count_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_range_slice_args = Get_range_slice_args{f_Get_range_slice_args_keyspace :: Maybe String,f_Get_range_slice_args_column_parent :: Maybe ColumnParent,f_Get_range_slice_args_predicate :: Maybe SlicePredicate,f_Get_range_slice_args_start_key :: Maybe String,f_Get_range_slice_args_finish_key :: Maybe String,f_Get_range_slice_args_row_count :: Maybe Int,f_Get_range_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_range_slice_args oprot rec = do
+  writeStructBegin oprot "Get_range_slice_args"
+  case f_Get_range_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,3)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slice_args_start_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_key",T_STRING,4)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slice_args_finish_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("finish_key",T_STRING,5)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slice_args_row_count rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("row_count",T_I32,6)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,7)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_range_slice_args_fields iprot rec = do
+  (_,_t227,_id228) <- readFieldBegin iprot
+  if _t227 == T_STOP then return rec else
+    case _id228 of 
+      1 -> if _t227 == T_STRING then do
+        s <- readString iprot
+        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_keyspace=Just s}
+        else do
+          skip iprot _t227
+          read_Get_range_slice_args_fields iprot rec
+      2 -> if _t227 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_column_parent=Just s}
+        else do
+          skip iprot _t227
+          read_Get_range_slice_args_fields iprot rec
+      3 -> if _t227 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_predicate=Just s}
+        else do
+          skip iprot _t227
+          read_Get_range_slice_args_fields iprot rec
+      4 -> if _t227 == T_STRING then do
+        s <- readString iprot
+        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_start_key=Just s}
+        else do
+          skip iprot _t227
+          read_Get_range_slice_args_fields iprot rec
+      5 -> if _t227 == T_STRING then do
+        s <- readString iprot
+        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_finish_key=Just s}
+        else do
+          skip iprot _t227
+          read_Get_range_slice_args_fields iprot rec
+      6 -> if _t227 == T_I32 then do
+        s <- readI32 iprot
+        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_row_count=Just s}
+        else do
+          skip iprot _t227
+          read_Get_range_slice_args_fields iprot rec
+      7 -> if _t227 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_consistency_level=Just s}
+        else do
+          skip iprot _t227
+          read_Get_range_slice_args_fields iprot rec
+      _ -> do
+        skip iprot _t227
+        readFieldEnd iprot
+        read_Get_range_slice_args_fields iprot rec
+read_Get_range_slice_args iprot = do
+  readStructBegin iprot
+  rec <- read_Get_range_slice_args_fields iprot (Get_range_slice_args{f_Get_range_slice_args_keyspace=Nothing,f_Get_range_slice_args_column_parent=Nothing,f_Get_range_slice_args_predicate=Nothing,f_Get_range_slice_args_start_key=Nothing,f_Get_range_slice_args_finish_key=Nothing,f_Get_range_slice_args_row_count=Nothing,f_Get_range_slice_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_range_slice_result = Get_range_slice_result{f_Get_range_slice_result_success :: Maybe [KeySlice],f_Get_range_slice_result_ire :: Maybe InvalidRequestException,f_Get_range_slice_result_ue :: Maybe UnavailableException,f_Get_range_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_range_slice_result oprot rec = do
+  writeStructBegin oprot "Get_range_slice_result"
+  case f_Get_range_slice_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter231:t) = do {write_KeySlice oprot _viter231;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Get_range_slice_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slice_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slice_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_range_slice_result_fields iprot rec = do
+  (_,_t233,_id234) <- readFieldBegin iprot
+  if _t233 == T_STOP then return rec else
+    case _id234 of 
+      0 -> if _t233 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_KeySlice iprot);r <- f (n-1); return $ v:r}} in do {(_etype238,_size235) <- readListBegin iprot; f _size235})
+        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_success=Just s}
+        else do
+          skip iprot _t233
+          read_Get_range_slice_result_fields iprot rec
+      1 -> if _t233 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_ire=Just s}
+        else do
+          skip iprot _t233
+          read_Get_range_slice_result_fields iprot rec
+      2 -> if _t233 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_ue=Just s}
+        else do
+          skip iprot _t233
+          read_Get_range_slice_result_fields iprot rec
+      3 -> if _t233 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_te=Just s}
+        else do
+          skip iprot _t233
+          read_Get_range_slice_result_fields iprot rec
+      _ -> do
+        skip iprot _t233
+        readFieldEnd iprot
+        read_Get_range_slice_result_fields iprot rec
+read_Get_range_slice_result iprot = do
+  readStructBegin iprot
+  rec <- read_Get_range_slice_result_fields iprot (Get_range_slice_result{f_Get_range_slice_result_success=Nothing,f_Get_range_slice_result_ire=Nothing,f_Get_range_slice_result_ue=Nothing,f_Get_range_slice_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_range_slices_args = Get_range_slices_args{f_Get_range_slices_args_keyspace :: Maybe String,f_Get_range_slices_args_column_parent :: Maybe ColumnParent,f_Get_range_slices_args_predicate :: Maybe SlicePredicate,f_Get_range_slices_args_range :: Maybe KeyRange,f_Get_range_slices_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_range_slices_args oprot rec = do
+  writeStructBegin oprot "Get_range_slices_args"
+  case f_Get_range_slices_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_args_column_parent rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_args_predicate rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,3)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_args_range rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("range",T_STRUCT,4)
+    write_KeyRange oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,5)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_range_slices_args_fields iprot rec = do
+  (_,_t243,_id244) <- readFieldBegin iprot
+  if _t243 == T_STOP then return rec else
+    case _id244 of 
+      1 -> if _t243 == T_STRING then do
+        s <- readString iprot
+        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_keyspace=Just s}
+        else do
+          skip iprot _t243
+          read_Get_range_slices_args_fields iprot rec
+      2 -> if _t243 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_column_parent=Just s}
+        else do
+          skip iprot _t243
+          read_Get_range_slices_args_fields iprot rec
+      3 -> if _t243 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_predicate=Just s}
+        else do
+          skip iprot _t243
+          read_Get_range_slices_args_fields iprot rec
+      4 -> if _t243 == T_STRUCT then do
+        s <- (read_KeyRange iprot)
+        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_range=Just s}
+        else do
+          skip iprot _t243
+          read_Get_range_slices_args_fields iprot rec
+      5 -> if _t243 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_consistency_level=Just s}
+        else do
+          skip iprot _t243
+          read_Get_range_slices_args_fields iprot rec
+      _ -> do
+        skip iprot _t243
+        readFieldEnd iprot
+        read_Get_range_slices_args_fields iprot rec
+read_Get_range_slices_args iprot = do
+  readStructBegin iprot
+  rec <- read_Get_range_slices_args_fields iprot (Get_range_slices_args{f_Get_range_slices_args_keyspace=Nothing,f_Get_range_slices_args_column_parent=Nothing,f_Get_range_slices_args_predicate=Nothing,f_Get_range_slices_args_range=Nothing,f_Get_range_slices_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_range_slices_result = Get_range_slices_result{f_Get_range_slices_result_success :: Maybe [KeySlice],f_Get_range_slices_result_ire :: Maybe InvalidRequestException,f_Get_range_slices_result_ue :: Maybe UnavailableException,f_Get_range_slices_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_range_slices_result oprot rec = do
+  writeStructBegin oprot "Get_range_slices_result"
+  case f_Get_range_slices_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter247:t) = do {write_KeySlice oprot _viter247;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Get_range_slices_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_range_slices_result_fields iprot rec = do
+  (_,_t249,_id250) <- readFieldBegin iprot
+  if _t249 == T_STOP then return rec else
+    case _id250 of 
+      0 -> if _t249 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_KeySlice iprot);r <- f (n-1); return $ v:r}} in do {(_etype254,_size251) <- readListBegin iprot; f _size251})
+        read_Get_range_slices_result_fields iprot rec{f_Get_range_slices_result_success=Just s}
+        else do
+          skip iprot _t249
+          read_Get_range_slices_result_fields iprot rec
+      1 -> if _t249 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_range_slices_result_fields iprot rec{f_Get_range_slices_result_ire=Just s}
+        else do
+          skip iprot _t249
+          read_Get_range_slices_result_fields iprot rec
+      2 -> if _t249 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_range_slices_result_fields iprot rec{f_Get_range_slices_result_ue=Just s}
+        else do
+          skip iprot _t249
+          read_Get_range_slices_result_fields iprot rec
+      3 -> if _t249 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_range_slices_result_fields iprot rec{f_Get_range_slices_result_te=Just s}
+        else do
+          skip iprot _t249
+          read_Get_range_slices_result_fields iprot rec
+      _ -> do
+        skip iprot _t249
+        readFieldEnd iprot
+        read_Get_range_slices_result_fields iprot rec
+read_Get_range_slices_result iprot = do
+  readStructBegin iprot
+  rec <- read_Get_range_slices_result_fields iprot (Get_range_slices_result{f_Get_range_slices_result_success=Nothing,f_Get_range_slices_result_ire=Nothing,f_Get_range_slices_result_ue=Nothing,f_Get_range_slices_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Insert_args = Insert_args{f_Insert_args_keyspace :: Maybe String,f_Insert_args_key :: Maybe String,f_Insert_args_column_path :: Maybe ColumnPath,f_Insert_args_value :: Maybe String,f_Insert_args_timestamp :: Maybe Int64,f_Insert_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Insert_args oprot rec = do
+  writeStructBegin oprot "Insert_args"
+  case f_Insert_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_args_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_args_column_path rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_path",T_STRUCT,3)
+    write_ColumnPath oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_args_value rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("value",T_STRING,4)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_args_timestamp rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("timestamp",T_I64,5)
+    writeI64 oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,6)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Insert_args_fields iprot rec = do
+  (_,_t259,_id260) <- readFieldBegin iprot
+  if _t259 == T_STOP then return rec else
+    case _id260 of 
+      1 -> if _t259 == T_STRING then do
+        s <- readString iprot
+        read_Insert_args_fields iprot rec{f_Insert_args_keyspace=Just s}
+        else do
+          skip iprot _t259
+          read_Insert_args_fields iprot rec
+      2 -> if _t259 == T_STRING then do
+        s <- readString iprot
+        read_Insert_args_fields iprot rec{f_Insert_args_key=Just s}
+        else do
+          skip iprot _t259
+          read_Insert_args_fields iprot rec
+      3 -> if _t259 == T_STRUCT then do
+        s <- (read_ColumnPath iprot)
+        read_Insert_args_fields iprot rec{f_Insert_args_column_path=Just s}
+        else do
+          skip iprot _t259
+          read_Insert_args_fields iprot rec
+      4 -> if _t259 == T_STRING then do
+        s <- readString iprot
+        read_Insert_args_fields iprot rec{f_Insert_args_value=Just s}
+        else do
+          skip iprot _t259
+          read_Insert_args_fields iprot rec
+      5 -> if _t259 == T_I64 then do
+        s <- readI64 iprot
+        read_Insert_args_fields iprot rec{f_Insert_args_timestamp=Just s}
+        else do
+          skip iprot _t259
+          read_Insert_args_fields iprot rec
+      6 -> if _t259 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Insert_args_fields iprot rec{f_Insert_args_consistency_level=Just s}
+        else do
+          skip iprot _t259
+          read_Insert_args_fields iprot rec
+      _ -> do
+        skip iprot _t259
+        readFieldEnd iprot
+        read_Insert_args_fields iprot rec
+read_Insert_args iprot = do
+  readStructBegin iprot
+  rec <- read_Insert_args_fields iprot (Insert_args{f_Insert_args_keyspace=Nothing,f_Insert_args_key=Nothing,f_Insert_args_column_path=Nothing,f_Insert_args_value=Nothing,f_Insert_args_timestamp=Nothing,f_Insert_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Insert_result = Insert_result{f_Insert_result_ire :: Maybe InvalidRequestException,f_Insert_result_ue :: Maybe UnavailableException,f_Insert_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Insert_result oprot rec = do
+  writeStructBegin oprot "Insert_result"
+  case f_Insert_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Insert_result_fields iprot rec = do
+  (_,_t264,_id265) <- readFieldBegin iprot
+  if _t264 == T_STOP then return rec else
+    case _id265 of 
+      1 -> if _t264 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Insert_result_fields iprot rec{f_Insert_result_ire=Just s}
+        else do
+          skip iprot _t264
+          read_Insert_result_fields iprot rec
+      2 -> if _t264 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Insert_result_fields iprot rec{f_Insert_result_ue=Just s}
+        else do
+          skip iprot _t264
+          read_Insert_result_fields iprot rec
+      3 -> if _t264 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Insert_result_fields iprot rec{f_Insert_result_te=Just s}
+        else do
+          skip iprot _t264
+          read_Insert_result_fields iprot rec
+      _ -> do
+        skip iprot _t264
+        readFieldEnd iprot
+        read_Insert_result_fields iprot rec
+read_Insert_result iprot = do
+  readStructBegin iprot
+  rec <- read_Insert_result_fields iprot (Insert_result{f_Insert_result_ire=Nothing,f_Insert_result_ue=Nothing,f_Insert_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Batch_insert_args = Batch_insert_args{f_Batch_insert_args_keyspace :: Maybe String,f_Batch_insert_args_key :: Maybe String,f_Batch_insert_args_cfmap :: Maybe (Map.Map String [ColumnOrSuperColumn]),f_Batch_insert_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Batch_insert_args oprot rec = do
+  writeStructBegin oprot "Batch_insert_args"
+  case f_Batch_insert_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Batch_insert_args_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Batch_insert_args_cfmap rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("cfmap",T_MAP,3)
+    (let {f [] = return (); f ((_kiter268,_viter269):t) = do {do {writeString oprot _kiter268;(let {f [] = return (); f (_viter270:t) = do {write_ColumnOrSuperColumn oprot _viter270;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter269); f _viter269;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_Batch_insert_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Batch_insert_args_fields iprot rec = do
+  (_,_t272,_id273) <- readFieldBegin iprot
+  if _t272 == T_STOP then return rec else
+    case _id273 of 
+      1 -> if _t272 == T_STRING then do
+        s <- readString iprot
+        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_keyspace=Just s}
+        else do
+          skip iprot _t272
+          read_Batch_insert_args_fields iprot rec
+      2 -> if _t272 == T_STRING then do
+        s <- readString iprot
+        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_key=Just s}
+        else do
+          skip iprot _t272
+          read_Batch_insert_args_fields iprot rec
+      3 -> if _t272 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype282,_size279) <- readListBegin iprot; f _size279});r <- f (n-1); return $ (k,v):r}} in do {(_ktype275,_vtype276,_size274) <- readMapBegin iprot; l <- f _size274; return $ Map.fromList l})
+        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_cfmap=Just s}
+        else do
+          skip iprot _t272
+          read_Batch_insert_args_fields iprot rec
+      4 -> if _t272 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_consistency_level=Just s}
+        else do
+          skip iprot _t272
+          read_Batch_insert_args_fields iprot rec
+      _ -> do
+        skip iprot _t272
+        readFieldEnd iprot
+        read_Batch_insert_args_fields iprot rec
+read_Batch_insert_args iprot = do
+  readStructBegin iprot
+  rec <- read_Batch_insert_args_fields iprot (Batch_insert_args{f_Batch_insert_args_keyspace=Nothing,f_Batch_insert_args_key=Nothing,f_Batch_insert_args_cfmap=Nothing,f_Batch_insert_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Batch_insert_result = Batch_insert_result{f_Batch_insert_result_ire :: Maybe InvalidRequestException,f_Batch_insert_result_ue :: Maybe UnavailableException,f_Batch_insert_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Batch_insert_result oprot rec = do
+  writeStructBegin oprot "Batch_insert_result"
+  case f_Batch_insert_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Batch_insert_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Batch_insert_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Batch_insert_result_fields iprot rec = do
+  (_,_t287,_id288) <- readFieldBegin iprot
+  if _t287 == T_STOP then return rec else
+    case _id288 of 
+      1 -> if _t287 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_ire=Just s}
+        else do
+          skip iprot _t287
+          read_Batch_insert_result_fields iprot rec
+      2 -> if _t287 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_ue=Just s}
+        else do
+          skip iprot _t287
+          read_Batch_insert_result_fields iprot rec
+      3 -> if _t287 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_te=Just s}
+        else do
+          skip iprot _t287
+          read_Batch_insert_result_fields iprot rec
+      _ -> do
+        skip iprot _t287
+        readFieldEnd iprot
+        read_Batch_insert_result_fields iprot rec
+read_Batch_insert_result iprot = do
+  readStructBegin iprot
+  rec <- read_Batch_insert_result_fields iprot (Batch_insert_result{f_Batch_insert_result_ire=Nothing,f_Batch_insert_result_ue=Nothing,f_Batch_insert_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Remove_args = Remove_args{f_Remove_args_keyspace :: Maybe String,f_Remove_args_key :: Maybe String,f_Remove_args_column_path :: Maybe ColumnPath,f_Remove_args_timestamp :: Maybe Int64,f_Remove_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Remove_args oprot rec = do
+  writeStructBegin oprot "Remove_args"
+  case f_Remove_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_args_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_args_column_path rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_path",T_STRUCT,3)
+    write_ColumnPath oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_args_timestamp rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("timestamp",T_I64,4)
+    writeI64 oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,5)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Remove_args_fields iprot rec = do
+  (_,_t292,_id293) <- readFieldBegin iprot
+  if _t292 == T_STOP then return rec else
+    case _id293 of 
+      1 -> if _t292 == T_STRING then do
+        s <- readString iprot
+        read_Remove_args_fields iprot rec{f_Remove_args_keyspace=Just s}
+        else do
+          skip iprot _t292
+          read_Remove_args_fields iprot rec
+      2 -> if _t292 == T_STRING then do
+        s <- readString iprot
+        read_Remove_args_fields iprot rec{f_Remove_args_key=Just s}
+        else do
+          skip iprot _t292
+          read_Remove_args_fields iprot rec
+      3 -> if _t292 == T_STRUCT then do
+        s <- (read_ColumnPath iprot)
+        read_Remove_args_fields iprot rec{f_Remove_args_column_path=Just s}
+        else do
+          skip iprot _t292
+          read_Remove_args_fields iprot rec
+      4 -> if _t292 == T_I64 then do
+        s <- readI64 iprot
+        read_Remove_args_fields iprot rec{f_Remove_args_timestamp=Just s}
+        else do
+          skip iprot _t292
+          read_Remove_args_fields iprot rec
+      5 -> if _t292 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Remove_args_fields iprot rec{f_Remove_args_consistency_level=Just s}
+        else do
+          skip iprot _t292
+          read_Remove_args_fields iprot rec
+      _ -> do
+        skip iprot _t292
+        readFieldEnd iprot
+        read_Remove_args_fields iprot rec
+read_Remove_args iprot = do
+  readStructBegin iprot
+  rec <- read_Remove_args_fields iprot (Remove_args{f_Remove_args_keyspace=Nothing,f_Remove_args_key=Nothing,f_Remove_args_column_path=Nothing,f_Remove_args_timestamp=Nothing,f_Remove_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Remove_result = Remove_result{f_Remove_result_ire :: Maybe InvalidRequestException,f_Remove_result_ue :: Maybe UnavailableException,f_Remove_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Remove_result oprot rec = do
+  writeStructBegin oprot "Remove_result"
+  case f_Remove_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Remove_result_fields iprot rec = do
+  (_,_t297,_id298) <- readFieldBegin iprot
+  if _t297 == T_STOP then return rec else
+    case _id298 of 
+      1 -> if _t297 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Remove_result_fields iprot rec{f_Remove_result_ire=Just s}
+        else do
+          skip iprot _t297
+          read_Remove_result_fields iprot rec
+      2 -> if _t297 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Remove_result_fields iprot rec{f_Remove_result_ue=Just s}
+        else do
+          skip iprot _t297
+          read_Remove_result_fields iprot rec
+      3 -> if _t297 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Remove_result_fields iprot rec{f_Remove_result_te=Just s}
+        else do
+          skip iprot _t297
+          read_Remove_result_fields iprot rec
+      _ -> do
+        skip iprot _t297
+        readFieldEnd iprot
+        read_Remove_result_fields iprot rec
+read_Remove_result iprot = do
+  readStructBegin iprot
+  rec <- read_Remove_result_fields iprot (Remove_result{f_Remove_result_ire=Nothing,f_Remove_result_ue=Nothing,f_Remove_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Batch_mutate_args = Batch_mutate_args{f_Batch_mutate_args_keyspace :: Maybe String,f_Batch_mutate_args_mutation_map :: Maybe (Map.Map String (Map.Map String [Mutation])),f_Batch_mutate_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Batch_mutate_args oprot rec = do
+  writeStructBegin oprot "Batch_mutate_args"
+  case f_Batch_mutate_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Batch_mutate_args_mutation_map rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("mutation_map",T_MAP,2)
+    (let {f [] = return (); f ((_kiter301,_viter302):t) = do {do {writeString oprot _kiter301;(let {f [] = return (); f ((_kiter303,_viter304):t) = do {do {writeString oprot _kiter303;(let {f [] = return (); f (_viter305:t) = do {write_Mutation oprot _viter305;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter304); f _viter304;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _viter302); f (Map.toList _viter302);writeMapEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_MAP,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_Batch_mutate_args_consistency_level rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,3)
+    writeI32 oprot (fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Batch_mutate_args_fields iprot rec = do
+  (_,_t307,_id308) <- readFieldBegin iprot
+  if _t307 == T_STOP then return rec else
+    case _id308 of 
+      1 -> if _t307 == T_STRING then do
+        s <- readString iprot
+        read_Batch_mutate_args_fields iprot rec{f_Batch_mutate_args_keyspace=Just s}
+        else do
+          skip iprot _t307
+          read_Batch_mutate_args_fields iprot rec
+      2 -> if _t307 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_Mutation iprot);r <- f (n-1); return $ v:r}} in do {(_etype322,_size319) <- readListBegin iprot; f _size319});r <- f (n-1); return $ (k,v):r}} in do {(_ktype315,_vtype316,_size314) <- readMapBegin iprot; l <- f _size314; return $ Map.fromList l});r <- f (n-1); return $ (k,v):r}} in do {(_ktype310,_vtype311,_size309) <- readMapBegin iprot; l <- f _size309; return $ Map.fromList l})
+        read_Batch_mutate_args_fields iprot rec{f_Batch_mutate_args_mutation_map=Just s}
+        else do
+          skip iprot _t307
+          read_Batch_mutate_args_fields iprot rec
+      3 -> if _t307 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
+        read_Batch_mutate_args_fields iprot rec{f_Batch_mutate_args_consistency_level=Just s}
+        else do
+          skip iprot _t307
+          read_Batch_mutate_args_fields iprot rec
+      _ -> do
+        skip iprot _t307
+        readFieldEnd iprot
+        read_Batch_mutate_args_fields iprot rec
+read_Batch_mutate_args iprot = do
+  readStructBegin iprot
+  rec <- read_Batch_mutate_args_fields iprot (Batch_mutate_args{f_Batch_mutate_args_keyspace=Nothing,f_Batch_mutate_args_mutation_map=Nothing,f_Batch_mutate_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return rec
+data Batch_mutate_result = Batch_mutate_result{f_Batch_mutate_result_ire :: Maybe InvalidRequestException,f_Batch_mutate_result_ue :: Maybe UnavailableException,f_Batch_mutate_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Batch_mutate_result oprot rec = do
+  writeStructBegin oprot "Batch_mutate_result"
+  case f_Batch_mutate_result_ire rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Batch_mutate_result_ue rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Batch_mutate_result_te rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Batch_mutate_result_fields iprot rec = do
+  (_,_t327,_id328) <- readFieldBegin iprot
+  if _t327 == T_STOP then return rec else
+    case _id328 of 
+      1 -> if _t327 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Batch_mutate_result_fields iprot rec{f_Batch_mutate_result_ire=Just s}
+        else do
+          skip iprot _t327
+          read_Batch_mutate_result_fields iprot rec
+      2 -> if _t327 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Batch_mutate_result_fields iprot rec{f_Batch_mutate_result_ue=Just s}
+        else do
+          skip iprot _t327
+          read_Batch_mutate_result_fields iprot rec
+      3 -> if _t327 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Batch_mutate_result_fields iprot rec{f_Batch_mutate_result_te=Just s}
+        else do
+          skip iprot _t327
+          read_Batch_mutate_result_fields iprot rec
+      _ -> do
+        skip iprot _t327
+        readFieldEnd iprot
+        read_Batch_mutate_result_fields iprot rec
+read_Batch_mutate_result iprot = do
+  readStructBegin iprot
+  rec <- read_Batch_mutate_result_fields iprot (Batch_mutate_result{f_Batch_mutate_result_ire=Nothing,f_Batch_mutate_result_ue=Nothing,f_Batch_mutate_result_te=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_string_property_args = Get_string_property_args{f_Get_string_property_args_property :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Get_string_property_args oprot rec = do
+  writeStructBegin oprot "Get_string_property_args"
+  case f_Get_string_property_args_property rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("property",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_string_property_args_fields iprot rec = do
+  (_,_t332,_id333) <- readFieldBegin iprot
+  if _t332 == T_STOP then return rec else
+    case _id333 of 
+      1 -> if _t332 == T_STRING then do
+        s <- readString iprot
+        read_Get_string_property_args_fields iprot rec{f_Get_string_property_args_property=Just s}
+        else do
+          skip iprot _t332
+          read_Get_string_property_args_fields iprot rec
+      _ -> do
+        skip iprot _t332
+        readFieldEnd iprot
+        read_Get_string_property_args_fields iprot rec
+read_Get_string_property_args iprot = do
+  readStructBegin iprot
+  rec <- read_Get_string_property_args_fields iprot (Get_string_property_args{f_Get_string_property_args_property=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_string_property_result = Get_string_property_result{f_Get_string_property_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Get_string_property_result oprot rec = do
+  writeStructBegin oprot "Get_string_property_result"
+  case f_Get_string_property_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_string_property_result_fields iprot rec = do
+  (_,_t337,_id338) <- readFieldBegin iprot
+  if _t337 == T_STOP then return rec else
+    case _id338 of 
+      0 -> if _t337 == T_STRING then do
+        s <- readString iprot
+        read_Get_string_property_result_fields iprot rec{f_Get_string_property_result_success=Just s}
+        else do
+          skip iprot _t337
+          read_Get_string_property_result_fields iprot rec
+      _ -> do
+        skip iprot _t337
+        readFieldEnd iprot
+        read_Get_string_property_result_fields iprot rec
+read_Get_string_property_result iprot = do
+  readStructBegin iprot
+  rec <- read_Get_string_property_result_fields iprot (Get_string_property_result{f_Get_string_property_result_success=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_string_list_property_args = Get_string_list_property_args{f_Get_string_list_property_args_property :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Get_string_list_property_args oprot rec = do
+  writeStructBegin oprot "Get_string_list_property_args"
+  case f_Get_string_list_property_args_property rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("property",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_string_list_property_args_fields iprot rec = do
+  (_,_t342,_id343) <- readFieldBegin iprot
+  if _t342 == T_STOP then return rec else
+    case _id343 of 
+      1 -> if _t342 == T_STRING then do
+        s <- readString iprot
+        read_Get_string_list_property_args_fields iprot rec{f_Get_string_list_property_args_property=Just s}
+        else do
+          skip iprot _t342
+          read_Get_string_list_property_args_fields iprot rec
+      _ -> do
+        skip iprot _t342
+        readFieldEnd iprot
+        read_Get_string_list_property_args_fields iprot rec
+read_Get_string_list_property_args iprot = do
+  readStructBegin iprot
+  rec <- read_Get_string_list_property_args_fields iprot (Get_string_list_property_args{f_Get_string_list_property_args_property=Nothing})
+  readStructEnd iprot
+  return rec
+data Get_string_list_property_result = Get_string_list_property_result{f_Get_string_list_property_result_success :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
+write_Get_string_list_property_result oprot rec = do
+  writeStructBegin oprot "Get_string_list_property_result"
+  case f_Get_string_list_property_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter346:t) = do {writeString oprot _viter346;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_string_list_property_result_fields iprot rec = do
+  (_,_t348,_id349) <- readFieldBegin iprot
+  if _t348 == T_STOP then return rec else
+    case _id349 of 
+      0 -> if _t348 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype353,_size350) <- readListBegin iprot; f _size350})
+        read_Get_string_list_property_result_fields iprot rec{f_Get_string_list_property_result_success=Just s}
+        else do
+          skip iprot _t348
+          read_Get_string_list_property_result_fields iprot rec
+      _ -> do
+        skip iprot _t348
+        readFieldEnd iprot
+        read_Get_string_list_property_result_fields iprot rec
+read_Get_string_list_property_result iprot = do
+  readStructBegin iprot
+  rec <- read_Get_string_list_property_result_fields iprot (Get_string_list_property_result{f_Get_string_list_property_result_success=Nothing})
+  readStructEnd iprot
+  return rec
+data Describe_keyspaces_args = Describe_keyspaces_args deriving (Show,Eq,Ord,Typeable)
+write_Describe_keyspaces_args oprot rec = do
+  writeStructBegin oprot "Describe_keyspaces_args"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_keyspaces_args_fields iprot rec = do
+  (_,_t358,_id359) <- readFieldBegin iprot
+  if _t358 == T_STOP then return rec else
+    case _id359 of 
+      _ -> do
+        skip iprot _t358
+        readFieldEnd iprot
+        read_Describe_keyspaces_args_fields iprot rec
+read_Describe_keyspaces_args iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_keyspaces_args_fields iprot (Describe_keyspaces_args{})
+  readStructEnd iprot
+  return rec
+data Describe_keyspaces_result = Describe_keyspaces_result{f_Describe_keyspaces_result_success :: Maybe (Set.Set String)} deriving (Show,Eq,Ord,Typeable)
+write_Describe_keyspaces_result oprot rec = do
+  writeStructBegin oprot "Describe_keyspaces_result"
+  case f_Describe_keyspaces_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_SET,0)
+    (let {f [] = return (); f (_viter362:t) = do {writeString oprot _viter362;f t}} in do {writeSetBegin oprot (T_STRING,Set.size _v); f (Set.toList _v);writeSetEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_keyspaces_result_fields iprot rec = do
+  (_,_t364,_id365) <- readFieldBegin iprot
+  if _t364 == T_STOP then return rec else
+    case _id365 of 
+      0 -> if _t364 == T_SET then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype369,_size366) <- readSetBegin iprot; l <- f _size366; return $ Set.fromList l})
+        read_Describe_keyspaces_result_fields iprot rec{f_Describe_keyspaces_result_success=Just s}
+        else do
+          skip iprot _t364
+          read_Describe_keyspaces_result_fields iprot rec
+      _ -> do
+        skip iprot _t364
+        readFieldEnd iprot
+        read_Describe_keyspaces_result_fields iprot rec
+read_Describe_keyspaces_result iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_keyspaces_result_fields iprot (Describe_keyspaces_result{f_Describe_keyspaces_result_success=Nothing})
+  readStructEnd iprot
+  return rec
+data Describe_cluster_name_args = Describe_cluster_name_args deriving (Show,Eq,Ord,Typeable)
+write_Describe_cluster_name_args oprot rec = do
+  writeStructBegin oprot "Describe_cluster_name_args"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_cluster_name_args_fields iprot rec = do
+  (_,_t374,_id375) <- readFieldBegin iprot
+  if _t374 == T_STOP then return rec else
+    case _id375 of 
+      _ -> do
+        skip iprot _t374
+        readFieldEnd iprot
+        read_Describe_cluster_name_args_fields iprot rec
+read_Describe_cluster_name_args iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_cluster_name_args_fields iprot (Describe_cluster_name_args{})
+  readStructEnd iprot
+  return rec
+data Describe_cluster_name_result = Describe_cluster_name_result{f_Describe_cluster_name_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_cluster_name_result oprot rec = do
+  writeStructBegin oprot "Describe_cluster_name_result"
+  case f_Describe_cluster_name_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_cluster_name_result_fields iprot rec = do
+  (_,_t379,_id380) <- readFieldBegin iprot
+  if _t379 == T_STOP then return rec else
+    case _id380 of 
+      0 -> if _t379 == T_STRING then do
+        s <- readString iprot
+        read_Describe_cluster_name_result_fields iprot rec{f_Describe_cluster_name_result_success=Just s}
+        else do
+          skip iprot _t379
+          read_Describe_cluster_name_result_fields iprot rec
+      _ -> do
+        skip iprot _t379
+        readFieldEnd iprot
+        read_Describe_cluster_name_result_fields iprot rec
+read_Describe_cluster_name_result iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_cluster_name_result_fields iprot (Describe_cluster_name_result{f_Describe_cluster_name_result_success=Nothing})
+  readStructEnd iprot
+  return rec
+data Describe_version_args = Describe_version_args deriving (Show,Eq,Ord,Typeable)
+write_Describe_version_args oprot rec = do
+  writeStructBegin oprot "Describe_version_args"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_version_args_fields iprot rec = do
+  (_,_t384,_id385) <- readFieldBegin iprot
+  if _t384 == T_STOP then return rec else
+    case _id385 of 
+      _ -> do
+        skip iprot _t384
+        readFieldEnd iprot
+        read_Describe_version_args_fields iprot rec
+read_Describe_version_args iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_version_args_fields iprot (Describe_version_args{})
+  readStructEnd iprot
+  return rec
+data Describe_version_result = Describe_version_result{f_Describe_version_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_version_result oprot rec = do
+  writeStructBegin oprot "Describe_version_result"
+  case f_Describe_version_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_version_result_fields iprot rec = do
+  (_,_t389,_id390) <- readFieldBegin iprot
+  if _t389 == T_STOP then return rec else
+    case _id390 of 
+      0 -> if _t389 == T_STRING then do
+        s <- readString iprot
+        read_Describe_version_result_fields iprot rec{f_Describe_version_result_success=Just s}
+        else do
+          skip iprot _t389
+          read_Describe_version_result_fields iprot rec
+      _ -> do
+        skip iprot _t389
+        readFieldEnd iprot
+        read_Describe_version_result_fields iprot rec
+read_Describe_version_result iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_version_result_fields iprot (Describe_version_result{f_Describe_version_result_success=Nothing})
+  readStructEnd iprot
+  return rec
+data Describe_ring_args = Describe_ring_args{f_Describe_ring_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_ring_args oprot rec = do
+  writeStructBegin oprot "Describe_ring_args"
+  case f_Describe_ring_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_ring_args_fields iprot rec = do
+  (_,_t394,_id395) <- readFieldBegin iprot
+  if _t394 == T_STOP then return rec else
+    case _id395 of 
+      1 -> if _t394 == T_STRING then do
+        s <- readString iprot
+        read_Describe_ring_args_fields iprot rec{f_Describe_ring_args_keyspace=Just s}
+        else do
+          skip iprot _t394
+          read_Describe_ring_args_fields iprot rec
+      _ -> do
+        skip iprot _t394
+        readFieldEnd iprot
+        read_Describe_ring_args_fields iprot rec
+read_Describe_ring_args iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_ring_args_fields iprot (Describe_ring_args{f_Describe_ring_args_keyspace=Nothing})
+  readStructEnd iprot
+  return rec
+data Describe_ring_result = Describe_ring_result{f_Describe_ring_result_success :: Maybe [TokenRange]} deriving (Show,Eq,Ord,Typeable)
+write_Describe_ring_result oprot rec = do
+  writeStructBegin oprot "Describe_ring_result"
+  case f_Describe_ring_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter398:t) = do {write_TokenRange oprot _viter398;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_ring_result_fields iprot rec = do
+  (_,_t400,_id401) <- readFieldBegin iprot
+  if _t400 == T_STOP then return rec else
+    case _id401 of 
+      0 -> if _t400 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_TokenRange iprot);r <- f (n-1); return $ v:r}} in do {(_etype405,_size402) <- readListBegin iprot; f _size402})
+        read_Describe_ring_result_fields iprot rec{f_Describe_ring_result_success=Just s}
+        else do
+          skip iprot _t400
+          read_Describe_ring_result_fields iprot rec
+      _ -> do
+        skip iprot _t400
+        readFieldEnd iprot
+        read_Describe_ring_result_fields iprot rec
+read_Describe_ring_result iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_ring_result_fields iprot (Describe_ring_result{f_Describe_ring_result_success=Nothing})
+  readStructEnd iprot
+  return rec
+data Describe_keyspace_args = Describe_keyspace_args{f_Describe_keyspace_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_keyspace_args oprot rec = do
+  writeStructBegin oprot "Describe_keyspace_args"
+  case f_Describe_keyspace_args_keyspace rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_keyspace_args_fields iprot rec = do
+  (_,_t410,_id411) <- readFieldBegin iprot
+  if _t410 == T_STOP then return rec else
+    case _id411 of 
+      1 -> if _t410 == T_STRING then do
+        s <- readString iprot
+        read_Describe_keyspace_args_fields iprot rec{f_Describe_keyspace_args_keyspace=Just s}
+        else do
+          skip iprot _t410
+          read_Describe_keyspace_args_fields iprot rec
+      _ -> do
+        skip iprot _t410
+        readFieldEnd iprot
+        read_Describe_keyspace_args_fields iprot rec
+read_Describe_keyspace_args iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_keyspace_args_fields iprot (Describe_keyspace_args{f_Describe_keyspace_args_keyspace=Nothing})
+  readStructEnd iprot
+  return rec
+data Describe_keyspace_result = Describe_keyspace_result{f_Describe_keyspace_result_success :: Maybe (Map.Map String (Map.Map String String)),f_Describe_keyspace_result_nfe :: Maybe NotFoundException} deriving (Show,Eq,Ord,Typeable)
+write_Describe_keyspace_result oprot rec = do
+  writeStructBegin oprot "Describe_keyspace_result"
+  case f_Describe_keyspace_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_MAP,0)
+    (let {f [] = return (); f ((_kiter414,_viter415):t) = do {do {writeString oprot _kiter414;(let {f [] = return (); f ((_kiter416,_viter417):t) = do {do {writeString oprot _kiter416;writeString oprot _viter417};f t}} in do {writeMapBegin oprot (T_STRING,T_STRING,Map.size _viter415); f (Map.toList _viter415);writeMapEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_MAP,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_Describe_keyspace_result_nfe rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("nfe",T_STRUCT,1)
+    write_NotFoundException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_keyspace_result_fields iprot rec = do
+  (_,_t419,_id420) <- readFieldBegin iprot
+  if _t419 == T_STOP then return rec else
+    case _id420 of 
+      0 -> if _t419 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- readString iprot;r <- f (n-1); return $ (k,v):r}} in do {(_ktype427,_vtype428,_size426) <- readMapBegin iprot; l <- f _size426; return $ Map.fromList l});r <- f (n-1); return $ (k,v):r}} in do {(_ktype422,_vtype423,_size421) <- readMapBegin iprot; l <- f _size421; return $ Map.fromList l})
+        read_Describe_keyspace_result_fields iprot rec{f_Describe_keyspace_result_success=Just s}
+        else do
+          skip iprot _t419
+          read_Describe_keyspace_result_fields iprot rec
+      1 -> if _t419 == T_STRUCT then do
+        s <- (read_NotFoundException iprot)
+        read_Describe_keyspace_result_fields iprot rec{f_Describe_keyspace_result_nfe=Just s}
+        else do
+          skip iprot _t419
+          read_Describe_keyspace_result_fields iprot rec
+      _ -> do
+        skip iprot _t419
+        readFieldEnd iprot
+        read_Describe_keyspace_result_fields iprot rec
+read_Describe_keyspace_result iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_keyspace_result_fields iprot (Describe_keyspace_result{f_Describe_keyspace_result_success=Nothing,f_Describe_keyspace_result_nfe=Nothing})
+  readStructEnd iprot
+  return rec
+data Describe_splits_args = Describe_splits_args{f_Describe_splits_args_start_token :: Maybe String,f_Describe_splits_args_end_token :: Maybe String,f_Describe_splits_args_keys_per_split :: Maybe Int} deriving (Show,Eq,Ord,Typeable)
+write_Describe_splits_args oprot rec = do
+  writeStructBegin oprot "Describe_splits_args"
+  case f_Describe_splits_args_start_token rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_token",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Describe_splits_args_end_token rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("end_token",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Describe_splits_args_keys_per_split rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keys_per_split",T_I32,3)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_splits_args_fields iprot rec = do
+  (_,_t434,_id435) <- readFieldBegin iprot
+  if _t434 == T_STOP then return rec else
+    case _id435 of 
+      1 -> if _t434 == T_STRING then do
+        s <- readString iprot
+        read_Describe_splits_args_fields iprot rec{f_Describe_splits_args_start_token=Just s}
+        else do
+          skip iprot _t434
+          read_Describe_splits_args_fields iprot rec
+      2 -> if _t434 == T_STRING then do
+        s <- readString iprot
+        read_Describe_splits_args_fields iprot rec{f_Describe_splits_args_end_token=Just s}
+        else do
+          skip iprot _t434
+          read_Describe_splits_args_fields iprot rec
+      3 -> if _t434 == T_I32 then do
+        s <- readI32 iprot
+        read_Describe_splits_args_fields iprot rec{f_Describe_splits_args_keys_per_split=Just s}
+        else do
+          skip iprot _t434
+          read_Describe_splits_args_fields iprot rec
+      _ -> do
+        skip iprot _t434
+        readFieldEnd iprot
+        read_Describe_splits_args_fields iprot rec
+read_Describe_splits_args iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_splits_args_fields iprot (Describe_splits_args{f_Describe_splits_args_start_token=Nothing,f_Describe_splits_args_end_token=Nothing,f_Describe_splits_args_keys_per_split=Nothing})
+  readStructEnd iprot
+  return rec
+data Describe_splits_result = Describe_splits_result{f_Describe_splits_result_success :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
+write_Describe_splits_result oprot rec = do
+  writeStructBegin oprot "Describe_splits_result"
+  case f_Describe_splits_result_success rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter438:t) = do {writeString oprot _viter438;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_splits_result_fields iprot rec = do
+  (_,_t440,_id441) <- readFieldBegin iprot
+  if _t440 == T_STOP then return rec else
+    case _id441 of 
+      0 -> if _t440 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype445,_size442) <- readListBegin iprot; f _size442})
+        read_Describe_splits_result_fields iprot rec{f_Describe_splits_result_success=Just s}
+        else do
+          skip iprot _t440
+          read_Describe_splits_result_fields iprot rec
+      _ -> do
+        skip iprot _t440
+        readFieldEnd iprot
+        read_Describe_splits_result_fields iprot rec
+read_Describe_splits_result iprot = do
+  readStructBegin iprot
+  rec <- read_Describe_splits_result_fields iprot (Describe_splits_result{f_Describe_splits_result_success=Nothing})
+  readStructEnd iprot
+  return rec
+process_login (seqid, iprot, oprot, handler) = do
+  args <- read_Login_args iprot
+  readMessageEnd iprot
+  rs <- return (Login_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (do
+        Iface.login handler (f_Login_args_keyspace args) (f_Login_args_auth_request args)
+        return rs)
+      (\e  -> 
+        return rs{f_Login_result_authnx =Just e}))
+    (\e  -> 
+      return rs{f_Login_result_authzx =Just e}))
+  writeMessageBegin oprot ("login", M_REPLY, seqid);
+  write_Login_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get (seqid, iprot, oprot, handler) = do
+  args <- read_Get_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_result Nothing Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (Control.Exception.catch
+          (do
+            res <- Iface.get handler (f_Get_args_keyspace args) (f_Get_args_key args) (f_Get_args_column_path args) (f_Get_args_consistency_level args)
+            return rs{f_Get_result_success= Just res})
+          (\e  -> 
+            return rs{f_Get_result_ire =Just e}))
+        (\e  -> 
+          return rs{f_Get_result_nfe =Just e}))
+      (\e  -> 
+        return rs{f_Get_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_result_te =Just e}))
+  writeMessageBegin oprot ("get", M_REPLY, seqid);
+  write_Get_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_slice (seqid, iprot, oprot, handler) = do
+  args <- read_Get_slice_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_slice_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.get_slice handler (f_Get_slice_args_keyspace args) (f_Get_slice_args_key args) (f_Get_slice_args_column_parent args) (f_Get_slice_args_predicate args) (f_Get_slice_args_consistency_level args)
+          return rs{f_Get_slice_result_success= Just res})
+        (\e  -> 
+          return rs{f_Get_slice_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Get_slice_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_slice_result_te =Just e}))
+  writeMessageBegin oprot ("get_slice", M_REPLY, seqid);
+  write_Get_slice_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_multiget (seqid, iprot, oprot, handler) = do
+  args <- read_Multiget_args iprot
+  readMessageEnd iprot
+  rs <- return (Multiget_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.multiget handler (f_Multiget_args_keyspace args) (f_Multiget_args_keys args) (f_Multiget_args_column_path args) (f_Multiget_args_consistency_level args)
+          return rs{f_Multiget_result_success= Just res})
+        (\e  -> 
+          return rs{f_Multiget_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Multiget_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Multiget_result_te =Just e}))
+  writeMessageBegin oprot ("multiget", M_REPLY, seqid);
+  write_Multiget_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_multiget_slice (seqid, iprot, oprot, handler) = do
+  args <- read_Multiget_slice_args iprot
+  readMessageEnd iprot
+  rs <- return (Multiget_slice_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.multiget_slice handler (f_Multiget_slice_args_keyspace args) (f_Multiget_slice_args_keys args) (f_Multiget_slice_args_column_parent args) (f_Multiget_slice_args_predicate args) (f_Multiget_slice_args_consistency_level args)
+          return rs{f_Multiget_slice_result_success= Just res})
+        (\e  -> 
+          return rs{f_Multiget_slice_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Multiget_slice_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Multiget_slice_result_te =Just e}))
+  writeMessageBegin oprot ("multiget_slice", M_REPLY, seqid);
+  write_Multiget_slice_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_count (seqid, iprot, oprot, handler) = do
+  args <- read_Get_count_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_count_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.get_count handler (f_Get_count_args_keyspace args) (f_Get_count_args_key args) (f_Get_count_args_column_parent args) (f_Get_count_args_consistency_level args)
+          return rs{f_Get_count_result_success= Just res})
+        (\e  -> 
+          return rs{f_Get_count_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Get_count_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_count_result_te =Just e}))
+  writeMessageBegin oprot ("get_count", M_REPLY, seqid);
+  write_Get_count_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_range_slice (seqid, iprot, oprot, handler) = do
+  args <- read_Get_range_slice_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_range_slice_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.get_range_slice handler (f_Get_range_slice_args_keyspace args) (f_Get_range_slice_args_column_parent args) (f_Get_range_slice_args_predicate args) (f_Get_range_slice_args_start_key args) (f_Get_range_slice_args_finish_key args) (f_Get_range_slice_args_row_count args) (f_Get_range_slice_args_consistency_level args)
+          return rs{f_Get_range_slice_result_success= Just res})
+        (\e  -> 
+          return rs{f_Get_range_slice_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Get_range_slice_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_range_slice_result_te =Just e}))
+  writeMessageBegin oprot ("get_range_slice", M_REPLY, seqid);
+  write_Get_range_slice_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_range_slices (seqid, iprot, oprot, handler) = do
+  args <- read_Get_range_slices_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_range_slices_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.get_range_slices handler (f_Get_range_slices_args_keyspace args) (f_Get_range_slices_args_column_parent args) (f_Get_range_slices_args_predicate args) (f_Get_range_slices_args_range args) (f_Get_range_slices_args_consistency_level args)
+          return rs{f_Get_range_slices_result_success= Just res})
+        (\e  -> 
+          return rs{f_Get_range_slices_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Get_range_slices_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_range_slices_result_te =Just e}))
+  writeMessageBegin oprot ("get_range_slices", M_REPLY, seqid);
+  write_Get_range_slices_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_insert (seqid, iprot, oprot, handler) = do
+  args <- read_Insert_args iprot
+  readMessageEnd iprot
+  rs <- return (Insert_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          Iface.insert handler (f_Insert_args_keyspace args) (f_Insert_args_key args) (f_Insert_args_column_path args) (f_Insert_args_value args) (f_Insert_args_timestamp args) (f_Insert_args_consistency_level args)
+          return rs)
+        (\e  -> 
+          return rs{f_Insert_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Insert_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Insert_result_te =Just e}))
+  writeMessageBegin oprot ("insert", M_REPLY, seqid);
+  write_Insert_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_batch_insert (seqid, iprot, oprot, handler) = do
+  args <- read_Batch_insert_args iprot
+  readMessageEnd iprot
+  rs <- return (Batch_insert_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          Iface.batch_insert handler (f_Batch_insert_args_keyspace args) (f_Batch_insert_args_key args) (f_Batch_insert_args_cfmap args) (f_Batch_insert_args_consistency_level args)
+          return rs)
+        (\e  -> 
+          return rs{f_Batch_insert_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Batch_insert_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Batch_insert_result_te =Just e}))
+  writeMessageBegin oprot ("batch_insert", M_REPLY, seqid);
+  write_Batch_insert_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_remove (seqid, iprot, oprot, handler) = do
+  args <- read_Remove_args iprot
+  readMessageEnd iprot
+  rs <- return (Remove_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          Iface.remove handler (f_Remove_args_keyspace args) (f_Remove_args_key args) (f_Remove_args_column_path args) (f_Remove_args_timestamp args) (f_Remove_args_consistency_level args)
+          return rs)
+        (\e  -> 
+          return rs{f_Remove_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Remove_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Remove_result_te =Just e}))
+  writeMessageBegin oprot ("remove", M_REPLY, seqid);
+  write_Remove_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_batch_mutate (seqid, iprot, oprot, handler) = do
+  args <- read_Batch_mutate_args iprot
+  readMessageEnd iprot
+  rs <- return (Batch_mutate_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          Iface.batch_mutate handler (f_Batch_mutate_args_keyspace args) (f_Batch_mutate_args_mutation_map args) (f_Batch_mutate_args_consistency_level args)
+          return rs)
+        (\e  -> 
+          return rs{f_Batch_mutate_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Batch_mutate_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Batch_mutate_result_te =Just e}))
+  writeMessageBegin oprot ("batch_mutate", M_REPLY, seqid);
+  write_Batch_mutate_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_string_property (seqid, iprot, oprot, handler) = do
+  args <- read_Get_string_property_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_string_property_result Nothing)
+  res <- (do
+    res <- Iface.get_string_property handler (f_Get_string_property_args_property args)
+    return rs{f_Get_string_property_result_success= Just res})
+  writeMessageBegin oprot ("get_string_property", M_REPLY, seqid);
+  write_Get_string_property_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_string_list_property (seqid, iprot, oprot, handler) = do
+  args <- read_Get_string_list_property_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_string_list_property_result Nothing)
+  res <- (do
+    res <- Iface.get_string_list_property handler (f_Get_string_list_property_args_property args)
+    return rs{f_Get_string_list_property_result_success= Just res})
+  writeMessageBegin oprot ("get_string_list_property", M_REPLY, seqid);
+  write_Get_string_list_property_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_keyspaces (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_keyspaces_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_keyspaces_result Nothing)
+  res <- (do
+    res <- Iface.describe_keyspaces handler
+    return rs{f_Describe_keyspaces_result_success= Just res})
+  writeMessageBegin oprot ("describe_keyspaces", M_REPLY, seqid);
+  write_Describe_keyspaces_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_cluster_name (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_cluster_name_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_cluster_name_result Nothing)
+  res <- (do
+    res <- Iface.describe_cluster_name handler
+    return rs{f_Describe_cluster_name_result_success= Just res})
+  writeMessageBegin oprot ("describe_cluster_name", M_REPLY, seqid);
+  write_Describe_cluster_name_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_version (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_version_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_version_result Nothing)
+  res <- (do
+    res <- Iface.describe_version handler
+    return rs{f_Describe_version_result_success= Just res})
+  writeMessageBegin oprot ("describe_version", M_REPLY, seqid);
+  write_Describe_version_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_ring (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_ring_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_ring_result Nothing)
+  res <- (do
+    res <- Iface.describe_ring handler (f_Describe_ring_args_keyspace args)
+    return rs{f_Describe_ring_result_success= Just res})
+  writeMessageBegin oprot ("describe_ring", M_REPLY, seqid);
+  write_Describe_ring_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_keyspace (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_keyspace_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_keyspace_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.describe_keyspace handler (f_Describe_keyspace_args_keyspace args)
+      return rs{f_Describe_keyspace_result_success= Just res})
+    (\e  -> 
+      return rs{f_Describe_keyspace_result_nfe =Just e}))
+  writeMessageBegin oprot ("describe_keyspace", M_REPLY, seqid);
+  write_Describe_keyspace_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_splits (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_splits_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_splits_result Nothing)
+  res <- (do
+    res <- Iface.describe_splits handler (f_Describe_splits_args_start_token args) (f_Describe_splits_args_end_token args) (f_Describe_splits_args_keys_per_split args)
+    return rs{f_Describe_splits_result_success= Just res})
+  writeMessageBegin oprot ("describe_splits", M_REPLY, seqid);
+  write_Describe_splits_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+proc handler (iprot,oprot) (name,typ,seqid) = case name of
+  "login" -> process_login (seqid,iprot,oprot,handler)
+  "get" -> process_get (seqid,iprot,oprot,handler)
+  "get_slice" -> process_get_slice (seqid,iprot,oprot,handler)
+  "multiget" -> process_multiget (seqid,iprot,oprot,handler)
+  "multiget_slice" -> process_multiget_slice (seqid,iprot,oprot,handler)
+  "get_count" -> process_get_count (seqid,iprot,oprot,handler)
+  "get_range_slice" -> process_get_range_slice (seqid,iprot,oprot,handler)
+  "get_range_slices" -> process_get_range_slices (seqid,iprot,oprot,handler)
+  "insert" -> process_insert (seqid,iprot,oprot,handler)
+  "batch_insert" -> process_batch_insert (seqid,iprot,oprot,handler)
+  "remove" -> process_remove (seqid,iprot,oprot,handler)
+  "batch_mutate" -> process_batch_mutate (seqid,iprot,oprot,handler)
+  "get_string_property" -> process_get_string_property (seqid,iprot,oprot,handler)
+  "get_string_list_property" -> process_get_string_list_property (seqid,iprot,oprot,handler)
+  "describe_keyspaces" -> process_describe_keyspaces (seqid,iprot,oprot,handler)
+  "describe_cluster_name" -> process_describe_cluster_name (seqid,iprot,oprot,handler)
+  "describe_version" -> process_describe_version (seqid,iprot,oprot,handler)
+  "describe_ring" -> process_describe_ring (seqid,iprot,oprot,handler)
+  "describe_keyspace" -> process_describe_keyspace (seqid,iprot,oprot,handler)
+  "describe_splits" -> process_describe_splits (seqid,iprot,oprot,handler)
   _ -> do
     skip iprot T_STRUCT
     readMessageEnd iprot
diff --git a/Database/Cassandra/Thrift/Cassandra_Client.hs b/Database/Cassandra/Thrift/Cassandra_Client.hs
--- a/Database/Cassandra/Thrift/Cassandra_Client.hs
+++ b/Database/Cassandra/Thrift/Cassandra_Client.hs
@@ -1,6 +1,5 @@
 {-# LANGUAGE DeriveDataTypeable #-}
-
-module Database.Cassandra.Thrift.Cassandra_Client(get,get_slice,multiget,multiget_slice,get_count,get_key_range,get_range_slice,insert,batch_insert,remove,get_string_property,get_string_list_property,describe_keyspace) where
+module Database.Cassandra.Thrift.Cassandra_Client(login,get,get_slice,multiget,multiget_slice,get_count,get_range_slice,get_range_slices,insert,batch_insert,remove,batch_mutate,get_string_property,get_string_list_property,describe_keyspaces,describe_cluster_name,describe_version,describe_ring,describe_keyspace,describe_splits) where
 import Data.IORef
 import Thrift
 import Data.Typeable ( Typeable )
@@ -9,8 +8,34 @@
 import qualified Data.Set as Set
 import Data.Int
 import Database.Cassandra.Thrift.Cassandra_Types
-import Database.Cassandra.Thrift.Cassandra
+import Database.Cassandra.Thrift.Cassandra 
 seqid = newIORef 0
+login (ip,op) arg_keyspace arg_auth_request = do
+  send_login op arg_keyspace arg_auth_request
+  recv_login ip
+send_login op arg_keyspace arg_auth_request = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("login", M_CALL, seqn)
+  write_Login_args op (Login_args{f_Login_args_keyspace=Just arg_keyspace,f_Login_args_auth_request=Just arg_auth_request})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_login ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Login_result ip
+  readMessageEnd ip
+  case f_Login_result_authnx res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  case f_Login_result_authzx res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  return ()
 get (ip,op) arg_keyspace arg_key arg_column_path arg_consistency_level = do
   send_get op arg_keyspace arg_key arg_column_path arg_consistency_level
   recv_get ip
@@ -174,70 +199,70 @@
         Nothing -> return ()
         Just _v -> throw _v
       throw (AppExn AE_MISSING_RESULT "get_count failed: unknown result")
-get_key_range (ip,op) arg_keyspace arg_column_family arg_start arg_finish arg_count arg_consistency_level = do
-  send_get_key_range op arg_keyspace arg_column_family arg_start arg_finish arg_count arg_consistency_level
-  recv_get_key_range ip
-send_get_key_range op arg_keyspace arg_column_family arg_start arg_finish arg_count arg_consistency_level = do
+get_range_slice (ip,op) arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level = do
+  send_get_range_slice op arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level
+  recv_get_range_slice ip
+send_get_range_slice op arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
-  writeMessageBegin op ("get_key_range", M_CALL, seqn)
-  write_Get_key_range_args op (Get_key_range_args{f_Get_key_range_args_keyspace=Just arg_keyspace,f_Get_key_range_args_column_family=Just arg_column_family,f_Get_key_range_args_start=Just arg_start,f_Get_key_range_args_finish=Just arg_finish,f_Get_key_range_args_count=Just arg_count,f_Get_key_range_args_consistency_level=Just arg_consistency_level})
+  writeMessageBegin op ("get_range_slice", M_CALL, seqn)
+  write_Get_range_slice_args op (Get_range_slice_args{f_Get_range_slice_args_keyspace=Just arg_keyspace,f_Get_range_slice_args_column_parent=Just arg_column_parent,f_Get_range_slice_args_predicate=Just arg_predicate,f_Get_range_slice_args_start_key=Just arg_start_key,f_Get_range_slice_args_finish_key=Just arg_finish_key,f_Get_range_slice_args_row_count=Just arg_row_count,f_Get_range_slice_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
-recv_get_key_range ip = do
+recv_get_range_slice ip = do
   (fname, mtype, rseqid) <- readMessageBegin ip
   if mtype == M_EXCEPTION then do
     x <- readAppExn ip
     readMessageEnd ip
     throw x
     else return ()
-  res <- read_Get_key_range_result ip
+  res <- read_Get_range_slice_result ip
   readMessageEnd ip
-  case f_Get_key_range_result_success res of
+  case f_Get_range_slice_result_success res of
     Just v -> return v
     Nothing -> do
-      case f_Get_key_range_result_ire res of
+      case f_Get_range_slice_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_key_range_result_ue res of
+      case f_Get_range_slice_result_ue res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_key_range_result_te res of
+      case f_Get_range_slice_result_te res of
         Nothing -> return ()
         Just _v -> throw _v
-      throw (AppExn AE_MISSING_RESULT "get_key_range failed: unknown result")
-get_range_slice (ip,op) arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level = do
-  send_get_range_slice op arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level
-  recv_get_range_slice ip
-send_get_range_slice op arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level = do
+      throw (AppExn AE_MISSING_RESULT "get_range_slice failed: unknown result")
+get_range_slices (ip,op) arg_keyspace arg_column_parent arg_predicate arg_range arg_consistency_level = do
+  send_get_range_slices op arg_keyspace arg_column_parent arg_predicate arg_range arg_consistency_level
+  recv_get_range_slices ip
+send_get_range_slices op arg_keyspace arg_column_parent arg_predicate arg_range arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
-  writeMessageBegin op ("get_range_slice", M_CALL, seqn)
-  write_Get_range_slice_args op (Get_range_slice_args{f_Get_range_slice_args_keyspace=Just arg_keyspace,f_Get_range_slice_args_column_parent=Just arg_column_parent,f_Get_range_slice_args_predicate=Just arg_predicate,f_Get_range_slice_args_start_key=Just arg_start_key,f_Get_range_slice_args_finish_key=Just arg_finish_key,f_Get_range_slice_args_row_count=Just arg_row_count,f_Get_range_slice_args_consistency_level=Just arg_consistency_level})
+  writeMessageBegin op ("get_range_slices", M_CALL, seqn)
+  write_Get_range_slices_args op (Get_range_slices_args{f_Get_range_slices_args_keyspace=Just arg_keyspace,f_Get_range_slices_args_column_parent=Just arg_column_parent,f_Get_range_slices_args_predicate=Just arg_predicate,f_Get_range_slices_args_range=Just arg_range,f_Get_range_slices_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
-recv_get_range_slice ip = do
+recv_get_range_slices ip = do
   (fname, mtype, rseqid) <- readMessageBegin ip
   if mtype == M_EXCEPTION then do
     x <- readAppExn ip
     readMessageEnd ip
     throw x
     else return ()
-  res <- read_Get_range_slice_result ip
+  res <- read_Get_range_slices_result ip
   readMessageEnd ip
-  case f_Get_range_slice_result_success res of
+  case f_Get_range_slices_result_success res of
     Just v -> return v
     Nothing -> do
-      case f_Get_range_slice_result_ire res of
+      case f_Get_range_slices_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_range_slice_result_ue res of
+      case f_Get_range_slices_result_ue res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_range_slice_result_te res of
+      case f_Get_range_slices_result_te res of
         Nothing -> return ()
         Just _v -> throw _v
-      throw (AppExn AE_MISSING_RESULT "get_range_slice failed: unknown result")
+      throw (AppExn AE_MISSING_RESULT "get_range_slices failed: unknown result")
 insert (ip,op) arg_keyspace arg_key arg_column_path arg_value arg_timestamp arg_consistency_level = do
   send_insert op arg_keyspace arg_key arg_column_path arg_value arg_timestamp arg_consistency_level
   recv_insert ip
@@ -325,6 +350,35 @@
     Nothing -> return ()
     Just _v -> throw _v
   return ()
+batch_mutate (ip,op) arg_keyspace arg_mutation_map arg_consistency_level = do
+  send_batch_mutate op arg_keyspace arg_mutation_map arg_consistency_level
+  recv_batch_mutate ip
+send_batch_mutate op arg_keyspace arg_mutation_map arg_consistency_level = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("batch_mutate", M_CALL, seqn)
+  write_Batch_mutate_args op (Batch_mutate_args{f_Batch_mutate_args_keyspace=Just arg_keyspace,f_Batch_mutate_args_mutation_map=Just arg_mutation_map,f_Batch_mutate_args_consistency_level=Just arg_consistency_level})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_batch_mutate ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Batch_mutate_result ip
+  readMessageEnd ip
+  case f_Batch_mutate_result_ire res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  case f_Batch_mutate_result_ue res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  case f_Batch_mutate_result_te res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  return ()
 get_string_property (ip,op) arg_property = do
   send_get_string_property op arg_property
   recv_get_string_property ip
@@ -371,6 +425,98 @@
     Just v -> return v
     Nothing -> do
       throw (AppExn AE_MISSING_RESULT "get_string_list_property failed: unknown result")
+describe_keyspaces (ip,op) = do
+  send_describe_keyspaces op
+  recv_describe_keyspaces ip
+send_describe_keyspaces op = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("describe_keyspaces", M_CALL, seqn)
+  write_Describe_keyspaces_args op (Describe_keyspaces_args{})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_describe_keyspaces ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Describe_keyspaces_result ip
+  readMessageEnd ip
+  case f_Describe_keyspaces_result_success res of
+    Just v -> return v
+    Nothing -> do
+      throw (AppExn AE_MISSING_RESULT "describe_keyspaces failed: unknown result")
+describe_cluster_name (ip,op) = do
+  send_describe_cluster_name op
+  recv_describe_cluster_name ip
+send_describe_cluster_name op = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("describe_cluster_name", M_CALL, seqn)
+  write_Describe_cluster_name_args op (Describe_cluster_name_args{})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_describe_cluster_name ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Describe_cluster_name_result ip
+  readMessageEnd ip
+  case f_Describe_cluster_name_result_success res of
+    Just v -> return v
+    Nothing -> do
+      throw (AppExn AE_MISSING_RESULT "describe_cluster_name failed: unknown result")
+describe_version (ip,op) = do
+  send_describe_version op
+  recv_describe_version ip
+send_describe_version op = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("describe_version", M_CALL, seqn)
+  write_Describe_version_args op (Describe_version_args{})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_describe_version ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Describe_version_result ip
+  readMessageEnd ip
+  case f_Describe_version_result_success res of
+    Just v -> return v
+    Nothing -> do
+      throw (AppExn AE_MISSING_RESULT "describe_version failed: unknown result")
+describe_ring (ip,op) arg_keyspace = do
+  send_describe_ring op arg_keyspace
+  recv_describe_ring ip
+send_describe_ring op arg_keyspace = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("describe_ring", M_CALL, seqn)
+  write_Describe_ring_args op (Describe_ring_args{f_Describe_ring_args_keyspace=Just arg_keyspace})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_describe_ring ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Describe_ring_result ip
+  readMessageEnd ip
+  case f_Describe_ring_result_success res of
+    Just v -> return v
+    Nothing -> do
+      throw (AppExn AE_MISSING_RESULT "describe_ring failed: unknown result")
 describe_keyspace (ip,op) arg_keyspace = do
   send_describe_keyspace op arg_keyspace
   recv_describe_keyspace ip
@@ -397,3 +543,26 @@
         Nothing -> return ()
         Just _v -> throw _v
       throw (AppExn AE_MISSING_RESULT "describe_keyspace failed: unknown result")
+describe_splits (ip,op) arg_start_token arg_end_token arg_keys_per_split = do
+  send_describe_splits op arg_start_token arg_end_token arg_keys_per_split
+  recv_describe_splits ip
+send_describe_splits op arg_start_token arg_end_token arg_keys_per_split = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("describe_splits", M_CALL, seqn)
+  write_Describe_splits_args op (Describe_splits_args{f_Describe_splits_args_start_token=Just arg_start_token,f_Describe_splits_args_end_token=Just arg_end_token,f_Describe_splits_args_keys_per_split=Just arg_keys_per_split})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_describe_splits ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Describe_splits_result ip
+  readMessageEnd ip
+  case f_Describe_splits_result_success res of
+    Just v -> return v
+    Nothing -> do
+      throw (AppExn AE_MISSING_RESULT "describe_splits failed: unknown result")
diff --git a/Database/Cassandra/Thrift/Cassandra_Consts.hs b/Database/Cassandra/Thrift/Cassandra_Consts.hs
--- a/Database/Cassandra/Thrift/Cassandra_Consts.hs
+++ b/Database/Cassandra/Thrift/Cassandra_Consts.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE DeriveDataTypeable #-}
-
 -----------------------------------------------------------------
 -- Autogenerated by Thrift                                     --
 --                                                             --
@@ -15,5 +14,5 @@
 import Data.Int
 import Database.Cassandra.Thrift.Cassandra_Types
 vERSION :: String
-vERSION = "0.5.1"
+vERSION = "2.1.0"
 
diff --git a/Database/Cassandra/Thrift/Cassandra_Iface.hs b/Database/Cassandra/Thrift/Cassandra_Iface.hs
--- a/Database/Cassandra/Thrift/Cassandra_Iface.hs
+++ b/Database/Cassandra/Thrift/Cassandra_Iface.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE DeriveDataTypeable #-}
 module Database.Cassandra.Thrift.Cassandra_Iface where
 import Thrift
 import Data.Typeable ( Typeable )
@@ -8,16 +9,23 @@
 import Database.Cassandra.Thrift.Cassandra_Types
 
 class Cassandra_Iface a where
+  login :: a -> Maybe String -> Maybe AuthenticationRequest -> IO ()
   get :: a -> Maybe String -> Maybe String -> Maybe ColumnPath -> Maybe ConsistencyLevel -> IO ColumnOrSuperColumn
   get_slice :: a -> Maybe String -> Maybe String -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO [ColumnOrSuperColumn]
   multiget :: a -> Maybe String -> Maybe [String] -> Maybe ColumnPath -> Maybe ConsistencyLevel -> IO (Map.Map String ColumnOrSuperColumn)
   multiget_slice :: a -> Maybe String -> Maybe [String] -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO (Map.Map String [ColumnOrSuperColumn])
   get_count :: a -> Maybe String -> Maybe String -> Maybe ColumnParent -> Maybe ConsistencyLevel -> IO Int
-  get_key_range :: a -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe Int -> Maybe ConsistencyLevel -> IO [String]
   get_range_slice :: a -> Maybe String -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe String -> Maybe String -> Maybe Int -> Maybe ConsistencyLevel -> IO [KeySlice]
+  get_range_slices :: a -> Maybe String -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe KeyRange -> Maybe ConsistencyLevel -> IO [KeySlice]
   insert :: a -> Maybe String -> Maybe String -> Maybe ColumnPath -> Maybe String -> Maybe Int64 -> Maybe ConsistencyLevel -> IO ()
   batch_insert :: a -> Maybe String -> Maybe String -> Maybe (Map.Map String [ColumnOrSuperColumn]) -> Maybe ConsistencyLevel -> IO ()
   remove :: a -> Maybe String -> Maybe String -> Maybe ColumnPath -> Maybe Int64 -> Maybe ConsistencyLevel -> IO ()
+  batch_mutate :: a -> Maybe String -> Maybe (Map.Map String (Map.Map String [Mutation])) -> Maybe ConsistencyLevel -> IO ()
   get_string_property :: a -> Maybe String -> IO String
   get_string_list_property :: a -> Maybe String -> IO [String]
+  describe_keyspaces :: a -> IO (Set.Set String)
+  describe_cluster_name :: a -> IO String
+  describe_version :: a -> IO String
+  describe_ring :: a -> Maybe String -> IO [TokenRange]
   describe_keyspace :: a -> Maybe String -> IO (Map.Map String (Map.Map String String))
+  describe_splits :: a -> Maybe String -> Maybe String -> Maybe Int -> IO [String]
diff --git a/Database/Cassandra/Thrift/Cassandra_Types.hs b/Database/Cassandra/Thrift/Cassandra_Types.hs
--- a/Database/Cassandra/Thrift/Cassandra_Types.hs
+++ b/Database/Cassandra/Thrift/Cassandra_Types.hs
@@ -12,7 +12,7 @@
 import qualified Data.Map as Map
 import qualified Data.Set as Set
 import Data.Int
-data ConsistencyLevel = ZERO|ONE|QUORUM|DCQUORUM|DCQUORUMSYNC|ALL  deriving (Show,Eq, Typeable, Ord)
+data ConsistencyLevel = ZERO|ONE|QUORUM|DCQUORUM|DCQUORUMSYNC|ALL|ANY  deriving (Show,Eq, Typeable, Ord)
 instance Enum ConsistencyLevel where
   fromEnum t = case t of
     ZERO -> 0
@@ -21,6 +21,7 @@
     DCQUORUM -> 3
     DCQUORUMSYNC -> 4
     ALL -> 5
+    ANY -> 6
   toEnum t = case t of
     0 -> ZERO
     1 -> ONE
@@ -28,6 +29,7 @@
     3 -> DCQUORUM
     4 -> DCQUORUMSYNC
     5 -> ALL
+    6 -> ANY
     _ -> throw ThriftException
 data Column = Column{f_Column_name :: Maybe String,f_Column_value :: Maybe String,f_Column_timestamp :: Maybe Int64} deriving (Show,Eq,Ord,Typeable)
 write_Column oprot rec = do
@@ -239,6 +241,64 @@
   rec <- read_TimedOutException_fields iprot (TimedOutException{})
   readStructEnd iprot
   return rec
+data AuthenticationException = AuthenticationException{f_AuthenticationException_why :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+instance Exception AuthenticationException
+write_AuthenticationException oprot rec = do
+  writeStructBegin oprot "AuthenticationException"
+  case f_AuthenticationException_why rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("why",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_AuthenticationException_fields iprot rec = do
+  (_,_t44,_id45) <- readFieldBegin iprot
+  if _t44 == T_STOP then return rec else
+    case _id45 of 
+      1 -> if _t44 == T_STRING then do
+        s <- readString iprot
+        read_AuthenticationException_fields iprot rec{f_AuthenticationException_why=Just s}
+        else do
+          skip iprot _t44
+          read_AuthenticationException_fields iprot rec
+      _ -> do
+        skip iprot _t44
+        readFieldEnd iprot
+        read_AuthenticationException_fields iprot rec
+read_AuthenticationException iprot = do
+  readStructBegin iprot
+  rec <- read_AuthenticationException_fields iprot (AuthenticationException{f_AuthenticationException_why=Nothing})
+  readStructEnd iprot
+  return rec
+data AuthorizationException = AuthorizationException{f_AuthorizationException_why :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+instance Exception AuthorizationException
+write_AuthorizationException oprot rec = do
+  writeStructBegin oprot "AuthorizationException"
+  case f_AuthorizationException_why rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("why",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_AuthorizationException_fields iprot rec = do
+  (_,_t49,_id50) <- readFieldBegin iprot
+  if _t49 == T_STOP then return rec else
+    case _id50 of 
+      1 -> if _t49 == T_STRING then do
+        s <- readString iprot
+        read_AuthorizationException_fields iprot rec{f_AuthorizationException_why=Just s}
+        else do
+          skip iprot _t49
+          read_AuthorizationException_fields iprot rec
+      _ -> do
+        skip iprot _t49
+        readFieldEnd iprot
+        read_AuthorizationException_fields iprot rec
+read_AuthorizationException iprot = do
+  readStructBegin iprot
+  rec <- read_AuthorizationException_fields iprot (AuthorizationException{f_AuthorizationException_why=Nothing})
+  readStructEnd iprot
+  return rec
 data ColumnParent = ColumnParent{f_ColumnParent_column_family :: Maybe String,f_ColumnParent_super_column :: Maybe String} deriving (Show,Eq,Ord,Typeable)
 write_ColumnParent oprot rec = do
   writeStructBegin oprot "ColumnParent"
@@ -253,23 +313,23 @@
   writeFieldStop oprot
   writeStructEnd oprot
 read_ColumnParent_fields iprot rec = do
-  (_,_t44,_id45) <- readFieldBegin iprot
-  if _t44 == T_STOP then return rec else
-    case _id45 of 
-      3 -> if _t44 == T_STRING then do
+  (_,_t54,_id55) <- readFieldBegin iprot
+  if _t54 == T_STOP then return rec else
+    case _id55 of 
+      3 -> if _t54 == T_STRING then do
         s <- readString iprot
         read_ColumnParent_fields iprot rec{f_ColumnParent_column_family=Just s}
         else do
-          skip iprot _t44
+          skip iprot _t54
           read_ColumnParent_fields iprot rec
-      4 -> if _t44 == T_STRING then do
+      4 -> if _t54 == T_STRING then do
         s <- readString iprot
         read_ColumnParent_fields iprot rec{f_ColumnParent_super_column=Just s}
         else do
-          skip iprot _t44
+          skip iprot _t54
           read_ColumnParent_fields iprot rec
       _ -> do
-        skip iprot _t44
+        skip iprot _t54
         readFieldEnd iprot
         read_ColumnParent_fields iprot rec
 read_ColumnParent iprot = do
@@ -295,29 +355,29 @@
   writeFieldStop oprot
   writeStructEnd oprot
 read_ColumnPath_fields iprot rec = do
-  (_,_t49,_id50) <- readFieldBegin iprot
-  if _t49 == T_STOP then return rec else
-    case _id50 of 
-      3 -> if _t49 == T_STRING then do
+  (_,_t59,_id60) <- readFieldBegin iprot
+  if _t59 == T_STOP then return rec else
+    case _id60 of 
+      3 -> if _t59 == T_STRING then do
         s <- readString iprot
         read_ColumnPath_fields iprot rec{f_ColumnPath_column_family=Just s}
         else do
-          skip iprot _t49
+          skip iprot _t59
           read_ColumnPath_fields iprot rec
-      4 -> if _t49 == T_STRING then do
+      4 -> if _t59 == T_STRING then do
         s <- readString iprot
         read_ColumnPath_fields iprot rec{f_ColumnPath_super_column=Just s}
         else do
-          skip iprot _t49
+          skip iprot _t59
           read_ColumnPath_fields iprot rec
-      5 -> if _t49 == T_STRING then do
+      5 -> if _t59 == T_STRING then do
         s <- readString iprot
         read_ColumnPath_fields iprot rec{f_ColumnPath_column=Just s}
         else do
-          skip iprot _t49
+          skip iprot _t59
           read_ColumnPath_fields iprot rec
       _ -> do
-        skip iprot _t49
+        skip iprot _t59
         readFieldEnd iprot
         read_ColumnPath_fields iprot rec
 read_ColumnPath iprot = do
@@ -347,35 +407,35 @@
   writeFieldStop oprot
   writeStructEnd oprot
 read_SliceRange_fields iprot rec = do
-  (_,_t54,_id55) <- readFieldBegin iprot
-  if _t54 == T_STOP then return rec else
-    case _id55 of 
-      1 -> if _t54 == T_STRING then do
+  (_,_t64,_id65) <- readFieldBegin iprot
+  if _t64 == T_STOP then return rec else
+    case _id65 of 
+      1 -> if _t64 == T_STRING then do
         s <- readString iprot
         read_SliceRange_fields iprot rec{f_SliceRange_start=Just s}
         else do
-          skip iprot _t54
+          skip iprot _t64
           read_SliceRange_fields iprot rec
-      2 -> if _t54 == T_STRING then do
+      2 -> if _t64 == T_STRING then do
         s <- readString iprot
         read_SliceRange_fields iprot rec{f_SliceRange_finish=Just s}
         else do
-          skip iprot _t54
+          skip iprot _t64
           read_SliceRange_fields iprot rec
-      3 -> if _t54 == T_BOOL then do
+      3 -> if _t64 == T_BOOL then do
         s <- readBool iprot
         read_SliceRange_fields iprot rec{f_SliceRange_reversed=Just s}
         else do
-          skip iprot _t54
+          skip iprot _t64
           read_SliceRange_fields iprot rec
-      4 -> if _t54 == T_I32 then do
+      4 -> if _t64 == T_I32 then do
         s <- readI32 iprot
         read_SliceRange_fields iprot rec{f_SliceRange_count=Just s}
         else do
-          skip iprot _t54
+          skip iprot _t64
           read_SliceRange_fields iprot rec
       _ -> do
-        skip iprot _t54
+        skip iprot _t64
         readFieldEnd iprot
         read_SliceRange_fields iprot rec
 read_SliceRange iprot = do
@@ -388,7 +448,7 @@
   writeStructBegin oprot "SlicePredicate"
   case f_SlicePredicate_column_names rec of {Nothing -> return (); Just _v -> do
     writeFieldBegin oprot ("column_names",T_LIST,1)
-    (let {f [] = return (); f (_viter58:t) = do {writeString oprot _viter58;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
+    (let {f [] = return (); f (_viter68:t) = do {writeString oprot _viter68;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
     writeFieldEnd oprot}
   case f_SlicePredicate_slice_range rec of {Nothing -> return (); Just _v -> do
     writeFieldBegin oprot ("slice_range",T_STRUCT,2)
@@ -397,23 +457,23 @@
   writeFieldStop oprot
   writeStructEnd oprot
 read_SlicePredicate_fields iprot rec = do
-  (_,_t60,_id61) <- readFieldBegin iprot
-  if _t60 == T_STOP then return rec else
-    case _id61 of 
-      1 -> if _t60 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype65,_size62) <- readListBegin iprot; f _size62})
+  (_,_t70,_id71) <- readFieldBegin iprot
+  if _t70 == T_STOP then return rec else
+    case _id71 of 
+      1 -> if _t70 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype75,_size72) <- readListBegin iprot; f _size72})
         read_SlicePredicate_fields iprot rec{f_SlicePredicate_column_names=Just s}
         else do
-          skip iprot _t60
+          skip iprot _t70
           read_SlicePredicate_fields iprot rec
-      2 -> if _t60 == T_STRUCT then do
+      2 -> if _t70 == T_STRUCT then do
         s <- (read_SliceRange iprot)
         read_SlicePredicate_fields iprot rec{f_SlicePredicate_slice_range=Just s}
         else do
-          skip iprot _t60
+          skip iprot _t70
           read_SlicePredicate_fields iprot rec
       _ -> do
-        skip iprot _t60
+        skip iprot _t70
         readFieldEnd iprot
         read_SlicePredicate_fields iprot rec
 read_SlicePredicate iprot = do
@@ -421,6 +481,74 @@
   rec <- read_SlicePredicate_fields iprot (SlicePredicate{f_SlicePredicate_column_names=Nothing,f_SlicePredicate_slice_range=Nothing})
   readStructEnd iprot
   return rec
+data KeyRange = KeyRange{f_KeyRange_start_key :: Maybe String,f_KeyRange_end_key :: Maybe String,f_KeyRange_start_token :: Maybe String,f_KeyRange_end_token :: Maybe String,f_KeyRange_count :: Maybe Int} deriving (Show,Eq,Ord,Typeable)
+write_KeyRange oprot rec = do
+  writeStructBegin oprot "KeyRange"
+  case f_KeyRange_start_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_key",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_KeyRange_end_key rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("end_key",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_KeyRange_start_token rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_token",T_STRING,3)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_KeyRange_end_token rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("end_token",T_STRING,4)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_KeyRange_count rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("count",T_I32,5)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_KeyRange_fields iprot rec = do
+  (_,_t80,_id81) <- readFieldBegin iprot
+  if _t80 == T_STOP then return rec else
+    case _id81 of 
+      1 -> if _t80 == T_STRING then do
+        s <- readString iprot
+        read_KeyRange_fields iprot rec{f_KeyRange_start_key=Just s}
+        else do
+          skip iprot _t80
+          read_KeyRange_fields iprot rec
+      2 -> if _t80 == T_STRING then do
+        s <- readString iprot
+        read_KeyRange_fields iprot rec{f_KeyRange_end_key=Just s}
+        else do
+          skip iprot _t80
+          read_KeyRange_fields iprot rec
+      3 -> if _t80 == T_STRING then do
+        s <- readString iprot
+        read_KeyRange_fields iprot rec{f_KeyRange_start_token=Just s}
+        else do
+          skip iprot _t80
+          read_KeyRange_fields iprot rec
+      4 -> if _t80 == T_STRING then do
+        s <- readString iprot
+        read_KeyRange_fields iprot rec{f_KeyRange_end_token=Just s}
+        else do
+          skip iprot _t80
+          read_KeyRange_fields iprot rec
+      5 -> if _t80 == T_I32 then do
+        s <- readI32 iprot
+        read_KeyRange_fields iprot rec{f_KeyRange_count=Just s}
+        else do
+          skip iprot _t80
+          read_KeyRange_fields iprot rec
+      _ -> do
+        skip iprot _t80
+        readFieldEnd iprot
+        read_KeyRange_fields iprot rec
+read_KeyRange iprot = do
+  readStructBegin iprot
+  rec <- read_KeyRange_fields iprot (KeyRange{f_KeyRange_start_key=Nothing,f_KeyRange_end_key=Nothing,f_KeyRange_start_token=Nothing,f_KeyRange_end_token=Nothing,f_KeyRange_count=Nothing})
+  readStructEnd iprot
+  return rec
 data KeySlice = KeySlice{f_KeySlice_key :: Maybe String,f_KeySlice_columns :: Maybe [ColumnOrSuperColumn]} deriving (Show,Eq,Ord,Typeable)
 write_KeySlice oprot rec = do
   writeStructBegin oprot "KeySlice"
@@ -430,32 +558,194 @@
     writeFieldEnd oprot}
   case f_KeySlice_columns rec of {Nothing -> return (); Just _v -> do
     writeFieldBegin oprot ("columns",T_LIST,2)
-    (let {f [] = return (); f (_viter69:t) = do {write_ColumnOrSuperColumn oprot _viter69;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
+    (let {f [] = return (); f (_viter84:t) = do {write_ColumnOrSuperColumn oprot _viter84;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
     writeFieldEnd oprot}
   writeFieldStop oprot
   writeStructEnd oprot
 read_KeySlice_fields iprot rec = do
-  (_,_t71,_id72) <- readFieldBegin iprot
-  if _t71 == T_STOP then return rec else
-    case _id72 of 
-      1 -> if _t71 == T_STRING then do
+  (_,_t86,_id87) <- readFieldBegin iprot
+  if _t86 == T_STOP then return rec else
+    case _id87 of 
+      1 -> if _t86 == T_STRING then do
         s <- readString iprot
         read_KeySlice_fields iprot rec{f_KeySlice_key=Just s}
         else do
-          skip iprot _t71
+          skip iprot _t86
           read_KeySlice_fields iprot rec
-      2 -> if _t71 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype76,_size73) <- readListBegin iprot; f _size73})
+      2 -> if _t86 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype91,_size88) <- readListBegin iprot; f _size88})
         read_KeySlice_fields iprot rec{f_KeySlice_columns=Just s}
         else do
-          skip iprot _t71
+          skip iprot _t86
           read_KeySlice_fields iprot rec
       _ -> do
-        skip iprot _t71
+        skip iprot _t86
         readFieldEnd iprot
         read_KeySlice_fields iprot rec
 read_KeySlice iprot = do
   readStructBegin iprot
   rec <- read_KeySlice_fields iprot (KeySlice{f_KeySlice_key=Nothing,f_KeySlice_columns=Nothing})
+  readStructEnd iprot
+  return rec
+data Deletion = Deletion{f_Deletion_timestamp :: Maybe Int64,f_Deletion_super_column :: Maybe String,f_Deletion_predicate :: Maybe SlicePredicate} deriving (Show,Eq,Ord,Typeable)
+write_Deletion oprot rec = do
+  writeStructBegin oprot "Deletion"
+  case f_Deletion_timestamp rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("timestamp",T_I64,1)
+    writeI64 oprot _v
+    writeFieldEnd oprot}
+  case f_Deletion_super_column rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("super_column",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Deletion_predicate rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,3)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Deletion_fields iprot rec = do
+  (_,_t96,_id97) <- readFieldBegin iprot
+  if _t96 == T_STOP then return rec else
+    case _id97 of 
+      1 -> if _t96 == T_I64 then do
+        s <- readI64 iprot
+        read_Deletion_fields iprot rec{f_Deletion_timestamp=Just s}
+        else do
+          skip iprot _t96
+          read_Deletion_fields iprot rec
+      2 -> if _t96 == T_STRING then do
+        s <- readString iprot
+        read_Deletion_fields iprot rec{f_Deletion_super_column=Just s}
+        else do
+          skip iprot _t96
+          read_Deletion_fields iprot rec
+      3 -> if _t96 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Deletion_fields iprot rec{f_Deletion_predicate=Just s}
+        else do
+          skip iprot _t96
+          read_Deletion_fields iprot rec
+      _ -> do
+        skip iprot _t96
+        readFieldEnd iprot
+        read_Deletion_fields iprot rec
+read_Deletion iprot = do
+  readStructBegin iprot
+  rec <- read_Deletion_fields iprot (Deletion{f_Deletion_timestamp=Nothing,f_Deletion_super_column=Nothing,f_Deletion_predicate=Nothing})
+  readStructEnd iprot
+  return rec
+data Mutation = Mutation{f_Mutation_column_or_supercolumn :: Maybe ColumnOrSuperColumn,f_Mutation_deletion :: Maybe Deletion} deriving (Show,Eq,Ord,Typeable)
+write_Mutation oprot rec = do
+  writeStructBegin oprot "Mutation"
+  case f_Mutation_column_or_supercolumn rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_or_supercolumn",T_STRUCT,1)
+    write_ColumnOrSuperColumn oprot _v
+    writeFieldEnd oprot}
+  case f_Mutation_deletion rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("deletion",T_STRUCT,2)
+    write_Deletion oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Mutation_fields iprot rec = do
+  (_,_t101,_id102) <- readFieldBegin iprot
+  if _t101 == T_STOP then return rec else
+    case _id102 of 
+      1 -> if _t101 == T_STRUCT then do
+        s <- (read_ColumnOrSuperColumn iprot)
+        read_Mutation_fields iprot rec{f_Mutation_column_or_supercolumn=Just s}
+        else do
+          skip iprot _t101
+          read_Mutation_fields iprot rec
+      2 -> if _t101 == T_STRUCT then do
+        s <- (read_Deletion iprot)
+        read_Mutation_fields iprot rec{f_Mutation_deletion=Just s}
+        else do
+          skip iprot _t101
+          read_Mutation_fields iprot rec
+      _ -> do
+        skip iprot _t101
+        readFieldEnd iprot
+        read_Mutation_fields iprot rec
+read_Mutation iprot = do
+  readStructBegin iprot
+  rec <- read_Mutation_fields iprot (Mutation{f_Mutation_column_or_supercolumn=Nothing,f_Mutation_deletion=Nothing})
+  readStructEnd iprot
+  return rec
+data TokenRange = TokenRange{f_TokenRange_start_token :: Maybe String,f_TokenRange_end_token :: Maybe String,f_TokenRange_endpoints :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
+write_TokenRange oprot rec = do
+  writeStructBegin oprot "TokenRange"
+  case f_TokenRange_start_token rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_token",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_TokenRange_end_token rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("end_token",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_TokenRange_endpoints rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("endpoints",T_LIST,3)
+    (let {f [] = return (); f (_viter105:t) = do {writeString oprot _viter105;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_TokenRange_fields iprot rec = do
+  (_,_t107,_id108) <- readFieldBegin iprot
+  if _t107 == T_STOP then return rec else
+    case _id108 of 
+      1 -> if _t107 == T_STRING then do
+        s <- readString iprot
+        read_TokenRange_fields iprot rec{f_TokenRange_start_token=Just s}
+        else do
+          skip iprot _t107
+          read_TokenRange_fields iprot rec
+      2 -> if _t107 == T_STRING then do
+        s <- readString iprot
+        read_TokenRange_fields iprot rec{f_TokenRange_end_token=Just s}
+        else do
+          skip iprot _t107
+          read_TokenRange_fields iprot rec
+      3 -> if _t107 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype112,_size109) <- readListBegin iprot; f _size109})
+        read_TokenRange_fields iprot rec{f_TokenRange_endpoints=Just s}
+        else do
+          skip iprot _t107
+          read_TokenRange_fields iprot rec
+      _ -> do
+        skip iprot _t107
+        readFieldEnd iprot
+        read_TokenRange_fields iprot rec
+read_TokenRange iprot = do
+  readStructBegin iprot
+  rec <- read_TokenRange_fields iprot (TokenRange{f_TokenRange_start_token=Nothing,f_TokenRange_end_token=Nothing,f_TokenRange_endpoints=Nothing})
+  readStructEnd iprot
+  return rec
+data AuthenticationRequest = AuthenticationRequest{f_AuthenticationRequest_credentials :: Maybe (Map.Map String String)} deriving (Show,Eq,Ord,Typeable)
+write_AuthenticationRequest oprot rec = do
+  writeStructBegin oprot "AuthenticationRequest"
+  case f_AuthenticationRequest_credentials rec of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("credentials",T_MAP,1)
+    (let {f [] = return (); f ((_kiter116,_viter117):t) = do {do {writeString oprot _kiter116;writeString oprot _viter117};f t}} in do {writeMapBegin oprot (T_STRING,T_STRING,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_AuthenticationRequest_fields iprot rec = do
+  (_,_t119,_id120) <- readFieldBegin iprot
+  if _t119 == T_STOP then return rec else
+    case _id120 of 
+      1 -> if _t119 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- readString iprot;r <- f (n-1); return $ (k,v):r}} in do {(_ktype122,_vtype123,_size121) <- readMapBegin iprot; l <- f _size121; return $ Map.fromList l})
+        read_AuthenticationRequest_fields iprot rec{f_AuthenticationRequest_credentials=Just s}
+        else do
+          skip iprot _t119
+          read_AuthenticationRequest_fields iprot rec
+      _ -> do
+        skip iprot _t119
+        readFieldEnd iprot
+        read_AuthenticationRequest_fields iprot rec
+read_AuthenticationRequest iprot = do
+  readStructBegin iprot
+  rec <- read_AuthenticationRequest_fields iprot (AuthenticationRequest{f_AuthenticationRequest_credentials=Nothing})
   readStructEnd iprot
   return rec
diff --git a/cassandra-thrift.cabal b/cassandra-thrift.cabal
--- a/cassandra-thrift.cabal
+++ b/cassandra-thrift.cabal
@@ -1,5 +1,5 @@
 name: cassandra-thrift 
-version: 0.0.1
+version: 0.0.2
 license: OtherLicense 
 cabal-version: >= 1.4
 author: Thrift v.0.2.0 
@@ -7,7 +7,7 @@
 stability: alpha
 synopsis: thrift bindings to the cassandra database 
 description:
-  The Cassandra (v.0.5.1) database bindings, generated using the Thrift (v.0.2) compliler, Released under the Apache 2.0 license. 
+  The Cassandra (v.0.6.2) database bindings, generated using the Thrift (v.0.2) compliler, Released under the Apache 2.0 license. 
     
 category: Database 
 build-type: Simple
