From b77078dd59429275f41787f7ff2b1e977d0ec1b5 Mon Sep 17 00:00:00 2001
From: Marco De Marco <demarco@oats.inaf.it>
Date: Thu, 9 Jan 2014 17:15:55 +0100
Subject: [PATCH] Protocol buffer changed

---
 proto/Request.proto  |   45 +-
 proto/Response.proto |   73 +-
 src/Request.pb.cc    | 1304 +++++++----------------------------
 src/Request.pb.h     |  690 +++----------------
 src/Response.pb.cc   | 1561 +++++++-----------------------------------
 src/Response.pb.h    |  989 +++-----------------------
 6 files changed, 718 insertions(+), 3944 deletions(-)

diff --git a/proto/Request.proto b/proto/Request.proto
index 5f308df..1fc3f5e 100644
--- a/proto/Request.proto
+++ b/proto/Request.proto
@@ -2,45 +2,12 @@ package DataExporter_ns;
 
 message Request
 {
-	//Request type descriptor
+	required string username = 1;
+	required string password = 2;
 
-	enum Type
-	{
-		AUTHORIZATION = 0;
-		VALIDATION = 1;
-		TRANSFER = 2;
-		KEEPALIVE = 3;
-	}
+	required string schema = 3;
+	required string table = 4;
 
-	required Type type = 1;
-
-	//Authorization request
-
-	message Authorization
-	{
-		required string username = 1;
-		required string password = 2;
-	}
-
-	optional Authorization authorization = 2;
-
-	//Validation request
-
-	message Validation
-	{
-		required string schema = 1;
-		required string table = 2;
-	}
-
-	optional Validation validation = 3;
-
-	//Transfer request
-	
-	message Transfer 
-	{
-		required int32 file_version = 1;
-		required string file_name = 2;
-	}
-
-	optional Transfer transfer = 4;
+	required int32 file_version = 5;
+	required string file_name = 6;
 }
diff --git a/proto/Response.proto b/proto/Response.proto
index 2d86962..cce3178 100644
--- a/proto/Response.proto
+++ b/proto/Response.proto
@@ -2,68 +2,17 @@ package DataExporter_ns;
 
 message Response
 {
-	//Response type descriptor
-
-	enum Type
-	{
-		AUTHORIZATION = 0;
-		VALIDATION = 1;
-		TRANSFER = 2;
-		KEEPALIVE = 3;
-	}
-
-	required Type type = 1;
-
-	//Authorization response
-
-	message Authorization
-	{
-		enum State
-		{
-			ACCEPTED = 0;
-			REJECTED = 1;
-		}
-		
-		required State state = 1;
-		required string status = 2;
-	}
-
-	optional Authorization authorization = 2;
-
-	//Validation response
-
-	message Validation
+	enum State
 	{
-		enum State
-		{
-			ACCEPTED = 0;
-			REJECTED = 1;
-		}
-		
-		required State state = 1;
-		required string status = 2;
+		ACCEPTED = 0;
+		REJECTED = 1;
 	}
-
-	optional Validation validation = 3;
-
-	//Transfer response
-
-	message Transfer 
-	{
-		enum State
-		{
-			ACCEPTED = 0;
-			REJECTED = 1;
-		}
-		
-		required State state = 1;
-		required string status = 2;
-
-		optional string file_path = 3;
-		optional int32 file_version = 4;
-		optional string file_name = 5;
-		optional uint64 size = 6;
-	}
-
-	optional Transfer transfer = 4;
+	
+	required State state = 1;
+	required string status = 2;
+
+	optional string file_path = 3;
+	optional int32 file_version = 4;
+	optional string file_name = 5;
+	optional uint64 size = 6;
 }
diff --git a/src/Request.pb.cc b/src/Request.pb.cc
index acfa300..74cfa0b 100644
--- a/src/Request.pb.cc
+++ b/src/Request.pb.cc
@@ -23,16 +23,6 @@ namespace {
 const ::google::protobuf::Descriptor* Request_descriptor_ = NULL;
 const ::google::protobuf::internal::GeneratedMessageReflection*
   Request_reflection_ = NULL;
-const ::google::protobuf::Descriptor* Request_Authorization_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  Request_Authorization_reflection_ = NULL;
-const ::google::protobuf::Descriptor* Request_Validation_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  Request_Validation_reflection_ = NULL;
-const ::google::protobuf::Descriptor* Request_Transfer_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  Request_Transfer_reflection_ = NULL;
-const ::google::protobuf::EnumDescriptor* Request_Type_descriptor_ = NULL;
 
 }  // namespace
 
@@ -44,11 +34,13 @@ void protobuf_AssignDesc_Request_2eproto() {
       "Request.proto");
   GOOGLE_CHECK(file != NULL);
   Request_descriptor_ = file->message_type(0);
-  static const int Request_offsets_[4] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, type_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, authorization_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, validation_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, transfer_),
+  static const int Request_offsets_[6] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, username_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, password_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, schema_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, table_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, file_version_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request, file_name_),
   };
   Request_reflection_ =
     new ::google::protobuf::internal::GeneratedMessageReflection(
@@ -61,55 +53,6 @@ void protobuf_AssignDesc_Request_2eproto() {
       ::google::protobuf::DescriptorPool::generated_pool(),
       ::google::protobuf::MessageFactory::generated_factory(),
       sizeof(Request));
-  Request_Authorization_descriptor_ = Request_descriptor_->nested_type(0);
-  static const int Request_Authorization_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Authorization, username_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Authorization, password_),
-  };
-  Request_Authorization_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      Request_Authorization_descriptor_,
-      Request_Authorization::default_instance_,
-      Request_Authorization_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Authorization, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Authorization, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(Request_Authorization));
-  Request_Validation_descriptor_ = Request_descriptor_->nested_type(1);
-  static const int Request_Validation_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Validation, schema_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Validation, table_),
-  };
-  Request_Validation_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      Request_Validation_descriptor_,
-      Request_Validation::default_instance_,
-      Request_Validation_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Validation, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Validation, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(Request_Validation));
-  Request_Transfer_descriptor_ = Request_descriptor_->nested_type(2);
-  static const int Request_Transfer_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Transfer, file_version_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Transfer, file_name_),
-  };
-  Request_Transfer_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      Request_Transfer_descriptor_,
-      Request_Transfer::default_instance_,
-      Request_Transfer_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Transfer, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Request_Transfer, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(Request_Transfer));
-  Request_Type_descriptor_ = Request_descriptor_->enum_type(0);
 }
 
 namespace {
@@ -124,12 +67,6 @@ void protobuf_RegisterTypes(const ::std::string&) {
   protobuf_AssignDescriptorsOnce();
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
     Request_descriptor_, &Request::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    Request_Authorization_descriptor_, &Request_Authorization::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    Request_Validation_descriptor_, &Request_Validation::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    Request_Transfer_descriptor_, &Request_Transfer::default_instance());
 }
 
 }  // namespace
@@ -137,12 +74,6 @@ void protobuf_RegisterTypes(const ::std::string&) {
 void protobuf_ShutdownFile_Request_2eproto() {
   delete Request::default_instance_;
   delete Request_reflection_;
-  delete Request_Authorization::default_instance_;
-  delete Request_Authorization_reflection_;
-  delete Request_Validation::default_instance_;
-  delete Request_Validation_reflection_;
-  delete Request_Transfer::default_instance_;
-  delete Request_Transfer_reflection_;
 }
 
 void protobuf_AddDesc_Request_2eproto() {
@@ -152,29 +83,14 @@ void protobuf_AddDesc_Request_2eproto() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-    "\n\rRequest.proto\022\017DataExporter_ns\"\302\003\n\007Req"
-    "uest\022+\n\004type\030\001 \002(\0162\035.DataExporter_ns.Req"
-    "uest.Type\022=\n\rauthorization\030\002 \001(\0132&.DataE"
-    "xporter_ns.Request.Authorization\0227\n\nvali"
-    "dation\030\003 \001(\0132#.DataExporter_ns.Request.V"
-    "alidation\0223\n\010transfer\030\004 \001(\0132!.DataExport"
-    "er_ns.Request.Transfer\0323\n\rAuthorization\022"
-    "\020\n\010username\030\001 \002(\t\022\020\n\010password\030\002 \002(\t\032+\n\nV"
-    "alidation\022\016\n\006schema\030\001 \002(\t\022\r\n\005table\030\002 \002(\t"
-    "\0323\n\010Transfer\022\024\n\014file_version\030\001 \002(\005\022\021\n\tfi"
-    "le_name\030\002 \002(\t\"F\n\004Type\022\021\n\rAUTHORIZATION\020\000"
-    "\022\016\n\nVALIDATION\020\001\022\014\n\010TRANSFER\020\002\022\r\n\tKEEPAL"
-    "IVE\020\003", 485);
+    "\n\rRequest.proto\022\017DataExporter_ns\"u\n\007Requ"
+    "est\022\020\n\010username\030\001 \002(\t\022\020\n\010password\030\002 \002(\t\022"
+    "\016\n\006schema\030\003 \002(\t\022\r\n\005table\030\004 \002(\t\022\024\n\014file_v"
+    "ersion\030\005 \002(\005\022\021\n\tfile_name\030\006 \002(\t", 151);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "Request.proto", &protobuf_RegisterTypes);
   Request::default_instance_ = new Request();
-  Request_Authorization::default_instance_ = new Request_Authorization();
-  Request_Validation::default_instance_ = new Request_Validation();
-  Request_Transfer::default_instance_ = new Request_Transfer();
   Request::default_instance_->InitAsDefaultInstance();
-  Request_Authorization::default_instance_->InitAsDefaultInstance();
-  Request_Validation::default_instance_->InitAsDefaultInstance();
-  Request_Transfer::default_instance_->InitAsDefaultInstance();
   ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_Request_2eproto);
 }
 
@@ -187,94 +103,86 @@ struct StaticDescriptorInitializer_Request_2eproto {
 
 // ===================================================================
 
-const ::google::protobuf::EnumDescriptor* Request_Type_descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Request_Type_descriptor_;
-}
-bool Request_Type_IsValid(int value) {
-  switch(value) {
-    case 0:
-    case 1:
-    case 2:
-    case 3:
-      return true;
-    default:
-      return false;
-  }
-}
-
 #ifndef _MSC_VER
-const Request_Type Request::AUTHORIZATION;
-const Request_Type Request::VALIDATION;
-const Request_Type Request::TRANSFER;
-const Request_Type Request::KEEPALIVE;
-const Request_Type Request::Type_MIN;
-const Request_Type Request::Type_MAX;
-const int Request::Type_ARRAYSIZE;
-#endif  // _MSC_VER
-#ifndef _MSC_VER
-const int Request_Authorization::kUsernameFieldNumber;
-const int Request_Authorization::kPasswordFieldNumber;
+const int Request::kUsernameFieldNumber;
+const int Request::kPasswordFieldNumber;
+const int Request::kSchemaFieldNumber;
+const int Request::kTableFieldNumber;
+const int Request::kFileVersionFieldNumber;
+const int Request::kFileNameFieldNumber;
 #endif  // !_MSC_VER
 
-Request_Authorization::Request_Authorization()
+Request::Request()
   : ::google::protobuf::Message() {
   SharedCtor();
 }
 
-void Request_Authorization::InitAsDefaultInstance() {
+void Request::InitAsDefaultInstance() {
 }
 
-Request_Authorization::Request_Authorization(const Request_Authorization& from)
+Request::Request(const Request& from)
   : ::google::protobuf::Message() {
   SharedCtor();
   MergeFrom(from);
 }
 
-void Request_Authorization::SharedCtor() {
+void Request::SharedCtor() {
   _cached_size_ = 0;
   username_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   password_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  schema_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  table_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  file_version_ = 0;
+  file_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   ::memset(_has_bits_, 0, sizeof(_has_bits_));
 }
 
-Request_Authorization::~Request_Authorization() {
+Request::~Request() {
   SharedDtor();
 }
 
-void Request_Authorization::SharedDtor() {
+void Request::SharedDtor() {
   if (username_ != &::google::protobuf::internal::kEmptyString) {
     delete username_;
   }
   if (password_ != &::google::protobuf::internal::kEmptyString) {
     delete password_;
   }
+  if (schema_ != &::google::protobuf::internal::kEmptyString) {
+    delete schema_;
+  }
+  if (table_ != &::google::protobuf::internal::kEmptyString) {
+    delete table_;
+  }
+  if (file_name_ != &::google::protobuf::internal::kEmptyString) {
+    delete file_name_;
+  }
   if (this != default_instance_) {
   }
 }
 
-void Request_Authorization::SetCachedSize(int size) const {
+void Request::SetCachedSize(int size) const {
   GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
   _cached_size_ = size;
   GOOGLE_SAFE_CONCURRENT_WRITES_END();
 }
-const ::google::protobuf::Descriptor* Request_Authorization::descriptor() {
+const ::google::protobuf::Descriptor* Request::descriptor() {
   protobuf_AssignDescriptorsOnce();
-  return Request_Authorization_descriptor_;
+  return Request_descriptor_;
 }
 
-const Request_Authorization& Request_Authorization::default_instance() {
+const Request& Request::default_instance() {
   if (default_instance_ == NULL) protobuf_AddDesc_Request_2eproto();
   return *default_instance_;
 }
 
-Request_Authorization* Request_Authorization::default_instance_ = NULL;
+Request* Request::default_instance_ = NULL;
 
-Request_Authorization* Request_Authorization::New() const {
-  return new Request_Authorization;
+Request* Request::New() const {
+  return new Request;
 }
 
-void Request_Authorization::Clear() {
+void Request::Clear() {
   if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
     if (has_username()) {
       if (username_ != &::google::protobuf::internal::kEmptyString) {
@@ -286,12 +194,28 @@ void Request_Authorization::Clear() {
         password_->clear();
       }
     }
+    if (has_schema()) {
+      if (schema_ != &::google::protobuf::internal::kEmptyString) {
+        schema_->clear();
+      }
+    }
+    if (has_table()) {
+      if (table_ != &::google::protobuf::internal::kEmptyString) {
+        table_->clear();
+      }
+    }
+    file_version_ = 0;
+    if (has_file_name()) {
+      if (file_name_ != &::google::protobuf::internal::kEmptyString) {
+        file_name_->clear();
+      }
+    }
   }
   ::memset(_has_bits_, 0, sizeof(_has_bits_));
   mutable_unknown_fields()->Clear();
 }
 
-bool Request_Authorization::MergePartialFromCodedStream(
+bool Request::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
 #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
   ::google::protobuf::uint32 tag;
@@ -326,6 +250,73 @@ bool Request_Authorization::MergePartialFromCodedStream(
         } else {
           goto handle_uninterpreted;
         }
+        if (input->ExpectTag(26)) goto parse_schema;
+        break;
+      }
+
+      // required string schema = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_schema:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_schema()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->schema().data(), this->schema().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(34)) goto parse_table;
+        break;
+      }
+
+      // required string table = 4;
+      case 4: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_table:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_table()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->table().data(), this->table().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(40)) goto parse_file_version;
+        break;
+      }
+
+      // required int32 file_version = 5;
+      case 5: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_file_version:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &file_version_)));
+          set_has_file_version();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(50)) goto parse_file_name;
+        break;
+      }
+
+      // required string file_name = 6;
+      case 6: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_file_name:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_file_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->file_name().data(), this->file_name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
         if (input->ExpectAtEnd()) return true;
         break;
       }
@@ -346,7 +337,7 @@ bool Request_Authorization::MergePartialFromCodedStream(
 #undef DO_
 }
 
-void Request_Authorization::SerializeWithCachedSizes(
+void Request::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
   // required string username = 1;
   if (has_username()) {
@@ -366,13 +357,45 @@ void Request_Authorization::SerializeWithCachedSizes(
       2, this->password(), output);
   }
 
+  // required string schema = 3;
+  if (has_schema()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->schema().data(), this->schema().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      3, this->schema(), output);
+  }
+
+  // required string table = 4;
+  if (has_table()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->table().data(), this->table().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      4, this->table(), output);
+  }
+
+  // required int32 file_version = 5;
+  if (has_file_version()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->file_version(), output);
+  }
+
+  // required string file_name = 6;
+  if (has_file_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->file_name().data(), this->file_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      6, this->file_name(), output);
+  }
+
   if (!unknown_fields().empty()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         unknown_fields(), output);
   }
 }
 
-::google::protobuf::uint8* Request_Authorization::SerializeWithCachedSizesToArray(
+::google::protobuf::uint8* Request::SerializeWithCachedSizesToArray(
     ::google::protobuf::uint8* target) const {
   // required string username = 1;
   if (has_username()) {
@@ -394,6 +417,41 @@ void Request_Authorization::SerializeWithCachedSizes(
         2, this->password(), target);
   }
 
+  // required string schema = 3;
+  if (has_schema()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->schema().data(), this->schema().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->schema(), target);
+  }
+
+  // required string table = 4;
+  if (has_table()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->table().data(), this->table().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        4, this->table(), target);
+  }
+
+  // required int32 file_version = 5;
+  if (has_file_version()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->file_version(), target);
+  }
+
+  // required string file_name = 6;
+  if (has_file_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->file_name().data(), this->file_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        6, this->file_name(), target);
+  }
+
   if (!unknown_fields().empty()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         unknown_fields(), target);
@@ -401,7 +459,7 @@ void Request_Authorization::SerializeWithCachedSizes(
   return target;
 }
 
-int Request_Authorization::ByteSize() const {
+int Request::ByteSize() const {
   int total_size = 0;
 
   if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
@@ -419,6 +477,34 @@ int Request_Authorization::ByteSize() const {
           this->password());
     }
 
+    // required string schema = 3;
+    if (has_schema()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->schema());
+    }
+
+    // required string table = 4;
+    if (has_table()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->table());
+    }
+
+    // required int32 file_version = 5;
+    if (has_file_version()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->file_version());
+    }
+
+    // required string file_name = 6;
+    if (has_file_name()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->file_name());
+    }
+
   }
   if (!unknown_fields().empty()) {
     total_size +=
@@ -431,10 +517,10 @@ int Request_Authorization::ByteSize() const {
   return total_size;
 }
 
-void Request_Authorization::MergeFrom(const ::google::protobuf::Message& from) {
+void Request::MergeFrom(const ::google::protobuf::Message& from) {
   GOOGLE_CHECK_NE(&from, this);
-  const Request_Authorization* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const Request_Authorization*>(
+  const Request* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const Request*>(
       &from);
   if (source == NULL) {
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
@@ -443,7 +529,7 @@ void Request_Authorization::MergeFrom(const ::google::protobuf::Message& from) {
   }
 }
 
-void Request_Authorization::MergeFrom(const Request_Authorization& from) {
+void Request::MergeFrom(const Request& from) {
   GOOGLE_CHECK_NE(&from, this);
   if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
     if (from.has_username()) {
@@ -452,579 +538,46 @@ void Request_Authorization::MergeFrom(const Request_Authorization& from) {
     if (from.has_password()) {
       set_password(from.password());
     }
+    if (from.has_schema()) {
+      set_schema(from.schema());
+    }
+    if (from.has_table()) {
+      set_table(from.table());
+    }
+    if (from.has_file_version()) {
+      set_file_version(from.file_version());
+    }
+    if (from.has_file_name()) {
+      set_file_name(from.file_name());
+    }
   }
   mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
-void Request_Authorization::CopyFrom(const ::google::protobuf::Message& from) {
+void Request::CopyFrom(const ::google::protobuf::Message& from) {
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-void Request_Authorization::CopyFrom(const Request_Authorization& from) {
+void Request::CopyFrom(const Request& from) {
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool Request_Authorization::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
+bool Request::IsInitialized() const {
+  if ((_has_bits_[0] & 0x0000003f) != 0x0000003f) return false;
 
   return true;
 }
 
-void Request_Authorization::Swap(Request_Authorization* other) {
+void Request::Swap(Request* other) {
   if (other != this) {
     std::swap(username_, other->username_);
     std::swap(password_, other->password_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata Request_Authorization::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = Request_Authorization_descriptor_;
-  metadata.reflection = Request_Authorization_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-#ifndef _MSC_VER
-const int Request_Validation::kSchemaFieldNumber;
-const int Request_Validation::kTableFieldNumber;
-#endif  // !_MSC_VER
-
-Request_Validation::Request_Validation()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void Request_Validation::InitAsDefaultInstance() {
-}
-
-Request_Validation::Request_Validation(const Request_Validation& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void Request_Validation::SharedCtor() {
-  _cached_size_ = 0;
-  schema_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  table_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-Request_Validation::~Request_Validation() {
-  SharedDtor();
-}
-
-void Request_Validation::SharedDtor() {
-  if (schema_ != &::google::protobuf::internal::kEmptyString) {
-    delete schema_;
-  }
-  if (table_ != &::google::protobuf::internal::kEmptyString) {
-    delete table_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void Request_Validation::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* Request_Validation::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Request_Validation_descriptor_;
-}
-
-const Request_Validation& Request_Validation::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_Request_2eproto();
-  return *default_instance_;
-}
-
-Request_Validation* Request_Validation::default_instance_ = NULL;
-
-Request_Validation* Request_Validation::New() const {
-  return new Request_Validation;
-}
-
-void Request_Validation::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_schema()) {
-      if (schema_ != &::google::protobuf::internal::kEmptyString) {
-        schema_->clear();
-      }
-    }
-    if (has_table()) {
-      if (table_ != &::google::protobuf::internal::kEmptyString) {
-        table_->clear();
-      }
-    }
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool Request_Validation::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string schema = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_schema()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->schema().data(), this->schema().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_table;
-        break;
-      }
-
-      // required string table = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_table:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_table()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->table().data(), this->table().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void Request_Validation::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string schema = 1;
-  if (has_schema()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->schema().data(), this->schema().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->schema(), output);
-  }
-
-  // required string table = 2;
-  if (has_table()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->table().data(), this->table().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      2, this->table(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* Request_Validation::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string schema = 1;
-  if (has_schema()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->schema().data(), this->schema().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->schema(), target);
-  }
-
-  // required string table = 2;
-  if (has_table()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->table().data(), this->table().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        2, this->table(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int Request_Validation::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string schema = 1;
-    if (has_schema()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->schema());
-    }
-
-    // required string table = 2;
-    if (has_table()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->table());
-    }
-
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void Request_Validation::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const Request_Validation* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const Request_Validation*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void Request_Validation::MergeFrom(const Request_Validation& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_schema()) {
-      set_schema(from.schema());
-    }
-    if (from.has_table()) {
-      set_table(from.table());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void Request_Validation::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void Request_Validation::CopyFrom(const Request_Validation& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool Request_Validation::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
-
-  return true;
-}
-
-void Request_Validation::Swap(Request_Validation* other) {
-  if (other != this) {
-    std::swap(schema_, other->schema_);
-    std::swap(table_, other->table_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata Request_Validation::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = Request_Validation_descriptor_;
-  metadata.reflection = Request_Validation_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-#ifndef _MSC_VER
-const int Request_Transfer::kFileVersionFieldNumber;
-const int Request_Transfer::kFileNameFieldNumber;
-#endif  // !_MSC_VER
-
-Request_Transfer::Request_Transfer()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void Request_Transfer::InitAsDefaultInstance() {
-}
-
-Request_Transfer::Request_Transfer(const Request_Transfer& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void Request_Transfer::SharedCtor() {
-  _cached_size_ = 0;
-  file_version_ = 0;
-  file_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-Request_Transfer::~Request_Transfer() {
-  SharedDtor();
-}
-
-void Request_Transfer::SharedDtor() {
-  if (file_name_ != &::google::protobuf::internal::kEmptyString) {
-    delete file_name_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void Request_Transfer::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* Request_Transfer::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Request_Transfer_descriptor_;
-}
-
-const Request_Transfer& Request_Transfer::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_Request_2eproto();
-  return *default_instance_;
-}
-
-Request_Transfer* Request_Transfer::default_instance_ = NULL;
-
-Request_Transfer* Request_Transfer::New() const {
-  return new Request_Transfer;
-}
-
-void Request_Transfer::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    file_version_ = 0;
-    if (has_file_name()) {
-      if (file_name_ != &::google::protobuf::internal::kEmptyString) {
-        file_name_->clear();
-      }
-    }
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool Request_Transfer::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required int32 file_version = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &file_version_)));
-          set_has_file_version();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_file_name;
-        break;
-      }
-
-      // required string file_name = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_file_name:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_file_name()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->file_name().data(), this->file_name().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void Request_Transfer::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required int32 file_version = 1;
-  if (has_file_version()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->file_version(), output);
-  }
-
-  // required string file_name = 2;
-  if (has_file_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->file_name().data(), this->file_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      2, this->file_name(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* Request_Transfer::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required int32 file_version = 1;
-  if (has_file_version()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->file_version(), target);
-  }
-
-  // required string file_name = 2;
-  if (has_file_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->file_name().data(), this->file_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        2, this->file_name(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int Request_Transfer::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required int32 file_version = 1;
-    if (has_file_version()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->file_version());
-    }
-
-    // required string file_name = 2;
-    if (has_file_name()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->file_name());
-    }
-
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void Request_Transfer::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const Request_Transfer* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const Request_Transfer*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void Request_Transfer::MergeFrom(const Request_Transfer& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_file_version()) {
-      set_file_version(from.file_version());
-    }
-    if (from.has_file_name()) {
-      set_file_name(from.file_name());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void Request_Transfer::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void Request_Transfer::CopyFrom(const Request_Transfer& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool Request_Transfer::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
-
-  return true;
-}
-
-void Request_Transfer::Swap(Request_Transfer* other) {
-  if (other != this) {
+    std::swap(schema_, other->schema_);
+    std::swap(table_, other->table_);
     std::swap(file_version_, other->file_version_);
     std::swap(file_name_, other->file_name_);
     std::swap(_has_bits_[0], other->_has_bits_[0]);
@@ -1033,365 +586,6 @@ void Request_Transfer::Swap(Request_Transfer* other) {
   }
 }
 
-::google::protobuf::Metadata Request_Transfer::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = Request_Transfer_descriptor_;
-  metadata.reflection = Request_Transfer_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-#ifndef _MSC_VER
-const int Request::kTypeFieldNumber;
-const int Request::kAuthorizationFieldNumber;
-const int Request::kValidationFieldNumber;
-const int Request::kTransferFieldNumber;
-#endif  // !_MSC_VER
-
-Request::Request()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void Request::InitAsDefaultInstance() {
-  authorization_ = const_cast< ::DataExporter_ns::Request_Authorization*>(&::DataExporter_ns::Request_Authorization::default_instance());
-  validation_ = const_cast< ::DataExporter_ns::Request_Validation*>(&::DataExporter_ns::Request_Validation::default_instance());
-  transfer_ = const_cast< ::DataExporter_ns::Request_Transfer*>(&::DataExporter_ns::Request_Transfer::default_instance());
-}
-
-Request::Request(const Request& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void Request::SharedCtor() {
-  _cached_size_ = 0;
-  type_ = 0;
-  authorization_ = NULL;
-  validation_ = NULL;
-  transfer_ = NULL;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-Request::~Request() {
-  SharedDtor();
-}
-
-void Request::SharedDtor() {
-  if (this != default_instance_) {
-    delete authorization_;
-    delete validation_;
-    delete transfer_;
-  }
-}
-
-void Request::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* Request::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Request_descriptor_;
-}
-
-const Request& Request::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_Request_2eproto();
-  return *default_instance_;
-}
-
-Request* Request::default_instance_ = NULL;
-
-Request* Request::New() const {
-  return new Request;
-}
-
-void Request::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    type_ = 0;
-    if (has_authorization()) {
-      if (authorization_ != NULL) authorization_->::DataExporter_ns::Request_Authorization::Clear();
-    }
-    if (has_validation()) {
-      if (validation_ != NULL) validation_->::DataExporter_ns::Request_Validation::Clear();
-    }
-    if (has_transfer()) {
-      if (transfer_ != NULL) transfer_->::DataExporter_ns::Request_Transfer::Clear();
-    }
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool Request::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required .DataExporter_ns.Request.Type type = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-          int value;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          if (::DataExporter_ns::Request_Type_IsValid(value)) {
-            set_type(static_cast< ::DataExporter_ns::Request_Type >(value));
-          } else {
-            mutable_unknown_fields()->AddVarint(1, value);
-          }
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_authorization;
-        break;
-      }
-
-      // optional .DataExporter_ns.Request.Authorization authorization = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_authorization:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_authorization()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_validation;
-        break;
-      }
-
-      // optional .DataExporter_ns.Request.Validation validation = 3;
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_validation:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_validation()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(34)) goto parse_transfer;
-        break;
-      }
-
-      // optional .DataExporter_ns.Request.Transfer transfer = 4;
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_transfer:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_transfer()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void Request::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required .DataExporter_ns.Request.Type type = 1;
-  if (has_type()) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      1, this->type(), output);
-  }
-
-  // optional .DataExporter_ns.Request.Authorization authorization = 2;
-  if (has_authorization()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, this->authorization(), output);
-  }
-
-  // optional .DataExporter_ns.Request.Validation validation = 3;
-  if (has_validation()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      3, this->validation(), output);
-  }
-
-  // optional .DataExporter_ns.Request.Transfer transfer = 4;
-  if (has_transfer()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      4, this->transfer(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* Request::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required .DataExporter_ns.Request.Type type = 1;
-  if (has_type()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      1, this->type(), target);
-  }
-
-  // optional .DataExporter_ns.Request.Authorization authorization = 2;
-  if (has_authorization()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        2, this->authorization(), target);
-  }
-
-  // optional .DataExporter_ns.Request.Validation validation = 3;
-  if (has_validation()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        3, this->validation(), target);
-  }
-
-  // optional .DataExporter_ns.Request.Transfer transfer = 4;
-  if (has_transfer()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        4, this->transfer(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int Request::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required .DataExporter_ns.Request.Type type = 1;
-    if (has_type()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
-    }
-
-    // optional .DataExporter_ns.Request.Authorization authorization = 2;
-    if (has_authorization()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->authorization());
-    }
-
-    // optional .DataExporter_ns.Request.Validation validation = 3;
-    if (has_validation()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->validation());
-    }
-
-    // optional .DataExporter_ns.Request.Transfer transfer = 4;
-    if (has_transfer()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->transfer());
-    }
-
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void Request::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const Request* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const Request*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void Request::MergeFrom(const Request& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_type()) {
-      set_type(from.type());
-    }
-    if (from.has_authorization()) {
-      mutable_authorization()->::DataExporter_ns::Request_Authorization::MergeFrom(from.authorization());
-    }
-    if (from.has_validation()) {
-      mutable_validation()->::DataExporter_ns::Request_Validation::MergeFrom(from.validation());
-    }
-    if (from.has_transfer()) {
-      mutable_transfer()->::DataExporter_ns::Request_Transfer::MergeFrom(from.transfer());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void Request::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void Request::CopyFrom(const Request& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool Request::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
-
-  if (has_authorization()) {
-    if (!this->authorization().IsInitialized()) return false;
-  }
-  if (has_validation()) {
-    if (!this->validation().IsInitialized()) return false;
-  }
-  if (has_transfer()) {
-    if (!this->transfer().IsInitialized()) return false;
-  }
-  return true;
-}
-
-void Request::Swap(Request* other) {
-  if (other != this) {
-    std::swap(type_, other->type_);
-    std::swap(authorization_, other->authorization_);
-    std::swap(validation_, other->validation_);
-    std::swap(transfer_, other->transfer_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
 ::google::protobuf::Metadata Request::GetMetadata() const {
   protobuf_AssignDescriptorsOnce();
   ::google::protobuf::Metadata metadata;
diff --git a/src/Request.pb.h b/src/Request.pb.h
index ae326cc..a3e78b5 100644
--- a/src/Request.pb.h
+++ b/src/Request.pb.h
@@ -23,7 +23,6 @@
 #include <google/protobuf/message.h>
 #include <google/protobuf/repeated_field.h>
 #include <google/protobuf/extension_set.h>
-#include <google/protobuf/generated_enum_reflection.h>
 #include <google/protobuf/unknown_field_set.h>
 // @@protoc_insertion_point(includes)
 
@@ -35,41 +34,17 @@ void protobuf_AssignDesc_Request_2eproto();
 void protobuf_ShutdownFile_Request_2eproto();
 
 class Request;
-class Request_Authorization;
-class Request_Validation;
-class Request_Transfer;
 
-enum Request_Type {
-  Request_Type_AUTHORIZATION = 0,
-  Request_Type_VALIDATION = 1,
-  Request_Type_TRANSFER = 2,
-  Request_Type_KEEPALIVE = 3
-};
-bool Request_Type_IsValid(int value);
-const Request_Type Request_Type_Type_MIN = Request_Type_AUTHORIZATION;
-const Request_Type Request_Type_Type_MAX = Request_Type_KEEPALIVE;
-const int Request_Type_Type_ARRAYSIZE = Request_Type_Type_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* Request_Type_descriptor();
-inline const ::std::string& Request_Type_Name(Request_Type value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    Request_Type_descriptor(), value);
-}
-inline bool Request_Type_Parse(
-    const ::std::string& name, Request_Type* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<Request_Type>(
-    Request_Type_descriptor(), name, value);
-}
 // ===================================================================
 
-class Request_Authorization : public ::google::protobuf::Message {
+class Request : public ::google::protobuf::Message {
  public:
-  Request_Authorization();
-  virtual ~Request_Authorization();
+  Request();
+  virtual ~Request();
 
-  Request_Authorization(const Request_Authorization& from);
+  Request(const Request& from);
 
-  inline Request_Authorization& operator=(const Request_Authorization& from) {
+  inline Request& operator=(const Request& from) {
     CopyFrom(from);
     return *this;
   }
@@ -83,17 +58,17 @@ class Request_Authorization : public ::google::protobuf::Message {
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
-  static const Request_Authorization& default_instance();
+  static const Request& default_instance();
 
-  void Swap(Request_Authorization* other);
+  void Swap(Request* other);
 
   // implements Message ----------------------------------------------
 
-  Request_Authorization* New() const;
+  Request* New() const;
   void CopyFrom(const ::google::protobuf::Message& from);
   void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const Request_Authorization& from);
-  void MergeFrom(const Request_Authorization& from);
+  void CopyFrom(const Request& from);
+  void MergeFrom(const Request& from);
   void Clear();
   bool IsInitialized() const;
 
@@ -140,88 +115,10 @@ class Request_Authorization : public ::google::protobuf::Message {
   inline ::std::string* release_password();
   inline void set_allocated_password(::std::string* password);
 
-  // @@protoc_insertion_point(class_scope:DataExporter_ns.Request.Authorization)
- private:
-  inline void set_has_username();
-  inline void clear_has_username();
-  inline void set_has_password();
-  inline void clear_has_password();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::std::string* username_;
-  ::std::string* password_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
-  friend void  protobuf_AddDesc_Request_2eproto();
-  friend void protobuf_AssignDesc_Request_2eproto();
-  friend void protobuf_ShutdownFile_Request_2eproto();
-
-  void InitAsDefaultInstance();
-  static Request_Authorization* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class Request_Validation : public ::google::protobuf::Message {
- public:
-  Request_Validation();
-  virtual ~Request_Validation();
-
-  Request_Validation(const Request_Validation& from);
-
-  inline Request_Validation& operator=(const Request_Validation& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const Request_Validation& default_instance();
-
-  void Swap(Request_Validation* other);
-
-  // implements Message ----------------------------------------------
-
-  Request_Validation* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const Request_Validation& from);
-  void MergeFrom(const Request_Validation& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // required string schema = 1;
+  // required string schema = 3;
   inline bool has_schema() const;
   inline void clear_schema();
-  static const int kSchemaFieldNumber = 1;
+  static const int kSchemaFieldNumber = 3;
   inline const ::std::string& schema() const;
   inline void set_schema(const ::std::string& value);
   inline void set_schema(const char* value);
@@ -230,10 +127,10 @@ class Request_Validation : public ::google::protobuf::Message {
   inline ::std::string* release_schema();
   inline void set_allocated_schema(::std::string* schema);
 
-  // required string table = 2;
+  // required string table = 4;
   inline bool has_table() const;
   inline void clear_table();
-  static const int kTableFieldNumber = 2;
+  static const int kTableFieldNumber = 4;
   inline const ::std::string& table() const;
   inline void set_table(const ::std::string& value);
   inline void set_table(const char* value);
@@ -242,95 +139,17 @@ class Request_Validation : public ::google::protobuf::Message {
   inline ::std::string* release_table();
   inline void set_allocated_table(::std::string* table);
 
-  // @@protoc_insertion_point(class_scope:DataExporter_ns.Request.Validation)
- private:
-  inline void set_has_schema();
-  inline void clear_has_schema();
-  inline void set_has_table();
-  inline void clear_has_table();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::std::string* schema_;
-  ::std::string* table_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
-  friend void  protobuf_AddDesc_Request_2eproto();
-  friend void protobuf_AssignDesc_Request_2eproto();
-  friend void protobuf_ShutdownFile_Request_2eproto();
-
-  void InitAsDefaultInstance();
-  static Request_Validation* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class Request_Transfer : public ::google::protobuf::Message {
- public:
-  Request_Transfer();
-  virtual ~Request_Transfer();
-
-  Request_Transfer(const Request_Transfer& from);
-
-  inline Request_Transfer& operator=(const Request_Transfer& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const Request_Transfer& default_instance();
-
-  void Swap(Request_Transfer* other);
-
-  // implements Message ----------------------------------------------
-
-  Request_Transfer* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const Request_Transfer& from);
-  void MergeFrom(const Request_Transfer& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // required int32 file_version = 1;
+  // required int32 file_version = 5;
   inline bool has_file_version() const;
   inline void clear_file_version();
-  static const int kFileVersionFieldNumber = 1;
+  static const int kFileVersionFieldNumber = 5;
   inline ::google::protobuf::int32 file_version() const;
   inline void set_file_version(::google::protobuf::int32 value);
 
-  // required string file_name = 2;
+  // required string file_name = 6;
   inline bool has_file_name() const;
   inline void clear_file_name();
-  static const int kFileNameFieldNumber = 2;
+  static const int kFileNameFieldNumber = 6;
   inline const ::std::string& file_name() const;
   inline void set_file_name(const ::std::string& value);
   inline void set_file_name(const char* value);
@@ -339,8 +158,16 @@ class Request_Transfer : public ::google::protobuf::Message {
   inline ::std::string* release_file_name();
   inline void set_allocated_file_name(::std::string* file_name);
 
-  // @@protoc_insertion_point(class_scope:DataExporter_ns.Request.Transfer)
+  // @@protoc_insertion_point(class_scope:DataExporter_ns.Request)
  private:
+  inline void set_has_username();
+  inline void clear_has_username();
+  inline void set_has_password();
+  inline void clear_has_password();
+  inline void set_has_schema();
+  inline void clear_has_schema();
+  inline void set_has_table();
+  inline void clear_has_table();
   inline void set_has_file_version();
   inline void clear_has_file_version();
   inline void set_has_file_name();
@@ -348,159 +175,15 @@ class Request_Transfer : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
+  ::std::string* username_;
+  ::std::string* password_;
+  ::std::string* schema_;
+  ::std::string* table_;
   ::std::string* file_name_;
   ::google::protobuf::int32 file_version_;
 
   mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
-  friend void  protobuf_AddDesc_Request_2eproto();
-  friend void protobuf_AssignDesc_Request_2eproto();
-  friend void protobuf_ShutdownFile_Request_2eproto();
-
-  void InitAsDefaultInstance();
-  static Request_Transfer* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class Request : public ::google::protobuf::Message {
- public:
-  Request();
-  virtual ~Request();
-
-  Request(const Request& from);
-
-  inline Request& operator=(const Request& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const Request& default_instance();
-
-  void Swap(Request* other);
-
-  // implements Message ----------------------------------------------
-
-  Request* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const Request& from);
-  void MergeFrom(const Request& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  typedef Request_Authorization Authorization;
-  typedef Request_Validation Validation;
-  typedef Request_Transfer Transfer;
-
-  typedef Request_Type Type;
-  static const Type AUTHORIZATION = Request_Type_AUTHORIZATION;
-  static const Type VALIDATION = Request_Type_VALIDATION;
-  static const Type TRANSFER = Request_Type_TRANSFER;
-  static const Type KEEPALIVE = Request_Type_KEEPALIVE;
-  static inline bool Type_IsValid(int value) {
-    return Request_Type_IsValid(value);
-  }
-  static const Type Type_MIN =
-    Request_Type_Type_MIN;
-  static const Type Type_MAX =
-    Request_Type_Type_MAX;
-  static const int Type_ARRAYSIZE =
-    Request_Type_Type_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Type_descriptor() {
-    return Request_Type_descriptor();
-  }
-  static inline const ::std::string& Type_Name(Type value) {
-    return Request_Type_Name(value);
-  }
-  static inline bool Type_Parse(const ::std::string& name,
-      Type* value) {
-    return Request_Type_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // required .DataExporter_ns.Request.Type type = 1;
-  inline bool has_type() const;
-  inline void clear_type();
-  static const int kTypeFieldNumber = 1;
-  inline ::DataExporter_ns::Request_Type type() const;
-  inline void set_type(::DataExporter_ns::Request_Type value);
-
-  // optional .DataExporter_ns.Request.Authorization authorization = 2;
-  inline bool has_authorization() const;
-  inline void clear_authorization();
-  static const int kAuthorizationFieldNumber = 2;
-  inline const ::DataExporter_ns::Request_Authorization& authorization() const;
-  inline ::DataExporter_ns::Request_Authorization* mutable_authorization();
-  inline ::DataExporter_ns::Request_Authorization* release_authorization();
-  inline void set_allocated_authorization(::DataExporter_ns::Request_Authorization* authorization);
-
-  // optional .DataExporter_ns.Request.Validation validation = 3;
-  inline bool has_validation() const;
-  inline void clear_validation();
-  static const int kValidationFieldNumber = 3;
-  inline const ::DataExporter_ns::Request_Validation& validation() const;
-  inline ::DataExporter_ns::Request_Validation* mutable_validation();
-  inline ::DataExporter_ns::Request_Validation* release_validation();
-  inline void set_allocated_validation(::DataExporter_ns::Request_Validation* validation);
-
-  // optional .DataExporter_ns.Request.Transfer transfer = 4;
-  inline bool has_transfer() const;
-  inline void clear_transfer();
-  static const int kTransferFieldNumber = 4;
-  inline const ::DataExporter_ns::Request_Transfer& transfer() const;
-  inline ::DataExporter_ns::Request_Transfer* mutable_transfer();
-  inline ::DataExporter_ns::Request_Transfer* release_transfer();
-  inline void set_allocated_transfer(::DataExporter_ns::Request_Transfer* transfer);
-
-  // @@protoc_insertion_point(class_scope:DataExporter_ns.Request)
- private:
-  inline void set_has_type();
-  inline void clear_has_type();
-  inline void set_has_authorization();
-  inline void clear_has_authorization();
-  inline void set_has_validation();
-  inline void clear_has_validation();
-  inline void set_has_transfer();
-  inline void clear_has_transfer();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::DataExporter_ns::Request_Authorization* authorization_;
-  ::DataExporter_ns::Request_Validation* validation_;
-  ::DataExporter_ns::Request_Transfer* transfer_;
-  int type_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
+  ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];
 
   friend void  protobuf_AddDesc_Request_2eproto();
   friend void protobuf_AssignDesc_Request_2eproto();
@@ -514,56 +197,56 @@ class Request : public ::google::protobuf::Message {
 
 // ===================================================================
 
-// Request_Authorization
+// Request
 
 // required string username = 1;
-inline bool Request_Authorization::has_username() const {
+inline bool Request::has_username() const {
   return (_has_bits_[0] & 0x00000001u) != 0;
 }
-inline void Request_Authorization::set_has_username() {
+inline void Request::set_has_username() {
   _has_bits_[0] |= 0x00000001u;
 }
-inline void Request_Authorization::clear_has_username() {
+inline void Request::clear_has_username() {
   _has_bits_[0] &= ~0x00000001u;
 }
-inline void Request_Authorization::clear_username() {
+inline void Request::clear_username() {
   if (username_ != &::google::protobuf::internal::kEmptyString) {
     username_->clear();
   }
   clear_has_username();
 }
-inline const ::std::string& Request_Authorization::username() const {
+inline const ::std::string& Request::username() const {
   return *username_;
 }
-inline void Request_Authorization::set_username(const ::std::string& value) {
+inline void Request::set_username(const ::std::string& value) {
   set_has_username();
   if (username_ == &::google::protobuf::internal::kEmptyString) {
     username_ = new ::std::string;
   }
   username_->assign(value);
 }
-inline void Request_Authorization::set_username(const char* value) {
+inline void Request::set_username(const char* value) {
   set_has_username();
   if (username_ == &::google::protobuf::internal::kEmptyString) {
     username_ = new ::std::string;
   }
   username_->assign(value);
 }
-inline void Request_Authorization::set_username(const char* value, size_t size) {
+inline void Request::set_username(const char* value, size_t size) {
   set_has_username();
   if (username_ == &::google::protobuf::internal::kEmptyString) {
     username_ = new ::std::string;
   }
   username_->assign(reinterpret_cast<const char*>(value), size);
 }
-inline ::std::string* Request_Authorization::mutable_username() {
+inline ::std::string* Request::mutable_username() {
   set_has_username();
   if (username_ == &::google::protobuf::internal::kEmptyString) {
     username_ = new ::std::string;
   }
   return username_;
 }
-inline ::std::string* Request_Authorization::release_username() {
+inline ::std::string* Request::release_username() {
   clear_has_username();
   if (username_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
@@ -573,7 +256,7 @@ inline ::std::string* Request_Authorization::release_username() {
     return temp;
   }
 }
-inline void Request_Authorization::set_allocated_username(::std::string* username) {
+inline void Request::set_allocated_username(::std::string* username) {
   if (username_ != &::google::protobuf::internal::kEmptyString) {
     delete username_;
   }
@@ -587,53 +270,53 @@ inline void Request_Authorization::set_allocated_username(::std::string* usernam
 }
 
 // required string password = 2;
-inline bool Request_Authorization::has_password() const {
+inline bool Request::has_password() const {
   return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Request_Authorization::set_has_password() {
+inline void Request::set_has_password() {
   _has_bits_[0] |= 0x00000002u;
 }
-inline void Request_Authorization::clear_has_password() {
+inline void Request::clear_has_password() {
   _has_bits_[0] &= ~0x00000002u;
 }
-inline void Request_Authorization::clear_password() {
+inline void Request::clear_password() {
   if (password_ != &::google::protobuf::internal::kEmptyString) {
     password_->clear();
   }
   clear_has_password();
 }
-inline const ::std::string& Request_Authorization::password() const {
+inline const ::std::string& Request::password() const {
   return *password_;
 }
-inline void Request_Authorization::set_password(const ::std::string& value) {
+inline void Request::set_password(const ::std::string& value) {
   set_has_password();
   if (password_ == &::google::protobuf::internal::kEmptyString) {
     password_ = new ::std::string;
   }
   password_->assign(value);
 }
-inline void Request_Authorization::set_password(const char* value) {
+inline void Request::set_password(const char* value) {
   set_has_password();
   if (password_ == &::google::protobuf::internal::kEmptyString) {
     password_ = new ::std::string;
   }
   password_->assign(value);
 }
-inline void Request_Authorization::set_password(const char* value, size_t size) {
+inline void Request::set_password(const char* value, size_t size) {
   set_has_password();
   if (password_ == &::google::protobuf::internal::kEmptyString) {
     password_ = new ::std::string;
   }
   password_->assign(reinterpret_cast<const char*>(value), size);
 }
-inline ::std::string* Request_Authorization::mutable_password() {
+inline ::std::string* Request::mutable_password() {
   set_has_password();
   if (password_ == &::google::protobuf::internal::kEmptyString) {
     password_ = new ::std::string;
   }
   return password_;
 }
-inline ::std::string* Request_Authorization::release_password() {
+inline ::std::string* Request::release_password() {
   clear_has_password();
   if (password_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
@@ -643,7 +326,7 @@ inline ::std::string* Request_Authorization::release_password() {
     return temp;
   }
 }
-inline void Request_Authorization::set_allocated_password(::std::string* password) {
+inline void Request::set_allocated_password(::std::string* password) {
   if (password_ != &::google::protobuf::internal::kEmptyString) {
     delete password_;
   }
@@ -656,58 +339,54 @@ inline void Request_Authorization::set_allocated_password(::std::string* passwor
   }
 }
 
-// -------------------------------------------------------------------
-
-// Request_Validation
-
-// required string schema = 1;
-inline bool Request_Validation::has_schema() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
+// required string schema = 3;
+inline bool Request::has_schema() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
-inline void Request_Validation::set_has_schema() {
-  _has_bits_[0] |= 0x00000001u;
+inline void Request::set_has_schema() {
+  _has_bits_[0] |= 0x00000004u;
 }
-inline void Request_Validation::clear_has_schema() {
-  _has_bits_[0] &= ~0x00000001u;
+inline void Request::clear_has_schema() {
+  _has_bits_[0] &= ~0x00000004u;
 }
-inline void Request_Validation::clear_schema() {
+inline void Request::clear_schema() {
   if (schema_ != &::google::protobuf::internal::kEmptyString) {
     schema_->clear();
   }
   clear_has_schema();
 }
-inline const ::std::string& Request_Validation::schema() const {
+inline const ::std::string& Request::schema() const {
   return *schema_;
 }
-inline void Request_Validation::set_schema(const ::std::string& value) {
+inline void Request::set_schema(const ::std::string& value) {
   set_has_schema();
   if (schema_ == &::google::protobuf::internal::kEmptyString) {
     schema_ = new ::std::string;
   }
   schema_->assign(value);
 }
-inline void Request_Validation::set_schema(const char* value) {
+inline void Request::set_schema(const char* value) {
   set_has_schema();
   if (schema_ == &::google::protobuf::internal::kEmptyString) {
     schema_ = new ::std::string;
   }
   schema_->assign(value);
 }
-inline void Request_Validation::set_schema(const char* value, size_t size) {
+inline void Request::set_schema(const char* value, size_t size) {
   set_has_schema();
   if (schema_ == &::google::protobuf::internal::kEmptyString) {
     schema_ = new ::std::string;
   }
   schema_->assign(reinterpret_cast<const char*>(value), size);
 }
-inline ::std::string* Request_Validation::mutable_schema() {
+inline ::std::string* Request::mutable_schema() {
   set_has_schema();
   if (schema_ == &::google::protobuf::internal::kEmptyString) {
     schema_ = new ::std::string;
   }
   return schema_;
 }
-inline ::std::string* Request_Validation::release_schema() {
+inline ::std::string* Request::release_schema() {
   clear_has_schema();
   if (schema_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
@@ -717,7 +396,7 @@ inline ::std::string* Request_Validation::release_schema() {
     return temp;
   }
 }
-inline void Request_Validation::set_allocated_schema(::std::string* schema) {
+inline void Request::set_allocated_schema(::std::string* schema) {
   if (schema_ != &::google::protobuf::internal::kEmptyString) {
     delete schema_;
   }
@@ -730,54 +409,54 @@ inline void Request_Validation::set_allocated_schema(::std::string* schema) {
   }
 }
 
-// required string table = 2;
-inline bool Request_Validation::has_table() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+// required string table = 4;
+inline bool Request::has_table() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
-inline void Request_Validation::set_has_table() {
-  _has_bits_[0] |= 0x00000002u;
+inline void Request::set_has_table() {
+  _has_bits_[0] |= 0x00000008u;
 }
-inline void Request_Validation::clear_has_table() {
-  _has_bits_[0] &= ~0x00000002u;
+inline void Request::clear_has_table() {
+  _has_bits_[0] &= ~0x00000008u;
 }
-inline void Request_Validation::clear_table() {
+inline void Request::clear_table() {
   if (table_ != &::google::protobuf::internal::kEmptyString) {
     table_->clear();
   }
   clear_has_table();
 }
-inline const ::std::string& Request_Validation::table() const {
+inline const ::std::string& Request::table() const {
   return *table_;
 }
-inline void Request_Validation::set_table(const ::std::string& value) {
+inline void Request::set_table(const ::std::string& value) {
   set_has_table();
   if (table_ == &::google::protobuf::internal::kEmptyString) {
     table_ = new ::std::string;
   }
   table_->assign(value);
 }
-inline void Request_Validation::set_table(const char* value) {
+inline void Request::set_table(const char* value) {
   set_has_table();
   if (table_ == &::google::protobuf::internal::kEmptyString) {
     table_ = new ::std::string;
   }
   table_->assign(value);
 }
-inline void Request_Validation::set_table(const char* value, size_t size) {
+inline void Request::set_table(const char* value, size_t size) {
   set_has_table();
   if (table_ == &::google::protobuf::internal::kEmptyString) {
     table_ = new ::std::string;
   }
   table_->assign(reinterpret_cast<const char*>(value), size);
 }
-inline ::std::string* Request_Validation::mutable_table() {
+inline ::std::string* Request::mutable_table() {
   set_has_table();
   if (table_ == &::google::protobuf::internal::kEmptyString) {
     table_ = new ::std::string;
   }
   return table_;
 }
-inline ::std::string* Request_Validation::release_table() {
+inline ::std::string* Request::release_table() {
   clear_has_table();
   if (table_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
@@ -787,7 +466,7 @@ inline ::std::string* Request_Validation::release_table() {
     return temp;
   }
 }
-inline void Request_Validation::set_allocated_table(::std::string* table) {
+inline void Request::set_allocated_table(::std::string* table) {
   if (table_ != &::google::protobuf::internal::kEmptyString) {
     delete table_;
   }
@@ -800,80 +479,76 @@ inline void Request_Validation::set_allocated_table(::std::string* table) {
   }
 }
 
-// -------------------------------------------------------------------
-
-// Request_Transfer
-
-// required int32 file_version = 1;
-inline bool Request_Transfer::has_file_version() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
+// required int32 file_version = 5;
+inline bool Request::has_file_version() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
 }
-inline void Request_Transfer::set_has_file_version() {
-  _has_bits_[0] |= 0x00000001u;
+inline void Request::set_has_file_version() {
+  _has_bits_[0] |= 0x00000010u;
 }
-inline void Request_Transfer::clear_has_file_version() {
-  _has_bits_[0] &= ~0x00000001u;
+inline void Request::clear_has_file_version() {
+  _has_bits_[0] &= ~0x00000010u;
 }
-inline void Request_Transfer::clear_file_version() {
+inline void Request::clear_file_version() {
   file_version_ = 0;
   clear_has_file_version();
 }
-inline ::google::protobuf::int32 Request_Transfer::file_version() const {
+inline ::google::protobuf::int32 Request::file_version() const {
   return file_version_;
 }
-inline void Request_Transfer::set_file_version(::google::protobuf::int32 value) {
+inline void Request::set_file_version(::google::protobuf::int32 value) {
   set_has_file_version();
   file_version_ = value;
 }
 
-// required string file_name = 2;
-inline bool Request_Transfer::has_file_name() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+// required string file_name = 6;
+inline bool Request::has_file_name() const {
+  return (_has_bits_[0] & 0x00000020u) != 0;
 }
-inline void Request_Transfer::set_has_file_name() {
-  _has_bits_[0] |= 0x00000002u;
+inline void Request::set_has_file_name() {
+  _has_bits_[0] |= 0x00000020u;
 }
-inline void Request_Transfer::clear_has_file_name() {
-  _has_bits_[0] &= ~0x00000002u;
+inline void Request::clear_has_file_name() {
+  _has_bits_[0] &= ~0x00000020u;
 }
-inline void Request_Transfer::clear_file_name() {
+inline void Request::clear_file_name() {
   if (file_name_ != &::google::protobuf::internal::kEmptyString) {
     file_name_->clear();
   }
   clear_has_file_name();
 }
-inline const ::std::string& Request_Transfer::file_name() const {
+inline const ::std::string& Request::file_name() const {
   return *file_name_;
 }
-inline void Request_Transfer::set_file_name(const ::std::string& value) {
+inline void Request::set_file_name(const ::std::string& value) {
   set_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     file_name_ = new ::std::string;
   }
   file_name_->assign(value);
 }
-inline void Request_Transfer::set_file_name(const char* value) {
+inline void Request::set_file_name(const char* value) {
   set_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     file_name_ = new ::std::string;
   }
   file_name_->assign(value);
 }
-inline void Request_Transfer::set_file_name(const char* value, size_t size) {
+inline void Request::set_file_name(const char* value, size_t size) {
   set_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     file_name_ = new ::std::string;
   }
   file_name_->assign(reinterpret_cast<const char*>(value), size);
 }
-inline ::std::string* Request_Transfer::mutable_file_name() {
+inline ::std::string* Request::mutable_file_name() {
   set_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     file_name_ = new ::std::string;
   }
   return file_name_;
 }
-inline ::std::string* Request_Transfer::release_file_name() {
+inline ::std::string* Request::release_file_name() {
   clear_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
@@ -883,7 +558,7 @@ inline ::std::string* Request_Transfer::release_file_name() {
     return temp;
   }
 }
-inline void Request_Transfer::set_allocated_file_name(::std::string* file_name) {
+inline void Request::set_allocated_file_name(::std::string* file_name) {
   if (file_name_ != &::google::protobuf::internal::kEmptyString) {
     delete file_name_;
   }
@@ -896,147 +571,6 @@ inline void Request_Transfer::set_allocated_file_name(::std::string* file_name)
   }
 }
 
-// -------------------------------------------------------------------
-
-// Request
-
-// required .DataExporter_ns.Request.Type type = 1;
-inline bool Request::has_type() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void Request::set_has_type() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void Request::clear_has_type() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void Request::clear_type() {
-  type_ = 0;
-  clear_has_type();
-}
-inline ::DataExporter_ns::Request_Type Request::type() const {
-  return static_cast< ::DataExporter_ns::Request_Type >(type_);
-}
-inline void Request::set_type(::DataExporter_ns::Request_Type value) {
-  assert(::DataExporter_ns::Request_Type_IsValid(value));
-  set_has_type();
-  type_ = value;
-}
-
-// optional .DataExporter_ns.Request.Authorization authorization = 2;
-inline bool Request::has_authorization() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void Request::set_has_authorization() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void Request::clear_has_authorization() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void Request::clear_authorization() {
-  if (authorization_ != NULL) authorization_->::DataExporter_ns::Request_Authorization::Clear();
-  clear_has_authorization();
-}
-inline const ::DataExporter_ns::Request_Authorization& Request::authorization() const {
-  return authorization_ != NULL ? *authorization_ : *default_instance_->authorization_;
-}
-inline ::DataExporter_ns::Request_Authorization* Request::mutable_authorization() {
-  set_has_authorization();
-  if (authorization_ == NULL) authorization_ = new ::DataExporter_ns::Request_Authorization;
-  return authorization_;
-}
-inline ::DataExporter_ns::Request_Authorization* Request::release_authorization() {
-  clear_has_authorization();
-  ::DataExporter_ns::Request_Authorization* temp = authorization_;
-  authorization_ = NULL;
-  return temp;
-}
-inline void Request::set_allocated_authorization(::DataExporter_ns::Request_Authorization* authorization) {
-  delete authorization_;
-  authorization_ = authorization;
-  if (authorization) {
-    set_has_authorization();
-  } else {
-    clear_has_authorization();
-  }
-}
-
-// optional .DataExporter_ns.Request.Validation validation = 3;
-inline bool Request::has_validation() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void Request::set_has_validation() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void Request::clear_has_validation() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void Request::clear_validation() {
-  if (validation_ != NULL) validation_->::DataExporter_ns::Request_Validation::Clear();
-  clear_has_validation();
-}
-inline const ::DataExporter_ns::Request_Validation& Request::validation() const {
-  return validation_ != NULL ? *validation_ : *default_instance_->validation_;
-}
-inline ::DataExporter_ns::Request_Validation* Request::mutable_validation() {
-  set_has_validation();
-  if (validation_ == NULL) validation_ = new ::DataExporter_ns::Request_Validation;
-  return validation_;
-}
-inline ::DataExporter_ns::Request_Validation* Request::release_validation() {
-  clear_has_validation();
-  ::DataExporter_ns::Request_Validation* temp = validation_;
-  validation_ = NULL;
-  return temp;
-}
-inline void Request::set_allocated_validation(::DataExporter_ns::Request_Validation* validation) {
-  delete validation_;
-  validation_ = validation;
-  if (validation) {
-    set_has_validation();
-  } else {
-    clear_has_validation();
-  }
-}
-
-// optional .DataExporter_ns.Request.Transfer transfer = 4;
-inline bool Request::has_transfer() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void Request::set_has_transfer() {
-  _has_bits_[0] |= 0x00000008u;
-}
-inline void Request::clear_has_transfer() {
-  _has_bits_[0] &= ~0x00000008u;
-}
-inline void Request::clear_transfer() {
-  if (transfer_ != NULL) transfer_->::DataExporter_ns::Request_Transfer::Clear();
-  clear_has_transfer();
-}
-inline const ::DataExporter_ns::Request_Transfer& Request::transfer() const {
-  return transfer_ != NULL ? *transfer_ : *default_instance_->transfer_;
-}
-inline ::DataExporter_ns::Request_Transfer* Request::mutable_transfer() {
-  set_has_transfer();
-  if (transfer_ == NULL) transfer_ = new ::DataExporter_ns::Request_Transfer;
-  return transfer_;
-}
-inline ::DataExporter_ns::Request_Transfer* Request::release_transfer() {
-  clear_has_transfer();
-  ::DataExporter_ns::Request_Transfer* temp = transfer_;
-  transfer_ = NULL;
-  return temp;
-}
-inline void Request::set_allocated_transfer(::DataExporter_ns::Request_Transfer* transfer) {
-  delete transfer_;
-  transfer_ = transfer;
-  if (transfer) {
-    set_has_transfer();
-  } else {
-    clear_has_transfer();
-  }
-}
-
 
 // @@protoc_insertion_point(namespace_scope)
 
@@ -1046,10 +580,6 @@ inline void Request::set_allocated_transfer(::DataExporter_ns::Request_Transfer*
 namespace google {
 namespace protobuf {
 
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::DataExporter_ns::Request_Type>() {
-  return ::DataExporter_ns::Request_Type_descriptor();
-}
 
 }  // namespace google
 }  // namespace protobuf
diff --git a/src/Response.pb.cc b/src/Response.pb.cc
index e101c52..26e3bef 100644
--- a/src/Response.pb.cc
+++ b/src/Response.pb.cc
@@ -23,19 +23,7 @@ namespace {
 const ::google::protobuf::Descriptor* Response_descriptor_ = NULL;
 const ::google::protobuf::internal::GeneratedMessageReflection*
   Response_reflection_ = NULL;
-const ::google::protobuf::Descriptor* Response_Authorization_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  Response_Authorization_reflection_ = NULL;
-const ::google::protobuf::EnumDescriptor* Response_Authorization_State_descriptor_ = NULL;
-const ::google::protobuf::Descriptor* Response_Validation_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  Response_Validation_reflection_ = NULL;
-const ::google::protobuf::EnumDescriptor* Response_Validation_State_descriptor_ = NULL;
-const ::google::protobuf::Descriptor* Response_Transfer_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  Response_Transfer_reflection_ = NULL;
-const ::google::protobuf::EnumDescriptor* Response_Transfer_State_descriptor_ = NULL;
-const ::google::protobuf::EnumDescriptor* Response_Type_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* Response_State_descriptor_ = NULL;
 
 }  // namespace
 
@@ -47,11 +35,13 @@ void protobuf_AssignDesc_Response_2eproto() {
       "Response.proto");
   GOOGLE_CHECK(file != NULL);
   Response_descriptor_ = file->message_type(0);
-  static const int Response_offsets_[4] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, type_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, authorization_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, validation_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, transfer_),
+  static const int Response_offsets_[6] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, state_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, status_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, file_path_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, file_version_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, file_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response, size_),
   };
   Response_reflection_ =
     new ::google::protobuf::internal::GeneratedMessageReflection(
@@ -64,62 +54,7 @@ void protobuf_AssignDesc_Response_2eproto() {
       ::google::protobuf::DescriptorPool::generated_pool(),
       ::google::protobuf::MessageFactory::generated_factory(),
       sizeof(Response));
-  Response_Authorization_descriptor_ = Response_descriptor_->nested_type(0);
-  static const int Response_Authorization_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Authorization, state_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Authorization, status_),
-  };
-  Response_Authorization_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      Response_Authorization_descriptor_,
-      Response_Authorization::default_instance_,
-      Response_Authorization_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Authorization, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Authorization, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(Response_Authorization));
-  Response_Authorization_State_descriptor_ = Response_Authorization_descriptor_->enum_type(0);
-  Response_Validation_descriptor_ = Response_descriptor_->nested_type(1);
-  static const int Response_Validation_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Validation, state_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Validation, status_),
-  };
-  Response_Validation_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      Response_Validation_descriptor_,
-      Response_Validation::default_instance_,
-      Response_Validation_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Validation, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Validation, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(Response_Validation));
-  Response_Validation_State_descriptor_ = Response_Validation_descriptor_->enum_type(0);
-  Response_Transfer_descriptor_ = Response_descriptor_->nested_type(2);
-  static const int Response_Transfer_offsets_[6] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Transfer, state_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Transfer, status_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Transfer, file_path_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Transfer, file_version_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Transfer, file_name_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Transfer, size_),
-  };
-  Response_Transfer_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      Response_Transfer_descriptor_,
-      Response_Transfer::default_instance_,
-      Response_Transfer_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Transfer, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Response_Transfer, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(Response_Transfer));
-  Response_Transfer_State_descriptor_ = Response_Transfer_descriptor_->enum_type(0);
-  Response_Type_descriptor_ = Response_descriptor_->enum_type(0);
+  Response_State_descriptor_ = Response_descriptor_->enum_type(0);
 }
 
 namespace {
@@ -134,12 +69,6 @@ void protobuf_RegisterTypes(const ::std::string&) {
   protobuf_AssignDescriptorsOnce();
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
     Response_descriptor_, &Response::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    Response_Authorization_descriptor_, &Response_Authorization::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    Response_Validation_descriptor_, &Response_Validation::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    Response_Transfer_descriptor_, &Response_Transfer::default_instance());
 }
 
 }  // namespace
@@ -147,12 +76,6 @@ void protobuf_RegisterTypes(const ::std::string&) {
 void protobuf_ShutdownFile_Response_2eproto() {
   delete Response::default_instance_;
   delete Response_reflection_;
-  delete Response_Authorization::default_instance_;
-  delete Response_Authorization_reflection_;
-  delete Response_Validation::default_instance_;
-  delete Response_Validation_reflection_;
-  delete Response_Transfer::default_instance_;
-  delete Response_Transfer_reflection_;
 }
 
 void protobuf_AddDesc_Response_2eproto() {
@@ -162,36 +85,16 @@ void protobuf_AddDesc_Response_2eproto() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-    "\n\016Response.proto\022\017DataExporter_ns\"\370\005\n\010Re"
-    "sponse\022,\n\004type\030\001 \002(\0162\036.DataExporter_ns.R"
-    "esponse.Type\022>\n\rauthorization\030\002 \001(\0132\'.Da"
-    "taExporter_ns.Response.Authorization\0228\n\n"
-    "validation\030\003 \001(\0132$.DataExporter_ns.Respo"
-    "nse.Validation\0224\n\010transfer\030\004 \001(\0132\".DataE"
-    "xporter_ns.Response.Transfer\032\202\001\n\rAuthori"
-    "zation\022<\n\005state\030\001 \002(\0162-.DataExporter_ns."
-    "Response.Authorization.State\022\016\n\006status\030\002"
-    " \002(\t\"#\n\005State\022\014\n\010ACCEPTED\020\000\022\014\n\010REJECTED\020"
-    "\001\032|\n\nValidation\0229\n\005state\030\001 \002(\0162*.DataExp"
-    "orter_ns.Response.Validation.State\022\016\n\006st"
-    "atus\030\002 \002(\t\"#\n\005State\022\014\n\010ACCEPTED\020\000\022\014\n\010REJ"
-    "ECTED\020\001\032\302\001\n\010Transfer\0227\n\005state\030\001 \002(\0162(.Da"
-    "taExporter_ns.Response.Transfer.State\022\016\n"
-    "\006status\030\002 \002(\t\022\021\n\tfile_path\030\003 \001(\t\022\024\n\014file"
-    "_version\030\004 \001(\005\022\021\n\tfile_name\030\005 \001(\t\022\014\n\004siz"
-    "e\030\006 \001(\004\"#\n\005State\022\014\n\010ACCEPTED\020\000\022\014\n\010REJECT"
-    "ED\020\001\"F\n\004Type\022\021\n\rAUTHORIZATION\020\000\022\016\n\nVALID"
-    "ATION\020\001\022\014\n\010TRANSFER\020\002\022\r\n\tKEEPALIVE\020\003", 796);
+    "\n\016Response.proto\022\017DataExporter_ns\"\271\001\n\010Re"
+    "sponse\022.\n\005state\030\001 \002(\0162\037.DataExporter_ns."
+    "Response.State\022\016\n\006status\030\002 \002(\t\022\021\n\tfile_p"
+    "ath\030\003 \001(\t\022\024\n\014file_version\030\004 \001(\005\022\021\n\tfile_"
+    "name\030\005 \001(\t\022\014\n\004size\030\006 \001(\004\"#\n\005State\022\014\n\010ACC"
+    "EPTED\020\000\022\014\n\010REJECTED\020\001", 221);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "Response.proto", &protobuf_RegisterTypes);
   Response::default_instance_ = new Response();
-  Response_Authorization::default_instance_ = new Response_Authorization();
-  Response_Validation::default_instance_ = new Response_Validation();
-  Response_Transfer::default_instance_ = new Response_Transfer();
   Response::default_instance_->InitAsDefaultInstance();
-  Response_Authorization::default_instance_->InitAsDefaultInstance();
-  Response_Validation::default_instance_->InitAsDefaultInstance();
-  Response_Transfer::default_instance_->InitAsDefaultInstance();
   ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_Response_2eproto);
 }
 
@@ -204,36 +107,11 @@ struct StaticDescriptorInitializer_Response_2eproto {
 
 // ===================================================================
 
-const ::google::protobuf::EnumDescriptor* Response_Type_descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Response_Type_descriptor_;
-}
-bool Response_Type_IsValid(int value) {
-  switch(value) {
-    case 0:
-    case 1:
-    case 2:
-    case 3:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#ifndef _MSC_VER
-const Response_Type Response::AUTHORIZATION;
-const Response_Type Response::VALIDATION;
-const Response_Type Response::TRANSFER;
-const Response_Type Response::KEEPALIVE;
-const Response_Type Response::Type_MIN;
-const Response_Type Response::Type_MAX;
-const int Response::Type_ARRAYSIZE;
-#endif  // _MSC_VER
-const ::google::protobuf::EnumDescriptor* Response_Authorization_State_descriptor() {
+const ::google::protobuf::EnumDescriptor* Response_State_descriptor() {
   protobuf_AssignDescriptorsOnce();
-  return Response_Authorization_State_descriptor_;
+  return Response_State_descriptor_;
 }
-bool Response_Authorization_State_IsValid(int value) {
+bool Response_State_IsValid(int value) {
   switch(value) {
     case 0:
     case 1:
@@ -244,72 +122,86 @@ bool Response_Authorization_State_IsValid(int value) {
 }
 
 #ifndef _MSC_VER
-const Response_Authorization_State Response_Authorization::ACCEPTED;
-const Response_Authorization_State Response_Authorization::REJECTED;
-const Response_Authorization_State Response_Authorization::State_MIN;
-const Response_Authorization_State Response_Authorization::State_MAX;
-const int Response_Authorization::State_ARRAYSIZE;
+const Response_State Response::ACCEPTED;
+const Response_State Response::REJECTED;
+const Response_State Response::State_MIN;
+const Response_State Response::State_MAX;
+const int Response::State_ARRAYSIZE;
 #endif  // _MSC_VER
 #ifndef _MSC_VER
-const int Response_Authorization::kStateFieldNumber;
-const int Response_Authorization::kStatusFieldNumber;
+const int Response::kStateFieldNumber;
+const int Response::kStatusFieldNumber;
+const int Response::kFilePathFieldNumber;
+const int Response::kFileVersionFieldNumber;
+const int Response::kFileNameFieldNumber;
+const int Response::kSizeFieldNumber;
 #endif  // !_MSC_VER
 
-Response_Authorization::Response_Authorization()
+Response::Response()
   : ::google::protobuf::Message() {
   SharedCtor();
 }
 
-void Response_Authorization::InitAsDefaultInstance() {
+void Response::InitAsDefaultInstance() {
 }
 
-Response_Authorization::Response_Authorization(const Response_Authorization& from)
+Response::Response(const Response& from)
   : ::google::protobuf::Message() {
   SharedCtor();
   MergeFrom(from);
 }
 
-void Response_Authorization::SharedCtor() {
+void Response::SharedCtor() {
   _cached_size_ = 0;
   state_ = 0;
   status_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  file_path_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  file_version_ = 0;
+  file_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  size_ = GOOGLE_ULONGLONG(0);
   ::memset(_has_bits_, 0, sizeof(_has_bits_));
 }
 
-Response_Authorization::~Response_Authorization() {
+Response::~Response() {
   SharedDtor();
 }
 
-void Response_Authorization::SharedDtor() {
+void Response::SharedDtor() {
   if (status_ != &::google::protobuf::internal::kEmptyString) {
     delete status_;
   }
+  if (file_path_ != &::google::protobuf::internal::kEmptyString) {
+    delete file_path_;
+  }
+  if (file_name_ != &::google::protobuf::internal::kEmptyString) {
+    delete file_name_;
+  }
   if (this != default_instance_) {
   }
 }
 
-void Response_Authorization::SetCachedSize(int size) const {
+void Response::SetCachedSize(int size) const {
   GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
   _cached_size_ = size;
   GOOGLE_SAFE_CONCURRENT_WRITES_END();
 }
-const ::google::protobuf::Descriptor* Response_Authorization::descriptor() {
+const ::google::protobuf::Descriptor* Response::descriptor() {
   protobuf_AssignDescriptorsOnce();
-  return Response_Authorization_descriptor_;
+  return Response_descriptor_;
 }
 
-const Response_Authorization& Response_Authorization::default_instance() {
+const Response& Response::default_instance() {
   if (default_instance_ == NULL) protobuf_AddDesc_Response_2eproto();
   return *default_instance_;
 }
 
-Response_Authorization* Response_Authorization::default_instance_ = NULL;
+Response* Response::default_instance_ = NULL;
 
-Response_Authorization* Response_Authorization::New() const {
-  return new Response_Authorization;
+Response* Response::New() const {
+  return new Response;
 }
 
-void Response_Authorization::Clear() {
+void Response::Clear() {
   if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
     state_ = 0;
     if (has_status()) {
@@ -317,18 +209,30 @@ void Response_Authorization::Clear() {
         status_->clear();
       }
     }
+    if (has_file_path()) {
+      if (file_path_ != &::google::protobuf::internal::kEmptyString) {
+        file_path_->clear();
+      }
+    }
+    file_version_ = 0;
+    if (has_file_name()) {
+      if (file_name_ != &::google::protobuf::internal::kEmptyString) {
+        file_name_->clear();
+      }
+    }
+    size_ = GOOGLE_ULONGLONG(0);
   }
   ::memset(_has_bits_, 0, sizeof(_has_bits_));
   mutable_unknown_fields()->Clear();
 }
 
-bool Response_Authorization::MergePartialFromCodedStream(
+bool Response::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
 #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
   ::google::protobuf::uint32 tag;
   while ((tag = input->ReadTag()) != 0) {
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required .DataExporter_ns.Response.Authorization.State state = 1;
+      // required .DataExporter_ns.Response.State state = 1;
       case 1: {
         if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
             ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
@@ -336,8 +240,8 @@ bool Response_Authorization::MergePartialFromCodedStream(
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                  input, &value)));
-          if (::DataExporter_ns::Response_Authorization_State_IsValid(value)) {
-            set_state(static_cast< ::DataExporter_ns::Response_Authorization_State >(value));
+          if (::DataExporter_ns::Response_State_IsValid(value)) {
+            set_state(static_cast< ::DataExporter_ns::Response_State >(value));
           } else {
             mutable_unknown_fields()->AddVarint(1, value);
           }
@@ -361,6 +265,72 @@ bool Response_Authorization::MergePartialFromCodedStream(
         } else {
           goto handle_uninterpreted;
         }
+        if (input->ExpectTag(26)) goto parse_file_path;
+        break;
+      }
+
+      // optional string file_path = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_file_path:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_file_path()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->file_path().data(), this->file_path().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(32)) goto parse_file_version;
+        break;
+      }
+
+      // optional int32 file_version = 4;
+      case 4: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_file_version:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &file_version_)));
+          set_has_file_version();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(42)) goto parse_file_name;
+        break;
+      }
+
+      // optional string file_name = 5;
+      case 5: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_file_name:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_file_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->file_name().data(), this->file_name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(48)) goto parse_size;
+        break;
+      }
+
+      // optional uint64 size = 6;
+      case 6: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_size:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &size_)));
+          set_has_size();
+        } else {
+          goto handle_uninterpreted;
+        }
         if (input->ExpectAtEnd()) return true;
         break;
       }
@@ -381,9 +351,9 @@ bool Response_Authorization::MergePartialFromCodedStream(
 #undef DO_
 }
 
-void Response_Authorization::SerializeWithCachedSizes(
+void Response::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
-  // required .DataExporter_ns.Response.Authorization.State state = 1;
+  // required .DataExporter_ns.Response.State state = 1;
   if (has_state()) {
     ::google::protobuf::internal::WireFormatLite::WriteEnum(
       1, this->state(), output);
@@ -398,15 +368,43 @@ void Response_Authorization::SerializeWithCachedSizes(
       2, this->status(), output);
   }
 
+  // optional string file_path = 3;
+  if (has_file_path()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->file_path().data(), this->file_path().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      3, this->file_path(), output);
+  }
+
+  // optional int32 file_version = 4;
+  if (has_file_version()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->file_version(), output);
+  }
+
+  // optional string file_name = 5;
+  if (has_file_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->file_name().data(), this->file_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      5, this->file_name(), output);
+  }
+
+  // optional uint64 size = 6;
+  if (has_size()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(6, this->size(), output);
+  }
+
   if (!unknown_fields().empty()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         unknown_fields(), output);
   }
 }
 
-::google::protobuf::uint8* Response_Authorization::SerializeWithCachedSizesToArray(
+::google::protobuf::uint8* Response::SerializeWithCachedSizesToArray(
     ::google::protobuf::uint8* target) const {
-  // required .DataExporter_ns.Response.Authorization.State state = 1;
+  // required .DataExporter_ns.Response.State state = 1;
   if (has_state()) {
     target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
       1, this->state(), target);
@@ -422,6 +420,36 @@ void Response_Authorization::SerializeWithCachedSizes(
         2, this->status(), target);
   }
 
+  // optional string file_path = 3;
+  if (has_file_path()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->file_path().data(), this->file_path().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->file_path(), target);
+  }
+
+  // optional int32 file_version = 4;
+  if (has_file_version()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->file_version(), target);
+  }
+
+  // optional string file_name = 5;
+  if (has_file_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->file_name().data(), this->file_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        5, this->file_name(), target);
+  }
+
+  // optional uint64 size = 6;
+  if (has_size()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(6, this->size(), target);
+  }
+
   if (!unknown_fields().empty()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         unknown_fields(), target);
@@ -429,11 +457,11 @@ void Response_Authorization::SerializeWithCachedSizes(
   return target;
 }
 
-int Response_Authorization::ByteSize() const {
+int Response::ByteSize() const {
   int total_size = 0;
 
   if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required .DataExporter_ns.Response.Authorization.State state = 1;
+    // required .DataExporter_ns.Response.State state = 1;
     if (has_state()) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::EnumSize(this->state());
@@ -446,6 +474,34 @@ int Response_Authorization::ByteSize() const {
           this->status());
     }
 
+    // optional string file_path = 3;
+    if (has_file_path()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->file_path());
+    }
+
+    // optional int32 file_version = 4;
+    if (has_file_version()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->file_version());
+    }
+
+    // optional string file_name = 5;
+    if (has_file_name()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->file_name());
+    }
+
+    // optional uint64 size = 6;
+    if (has_size()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::UInt64Size(
+          this->size());
+    }
+
   }
   if (!unknown_fields().empty()) {
     total_size +=
@@ -458,10 +514,10 @@ int Response_Authorization::ByteSize() const {
   return total_size;
 }
 
-void Response_Authorization::MergeFrom(const ::google::protobuf::Message& from) {
+void Response::MergeFrom(const ::google::protobuf::Message& from) {
   GOOGLE_CHECK_NE(&from, this);
-  const Response_Authorization* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const Response_Authorization*>(
+  const Response* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const Response*>(
       &from);
   if (source == NULL) {
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
@@ -470,7 +526,7 @@ void Response_Authorization::MergeFrom(const ::google::protobuf::Message& from)
   }
 }
 
-void Response_Authorization::MergeFrom(const Response_Authorization& from) {
+void Response::MergeFrom(const Response& from) {
   GOOGLE_CHECK_NE(&from, this);
   if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
     if (from.has_state()) {
@@ -479,805 +535,41 @@ void Response_Authorization::MergeFrom(const Response_Authorization& from) {
     if (from.has_status()) {
       set_status(from.status());
     }
+    if (from.has_file_path()) {
+      set_file_path(from.file_path());
+    }
+    if (from.has_file_version()) {
+      set_file_version(from.file_version());
+    }
+    if (from.has_file_name()) {
+      set_file_name(from.file_name());
+    }
+    if (from.has_size()) {
+      set_size(from.size());
+    }
   }
   mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
-void Response_Authorization::CopyFrom(const ::google::protobuf::Message& from) {
+void Response::CopyFrom(const ::google::protobuf::Message& from) {
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-void Response_Authorization::CopyFrom(const Response_Authorization& from) {
+void Response::CopyFrom(const Response& from) {
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
-bool Response_Authorization::IsInitialized() const {
+bool Response::IsInitialized() const {
   if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
 
   return true;
 }
 
-void Response_Authorization::Swap(Response_Authorization* other) {
-  if (other != this) {
-    std::swap(state_, other->state_);
-    std::swap(status_, other->status_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata Response_Authorization::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = Response_Authorization_descriptor_;
-  metadata.reflection = Response_Authorization_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-const ::google::protobuf::EnumDescriptor* Response_Validation_State_descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Response_Validation_State_descriptor_;
-}
-bool Response_Validation_State_IsValid(int value) {
-  switch(value) {
-    case 0:
-    case 1:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#ifndef _MSC_VER
-const Response_Validation_State Response_Validation::ACCEPTED;
-const Response_Validation_State Response_Validation::REJECTED;
-const Response_Validation_State Response_Validation::State_MIN;
-const Response_Validation_State Response_Validation::State_MAX;
-const int Response_Validation::State_ARRAYSIZE;
-#endif  // _MSC_VER
-#ifndef _MSC_VER
-const int Response_Validation::kStateFieldNumber;
-const int Response_Validation::kStatusFieldNumber;
-#endif  // !_MSC_VER
-
-Response_Validation::Response_Validation()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void Response_Validation::InitAsDefaultInstance() {
-}
-
-Response_Validation::Response_Validation(const Response_Validation& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void Response_Validation::SharedCtor() {
-  _cached_size_ = 0;
-  state_ = 0;
-  status_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-Response_Validation::~Response_Validation() {
-  SharedDtor();
-}
-
-void Response_Validation::SharedDtor() {
-  if (status_ != &::google::protobuf::internal::kEmptyString) {
-    delete status_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void Response_Validation::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* Response_Validation::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Response_Validation_descriptor_;
-}
-
-const Response_Validation& Response_Validation::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_Response_2eproto();
-  return *default_instance_;
-}
-
-Response_Validation* Response_Validation::default_instance_ = NULL;
-
-Response_Validation* Response_Validation::New() const {
-  return new Response_Validation;
-}
-
-void Response_Validation::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    state_ = 0;
-    if (has_status()) {
-      if (status_ != &::google::protobuf::internal::kEmptyString) {
-        status_->clear();
-      }
-    }
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool Response_Validation::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required .DataExporter_ns.Response.Validation.State state = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-          int value;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          if (::DataExporter_ns::Response_Validation_State_IsValid(value)) {
-            set_state(static_cast< ::DataExporter_ns::Response_Validation_State >(value));
-          } else {
-            mutable_unknown_fields()->AddVarint(1, value);
-          }
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_status;
-        break;
-      }
-
-      // required string status = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_status:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_status()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->status().data(), this->status().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void Response_Validation::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required .DataExporter_ns.Response.Validation.State state = 1;
-  if (has_state()) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      1, this->state(), output);
-  }
-
-  // required string status = 2;
-  if (has_status()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->status().data(), this->status().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      2, this->status(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* Response_Validation::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required .DataExporter_ns.Response.Validation.State state = 1;
-  if (has_state()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      1, this->state(), target);
-  }
-
-  // required string status = 2;
-  if (has_status()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->status().data(), this->status().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        2, this->status(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int Response_Validation::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required .DataExporter_ns.Response.Validation.State state = 1;
-    if (has_state()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::EnumSize(this->state());
-    }
-
-    // required string status = 2;
-    if (has_status()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->status());
-    }
-
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void Response_Validation::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const Response_Validation* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const Response_Validation*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void Response_Validation::MergeFrom(const Response_Validation& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_state()) {
-      set_state(from.state());
-    }
-    if (from.has_status()) {
-      set_status(from.status());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void Response_Validation::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void Response_Validation::CopyFrom(const Response_Validation& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool Response_Validation::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
-
-  return true;
-}
-
-void Response_Validation::Swap(Response_Validation* other) {
-  if (other != this) {
-    std::swap(state_, other->state_);
-    std::swap(status_, other->status_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata Response_Validation::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = Response_Validation_descriptor_;
-  metadata.reflection = Response_Validation_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-const ::google::protobuf::EnumDescriptor* Response_Transfer_State_descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Response_Transfer_State_descriptor_;
-}
-bool Response_Transfer_State_IsValid(int value) {
-  switch(value) {
-    case 0:
-    case 1:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#ifndef _MSC_VER
-const Response_Transfer_State Response_Transfer::ACCEPTED;
-const Response_Transfer_State Response_Transfer::REJECTED;
-const Response_Transfer_State Response_Transfer::State_MIN;
-const Response_Transfer_State Response_Transfer::State_MAX;
-const int Response_Transfer::State_ARRAYSIZE;
-#endif  // _MSC_VER
-#ifndef _MSC_VER
-const int Response_Transfer::kStateFieldNumber;
-const int Response_Transfer::kStatusFieldNumber;
-const int Response_Transfer::kFilePathFieldNumber;
-const int Response_Transfer::kFileVersionFieldNumber;
-const int Response_Transfer::kFileNameFieldNumber;
-const int Response_Transfer::kSizeFieldNumber;
-#endif  // !_MSC_VER
-
-Response_Transfer::Response_Transfer()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void Response_Transfer::InitAsDefaultInstance() {
-}
-
-Response_Transfer::Response_Transfer(const Response_Transfer& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void Response_Transfer::SharedCtor() {
-  _cached_size_ = 0;
-  state_ = 0;
-  status_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  file_path_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  file_version_ = 0;
-  file_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  size_ = GOOGLE_ULONGLONG(0);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-Response_Transfer::~Response_Transfer() {
-  SharedDtor();
-}
-
-void Response_Transfer::SharedDtor() {
-  if (status_ != &::google::protobuf::internal::kEmptyString) {
-    delete status_;
-  }
-  if (file_path_ != &::google::protobuf::internal::kEmptyString) {
-    delete file_path_;
-  }
-  if (file_name_ != &::google::protobuf::internal::kEmptyString) {
-    delete file_name_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void Response_Transfer::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* Response_Transfer::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Response_Transfer_descriptor_;
-}
-
-const Response_Transfer& Response_Transfer::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_Response_2eproto();
-  return *default_instance_;
-}
-
-Response_Transfer* Response_Transfer::default_instance_ = NULL;
-
-Response_Transfer* Response_Transfer::New() const {
-  return new Response_Transfer;
-}
-
-void Response_Transfer::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    state_ = 0;
-    if (has_status()) {
-      if (status_ != &::google::protobuf::internal::kEmptyString) {
-        status_->clear();
-      }
-    }
-    if (has_file_path()) {
-      if (file_path_ != &::google::protobuf::internal::kEmptyString) {
-        file_path_->clear();
-      }
-    }
-    file_version_ = 0;
-    if (has_file_name()) {
-      if (file_name_ != &::google::protobuf::internal::kEmptyString) {
-        file_name_->clear();
-      }
-    }
-    size_ = GOOGLE_ULONGLONG(0);
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool Response_Transfer::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required .DataExporter_ns.Response.Transfer.State state = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-          int value;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          if (::DataExporter_ns::Response_Transfer_State_IsValid(value)) {
-            set_state(static_cast< ::DataExporter_ns::Response_Transfer_State >(value));
-          } else {
-            mutable_unknown_fields()->AddVarint(1, value);
-          }
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_status;
-        break;
-      }
-
-      // required string status = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_status:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_status()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->status().data(), this->status().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_file_path;
-        break;
-      }
-
-      // optional string file_path = 3;
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_file_path:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_file_path()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->file_path().data(), this->file_path().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(32)) goto parse_file_version;
-        break;
-      }
-
-      // optional int32 file_version = 4;
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_file_version:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &file_version_)));
-          set_has_file_version();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(42)) goto parse_file_name;
-        break;
-      }
-
-      // optional string file_name = 5;
-      case 5: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_file_name:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_file_name()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->file_name().data(), this->file_name().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(48)) goto parse_size;
-        break;
-      }
-
-      // optional uint64 size = 6;
-      case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_size:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
-                 input, &size_)));
-          set_has_size();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void Response_Transfer::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required .DataExporter_ns.Response.Transfer.State state = 1;
-  if (has_state()) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      1, this->state(), output);
-  }
-
-  // required string status = 2;
-  if (has_status()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->status().data(), this->status().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      2, this->status(), output);
-  }
-
-  // optional string file_path = 3;
-  if (has_file_path()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->file_path().data(), this->file_path().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      3, this->file_path(), output);
-  }
-
-  // optional int32 file_version = 4;
-  if (has_file_version()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->file_version(), output);
-  }
-
-  // optional string file_name = 5;
-  if (has_file_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->file_name().data(), this->file_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      5, this->file_name(), output);
-  }
-
-  // optional uint64 size = 6;
-  if (has_size()) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt64(6, this->size(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* Response_Transfer::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required .DataExporter_ns.Response.Transfer.State state = 1;
-  if (has_state()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      1, this->state(), target);
-  }
-
-  // required string status = 2;
-  if (has_status()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->status().data(), this->status().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        2, this->status(), target);
-  }
-
-  // optional string file_path = 3;
-  if (has_file_path()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->file_path().data(), this->file_path().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        3, this->file_path(), target);
-  }
-
-  // optional int32 file_version = 4;
-  if (has_file_version()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->file_version(), target);
-  }
-
-  // optional string file_name = 5;
-  if (has_file_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->file_name().data(), this->file_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        5, this->file_name(), target);
-  }
-
-  // optional uint64 size = 6;
-  if (has_size()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(6, this->size(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int Response_Transfer::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required .DataExporter_ns.Response.Transfer.State state = 1;
-    if (has_state()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::EnumSize(this->state());
-    }
-
-    // required string status = 2;
-    if (has_status()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->status());
-    }
-
-    // optional string file_path = 3;
-    if (has_file_path()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->file_path());
-    }
-
-    // optional int32 file_version = 4;
-    if (has_file_version()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->file_version());
-    }
-
-    // optional string file_name = 5;
-    if (has_file_name()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->file_name());
-    }
-
-    // optional uint64 size = 6;
-    if (has_size()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::UInt64Size(
-          this->size());
-    }
-
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void Response_Transfer::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const Response_Transfer* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const Response_Transfer*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void Response_Transfer::MergeFrom(const Response_Transfer& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_state()) {
-      set_state(from.state());
-    }
-    if (from.has_status()) {
-      set_status(from.status());
-    }
-    if (from.has_file_path()) {
-      set_file_path(from.file_path());
-    }
-    if (from.has_file_version()) {
-      set_file_version(from.file_version());
-    }
-    if (from.has_file_name()) {
-      set_file_name(from.file_name());
-    }
-    if (from.has_size()) {
-      set_size(from.size());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void Response_Transfer::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void Response_Transfer::CopyFrom(const Response_Transfer& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool Response_Transfer::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
-
-  return true;
-}
-
-void Response_Transfer::Swap(Response_Transfer* other) {
+void Response::Swap(Response* other) {
   if (other != this) {
     std::swap(state_, other->state_);
     std::swap(status_, other->status_);
@@ -1291,365 +583,6 @@ void Response_Transfer::Swap(Response_Transfer* other) {
   }
 }
 
-::google::protobuf::Metadata Response_Transfer::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = Response_Transfer_descriptor_;
-  metadata.reflection = Response_Transfer_reflection_;
-  return metadata;
-}
-
-
-// -------------------------------------------------------------------
-
-#ifndef _MSC_VER
-const int Response::kTypeFieldNumber;
-const int Response::kAuthorizationFieldNumber;
-const int Response::kValidationFieldNumber;
-const int Response::kTransferFieldNumber;
-#endif  // !_MSC_VER
-
-Response::Response()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void Response::InitAsDefaultInstance() {
-  authorization_ = const_cast< ::DataExporter_ns::Response_Authorization*>(&::DataExporter_ns::Response_Authorization::default_instance());
-  validation_ = const_cast< ::DataExporter_ns::Response_Validation*>(&::DataExporter_ns::Response_Validation::default_instance());
-  transfer_ = const_cast< ::DataExporter_ns::Response_Transfer*>(&::DataExporter_ns::Response_Transfer::default_instance());
-}
-
-Response::Response(const Response& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void Response::SharedCtor() {
-  _cached_size_ = 0;
-  type_ = 0;
-  authorization_ = NULL;
-  validation_ = NULL;
-  transfer_ = NULL;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-Response::~Response() {
-  SharedDtor();
-}
-
-void Response::SharedDtor() {
-  if (this != default_instance_) {
-    delete authorization_;
-    delete validation_;
-    delete transfer_;
-  }
-}
-
-void Response::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* Response::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Response_descriptor_;
-}
-
-const Response& Response::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_Response_2eproto();
-  return *default_instance_;
-}
-
-Response* Response::default_instance_ = NULL;
-
-Response* Response::New() const {
-  return new Response;
-}
-
-void Response::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    type_ = 0;
-    if (has_authorization()) {
-      if (authorization_ != NULL) authorization_->::DataExporter_ns::Response_Authorization::Clear();
-    }
-    if (has_validation()) {
-      if (validation_ != NULL) validation_->::DataExporter_ns::Response_Validation::Clear();
-    }
-    if (has_transfer()) {
-      if (transfer_ != NULL) transfer_->::DataExporter_ns::Response_Transfer::Clear();
-    }
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool Response::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required .DataExporter_ns.Response.Type type = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-          int value;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          if (::DataExporter_ns::Response_Type_IsValid(value)) {
-            set_type(static_cast< ::DataExporter_ns::Response_Type >(value));
-          } else {
-            mutable_unknown_fields()->AddVarint(1, value);
-          }
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_authorization;
-        break;
-      }
-
-      // optional .DataExporter_ns.Response.Authorization authorization = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_authorization:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_authorization()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_validation;
-        break;
-      }
-
-      // optional .DataExporter_ns.Response.Validation validation = 3;
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_validation:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_validation()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(34)) goto parse_transfer;
-        break;
-      }
-
-      // optional .DataExporter_ns.Response.Transfer transfer = 4;
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_transfer:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_transfer()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void Response::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required .DataExporter_ns.Response.Type type = 1;
-  if (has_type()) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      1, this->type(), output);
-  }
-
-  // optional .DataExporter_ns.Response.Authorization authorization = 2;
-  if (has_authorization()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, this->authorization(), output);
-  }
-
-  // optional .DataExporter_ns.Response.Validation validation = 3;
-  if (has_validation()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      3, this->validation(), output);
-  }
-
-  // optional .DataExporter_ns.Response.Transfer transfer = 4;
-  if (has_transfer()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      4, this->transfer(), output);
-  }
-
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* Response::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required .DataExporter_ns.Response.Type type = 1;
-  if (has_type()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      1, this->type(), target);
-  }
-
-  // optional .DataExporter_ns.Response.Authorization authorization = 2;
-  if (has_authorization()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        2, this->authorization(), target);
-  }
-
-  // optional .DataExporter_ns.Response.Validation validation = 3;
-  if (has_validation()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        3, this->validation(), target);
-  }
-
-  // optional .DataExporter_ns.Response.Transfer transfer = 4;
-  if (has_transfer()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        4, this->transfer(), target);
-  }
-
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int Response::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required .DataExporter_ns.Response.Type type = 1;
-    if (has_type()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
-    }
-
-    // optional .DataExporter_ns.Response.Authorization authorization = 2;
-    if (has_authorization()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->authorization());
-    }
-
-    // optional .DataExporter_ns.Response.Validation validation = 3;
-    if (has_validation()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->validation());
-    }
-
-    // optional .DataExporter_ns.Response.Transfer transfer = 4;
-    if (has_transfer()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->transfer());
-    }
-
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void Response::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const Response* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const Response*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void Response::MergeFrom(const Response& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_type()) {
-      set_type(from.type());
-    }
-    if (from.has_authorization()) {
-      mutable_authorization()->::DataExporter_ns::Response_Authorization::MergeFrom(from.authorization());
-    }
-    if (from.has_validation()) {
-      mutable_validation()->::DataExporter_ns::Response_Validation::MergeFrom(from.validation());
-    }
-    if (from.has_transfer()) {
-      mutable_transfer()->::DataExporter_ns::Response_Transfer::MergeFrom(from.transfer());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void Response::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void Response::CopyFrom(const Response& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool Response::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
-
-  if (has_authorization()) {
-    if (!this->authorization().IsInitialized()) return false;
-  }
-  if (has_validation()) {
-    if (!this->validation().IsInitialized()) return false;
-  }
-  if (has_transfer()) {
-    if (!this->transfer().IsInitialized()) return false;
-  }
-  return true;
-}
-
-void Response::Swap(Response* other) {
-  if (other != this) {
-    std::swap(type_, other->type_);
-    std::swap(authorization_, other->authorization_);
-    std::swap(validation_, other->validation_);
-    std::swap(transfer_, other->transfer_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
 ::google::protobuf::Metadata Response::GetMetadata() const {
   protobuf_AssignDescriptorsOnce();
   ::google::protobuf::Metadata metadata;
diff --git a/src/Response.pb.h b/src/Response.pb.h
index 59a3a8c..d78346a 100644
--- a/src/Response.pb.h
+++ b/src/Response.pb.h
@@ -35,340 +35,36 @@ void protobuf_AssignDesc_Response_2eproto();
 void protobuf_ShutdownFile_Response_2eproto();
 
 class Response;
-class Response_Authorization;
-class Response_Validation;
-class Response_Transfer;
 
-enum Response_Authorization_State {
-  Response_Authorization_State_ACCEPTED = 0,
-  Response_Authorization_State_REJECTED = 1
+enum Response_State {
+  Response_State_ACCEPTED = 0,
+  Response_State_REJECTED = 1
 };
-bool Response_Authorization_State_IsValid(int value);
-const Response_Authorization_State Response_Authorization_State_State_MIN = Response_Authorization_State_ACCEPTED;
-const Response_Authorization_State Response_Authorization_State_State_MAX = Response_Authorization_State_REJECTED;
-const int Response_Authorization_State_State_ARRAYSIZE = Response_Authorization_State_State_MAX + 1;
+bool Response_State_IsValid(int value);
+const Response_State Response_State_State_MIN = Response_State_ACCEPTED;
+const Response_State Response_State_State_MAX = Response_State_REJECTED;
+const int Response_State_State_ARRAYSIZE = Response_State_State_MAX + 1;
 
-const ::google::protobuf::EnumDescriptor* Response_Authorization_State_descriptor();
-inline const ::std::string& Response_Authorization_State_Name(Response_Authorization_State value) {
+const ::google::protobuf::EnumDescriptor* Response_State_descriptor();
+inline const ::std::string& Response_State_Name(Response_State value) {
   return ::google::protobuf::internal::NameOfEnum(
-    Response_Authorization_State_descriptor(), value);
+    Response_State_descriptor(), value);
 }
-inline bool Response_Authorization_State_Parse(
-    const ::std::string& name, Response_Authorization_State* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<Response_Authorization_State>(
-    Response_Authorization_State_descriptor(), name, value);
-}
-enum Response_Validation_State {
-  Response_Validation_State_ACCEPTED = 0,
-  Response_Validation_State_REJECTED = 1
-};
-bool Response_Validation_State_IsValid(int value);
-const Response_Validation_State Response_Validation_State_State_MIN = Response_Validation_State_ACCEPTED;
-const Response_Validation_State Response_Validation_State_State_MAX = Response_Validation_State_REJECTED;
-const int Response_Validation_State_State_ARRAYSIZE = Response_Validation_State_State_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* Response_Validation_State_descriptor();
-inline const ::std::string& Response_Validation_State_Name(Response_Validation_State value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    Response_Validation_State_descriptor(), value);
-}
-inline bool Response_Validation_State_Parse(
-    const ::std::string& name, Response_Validation_State* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<Response_Validation_State>(
-    Response_Validation_State_descriptor(), name, value);
-}
-enum Response_Transfer_State {
-  Response_Transfer_State_ACCEPTED = 0,
-  Response_Transfer_State_REJECTED = 1
-};
-bool Response_Transfer_State_IsValid(int value);
-const Response_Transfer_State Response_Transfer_State_State_MIN = Response_Transfer_State_ACCEPTED;
-const Response_Transfer_State Response_Transfer_State_State_MAX = Response_Transfer_State_REJECTED;
-const int Response_Transfer_State_State_ARRAYSIZE = Response_Transfer_State_State_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* Response_Transfer_State_descriptor();
-inline const ::std::string& Response_Transfer_State_Name(Response_Transfer_State value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    Response_Transfer_State_descriptor(), value);
-}
-inline bool Response_Transfer_State_Parse(
-    const ::std::string& name, Response_Transfer_State* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<Response_Transfer_State>(
-    Response_Transfer_State_descriptor(), name, value);
-}
-enum Response_Type {
-  Response_Type_AUTHORIZATION = 0,
-  Response_Type_VALIDATION = 1,
-  Response_Type_TRANSFER = 2,
-  Response_Type_KEEPALIVE = 3
-};
-bool Response_Type_IsValid(int value);
-const Response_Type Response_Type_Type_MIN = Response_Type_AUTHORIZATION;
-const Response_Type Response_Type_Type_MAX = Response_Type_KEEPALIVE;
-const int Response_Type_Type_ARRAYSIZE = Response_Type_Type_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* Response_Type_descriptor();
-inline const ::std::string& Response_Type_Name(Response_Type value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    Response_Type_descriptor(), value);
-}
-inline bool Response_Type_Parse(
-    const ::std::string& name, Response_Type* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<Response_Type>(
-    Response_Type_descriptor(), name, value);
+inline bool Response_State_Parse(
+    const ::std::string& name, Response_State* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<Response_State>(
+    Response_State_descriptor(), name, value);
 }
 // ===================================================================
 
-class Response_Authorization : public ::google::protobuf::Message {
- public:
-  Response_Authorization();
-  virtual ~Response_Authorization();
-
-  Response_Authorization(const Response_Authorization& from);
-
-  inline Response_Authorization& operator=(const Response_Authorization& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const Response_Authorization& default_instance();
-
-  void Swap(Response_Authorization* other);
-
-  // implements Message ----------------------------------------------
-
-  Response_Authorization* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const Response_Authorization& from);
-  void MergeFrom(const Response_Authorization& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  typedef Response_Authorization_State State;
-  static const State ACCEPTED = Response_Authorization_State_ACCEPTED;
-  static const State REJECTED = Response_Authorization_State_REJECTED;
-  static inline bool State_IsValid(int value) {
-    return Response_Authorization_State_IsValid(value);
-  }
-  static const State State_MIN =
-    Response_Authorization_State_State_MIN;
-  static const State State_MAX =
-    Response_Authorization_State_State_MAX;
-  static const int State_ARRAYSIZE =
-    Response_Authorization_State_State_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  State_descriptor() {
-    return Response_Authorization_State_descriptor();
-  }
-  static inline const ::std::string& State_Name(State value) {
-    return Response_Authorization_State_Name(value);
-  }
-  static inline bool State_Parse(const ::std::string& name,
-      State* value) {
-    return Response_Authorization_State_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // required .DataExporter_ns.Response.Authorization.State state = 1;
-  inline bool has_state() const;
-  inline void clear_state();
-  static const int kStateFieldNumber = 1;
-  inline ::DataExporter_ns::Response_Authorization_State state() const;
-  inline void set_state(::DataExporter_ns::Response_Authorization_State value);
-
-  // required string status = 2;
-  inline bool has_status() const;
-  inline void clear_status();
-  static const int kStatusFieldNumber = 2;
-  inline const ::std::string& status() const;
-  inline void set_status(const ::std::string& value);
-  inline void set_status(const char* value);
-  inline void set_status(const char* value, size_t size);
-  inline ::std::string* mutable_status();
-  inline ::std::string* release_status();
-  inline void set_allocated_status(::std::string* status);
-
-  // @@protoc_insertion_point(class_scope:DataExporter_ns.Response.Authorization)
- private:
-  inline void set_has_state();
-  inline void clear_has_state();
-  inline void set_has_status();
-  inline void clear_has_status();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::std::string* status_;
-  int state_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
-  friend void  protobuf_AddDesc_Response_2eproto();
-  friend void protobuf_AssignDesc_Response_2eproto();
-  friend void protobuf_ShutdownFile_Response_2eproto();
-
-  void InitAsDefaultInstance();
-  static Response_Authorization* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class Response_Validation : public ::google::protobuf::Message {
- public:
-  Response_Validation();
-  virtual ~Response_Validation();
-
-  Response_Validation(const Response_Validation& from);
-
-  inline Response_Validation& operator=(const Response_Validation& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const Response_Validation& default_instance();
-
-  void Swap(Response_Validation* other);
-
-  // implements Message ----------------------------------------------
-
-  Response_Validation* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const Response_Validation& from);
-  void MergeFrom(const Response_Validation& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  typedef Response_Validation_State State;
-  static const State ACCEPTED = Response_Validation_State_ACCEPTED;
-  static const State REJECTED = Response_Validation_State_REJECTED;
-  static inline bool State_IsValid(int value) {
-    return Response_Validation_State_IsValid(value);
-  }
-  static const State State_MIN =
-    Response_Validation_State_State_MIN;
-  static const State State_MAX =
-    Response_Validation_State_State_MAX;
-  static const int State_ARRAYSIZE =
-    Response_Validation_State_State_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  State_descriptor() {
-    return Response_Validation_State_descriptor();
-  }
-  static inline const ::std::string& State_Name(State value) {
-    return Response_Validation_State_Name(value);
-  }
-  static inline bool State_Parse(const ::std::string& name,
-      State* value) {
-    return Response_Validation_State_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // required .DataExporter_ns.Response.Validation.State state = 1;
-  inline bool has_state() const;
-  inline void clear_state();
-  static const int kStateFieldNumber = 1;
-  inline ::DataExporter_ns::Response_Validation_State state() const;
-  inline void set_state(::DataExporter_ns::Response_Validation_State value);
-
-  // required string status = 2;
-  inline bool has_status() const;
-  inline void clear_status();
-  static const int kStatusFieldNumber = 2;
-  inline const ::std::string& status() const;
-  inline void set_status(const ::std::string& value);
-  inline void set_status(const char* value);
-  inline void set_status(const char* value, size_t size);
-  inline ::std::string* mutable_status();
-  inline ::std::string* release_status();
-  inline void set_allocated_status(::std::string* status);
-
-  // @@protoc_insertion_point(class_scope:DataExporter_ns.Response.Validation)
- private:
-  inline void set_has_state();
-  inline void clear_has_state();
-  inline void set_has_status();
-  inline void clear_has_status();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::std::string* status_;
-  int state_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
-  friend void  protobuf_AddDesc_Response_2eproto();
-  friend void protobuf_AssignDesc_Response_2eproto();
-  friend void protobuf_ShutdownFile_Response_2eproto();
-
-  void InitAsDefaultInstance();
-  static Response_Validation* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class Response_Transfer : public ::google::protobuf::Message {
+class Response : public ::google::protobuf::Message {
  public:
-  Response_Transfer();
-  virtual ~Response_Transfer();
+  Response();
+  virtual ~Response();
 
-  Response_Transfer(const Response_Transfer& from);
+  Response(const Response& from);
 
-  inline Response_Transfer& operator=(const Response_Transfer& from) {
+  inline Response& operator=(const Response& from) {
     CopyFrom(from);
     return *this;
   }
@@ -382,17 +78,17 @@ class Response_Transfer : public ::google::protobuf::Message {
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
-  static const Response_Transfer& default_instance();
+  static const Response& default_instance();
 
-  void Swap(Response_Transfer* other);
+  void Swap(Response* other);
 
   // implements Message ----------------------------------------------
 
-  Response_Transfer* New() const;
+  Response* New() const;
   void CopyFrom(const ::google::protobuf::Message& from);
   void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const Response_Transfer& from);
-  void MergeFrom(const Response_Transfer& from);
+  void CopyFrom(const Response& from);
+  void MergeFrom(const Response& from);
   void Clear();
   bool IsInitialized() const;
 
@@ -413,38 +109,38 @@ class Response_Transfer : public ::google::protobuf::Message {
 
   // nested types ----------------------------------------------------
 
-  typedef Response_Transfer_State State;
-  static const State ACCEPTED = Response_Transfer_State_ACCEPTED;
-  static const State REJECTED = Response_Transfer_State_REJECTED;
+  typedef Response_State State;
+  static const State ACCEPTED = Response_State_ACCEPTED;
+  static const State REJECTED = Response_State_REJECTED;
   static inline bool State_IsValid(int value) {
-    return Response_Transfer_State_IsValid(value);
+    return Response_State_IsValid(value);
   }
   static const State State_MIN =
-    Response_Transfer_State_State_MIN;
+    Response_State_State_MIN;
   static const State State_MAX =
-    Response_Transfer_State_State_MAX;
+    Response_State_State_MAX;
   static const int State_ARRAYSIZE =
-    Response_Transfer_State_State_ARRAYSIZE;
+    Response_State_State_ARRAYSIZE;
   static inline const ::google::protobuf::EnumDescriptor*
   State_descriptor() {
-    return Response_Transfer_State_descriptor();
+    return Response_State_descriptor();
   }
   static inline const ::std::string& State_Name(State value) {
-    return Response_Transfer_State_Name(value);
+    return Response_State_Name(value);
   }
   static inline bool State_Parse(const ::std::string& name,
       State* value) {
-    return Response_Transfer_State_Parse(name, value);
+    return Response_State_Parse(name, value);
   }
 
   // accessors -------------------------------------------------------
 
-  // required .DataExporter_ns.Response.Transfer.State state = 1;
+  // required .DataExporter_ns.Response.State state = 1;
   inline bool has_state() const;
   inline void clear_state();
   static const int kStateFieldNumber = 1;
-  inline ::DataExporter_ns::Response_Transfer_State state() const;
-  inline void set_state(::DataExporter_ns::Response_Transfer_State value);
+  inline ::DataExporter_ns::Response_State state() const;
+  inline void set_state(::DataExporter_ns::Response_State value);
 
   // required string status = 2;
   inline bool has_status() const;
@@ -496,7 +192,7 @@ class Response_Transfer : public ::google::protobuf::Message {
   inline ::google::protobuf::uint64 size() const;
   inline void set_size(::google::protobuf::uint64 value);
 
-  // @@protoc_insertion_point(class_scope:DataExporter_ns.Response.Transfer)
+  // @@protoc_insertion_point(class_scope:DataExporter_ns.Response)
  private:
   inline void set_has_state();
   inline void clear_has_state();
@@ -527,154 +223,6 @@ class Response_Transfer : public ::google::protobuf::Message {
   friend void protobuf_AssignDesc_Response_2eproto();
   friend void protobuf_ShutdownFile_Response_2eproto();
 
-  void InitAsDefaultInstance();
-  static Response_Transfer* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class Response : public ::google::protobuf::Message {
- public:
-  Response();
-  virtual ~Response();
-
-  Response(const Response& from);
-
-  inline Response& operator=(const Response& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const Response& default_instance();
-
-  void Swap(Response* other);
-
-  // implements Message ----------------------------------------------
-
-  Response* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const Response& from);
-  void MergeFrom(const Response& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  typedef Response_Authorization Authorization;
-  typedef Response_Validation Validation;
-  typedef Response_Transfer Transfer;
-
-  typedef Response_Type Type;
-  static const Type AUTHORIZATION = Response_Type_AUTHORIZATION;
-  static const Type VALIDATION = Response_Type_VALIDATION;
-  static const Type TRANSFER = Response_Type_TRANSFER;
-  static const Type KEEPALIVE = Response_Type_KEEPALIVE;
-  static inline bool Type_IsValid(int value) {
-    return Response_Type_IsValid(value);
-  }
-  static const Type Type_MIN =
-    Response_Type_Type_MIN;
-  static const Type Type_MAX =
-    Response_Type_Type_MAX;
-  static const int Type_ARRAYSIZE =
-    Response_Type_Type_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Type_descriptor() {
-    return Response_Type_descriptor();
-  }
-  static inline const ::std::string& Type_Name(Type value) {
-    return Response_Type_Name(value);
-  }
-  static inline bool Type_Parse(const ::std::string& name,
-      Type* value) {
-    return Response_Type_Parse(name, value);
-  }
-
-  // accessors -------------------------------------------------------
-
-  // required .DataExporter_ns.Response.Type type = 1;
-  inline bool has_type() const;
-  inline void clear_type();
-  static const int kTypeFieldNumber = 1;
-  inline ::DataExporter_ns::Response_Type type() const;
-  inline void set_type(::DataExporter_ns::Response_Type value);
-
-  // optional .DataExporter_ns.Response.Authorization authorization = 2;
-  inline bool has_authorization() const;
-  inline void clear_authorization();
-  static const int kAuthorizationFieldNumber = 2;
-  inline const ::DataExporter_ns::Response_Authorization& authorization() const;
-  inline ::DataExporter_ns::Response_Authorization* mutable_authorization();
-  inline ::DataExporter_ns::Response_Authorization* release_authorization();
-  inline void set_allocated_authorization(::DataExporter_ns::Response_Authorization* authorization);
-
-  // optional .DataExporter_ns.Response.Validation validation = 3;
-  inline bool has_validation() const;
-  inline void clear_validation();
-  static const int kValidationFieldNumber = 3;
-  inline const ::DataExporter_ns::Response_Validation& validation() const;
-  inline ::DataExporter_ns::Response_Validation* mutable_validation();
-  inline ::DataExporter_ns::Response_Validation* release_validation();
-  inline void set_allocated_validation(::DataExporter_ns::Response_Validation* validation);
-
-  // optional .DataExporter_ns.Response.Transfer transfer = 4;
-  inline bool has_transfer() const;
-  inline void clear_transfer();
-  static const int kTransferFieldNumber = 4;
-  inline const ::DataExporter_ns::Response_Transfer& transfer() const;
-  inline ::DataExporter_ns::Response_Transfer* mutable_transfer();
-  inline ::DataExporter_ns::Response_Transfer* release_transfer();
-  inline void set_allocated_transfer(::DataExporter_ns::Response_Transfer* transfer);
-
-  // @@protoc_insertion_point(class_scope:DataExporter_ns.Response)
- private:
-  inline void set_has_type();
-  inline void clear_has_type();
-  inline void set_has_authorization();
-  inline void clear_has_authorization();
-  inline void set_has_validation();
-  inline void clear_has_validation();
-  inline void set_has_transfer();
-  inline void clear_has_transfer();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::DataExporter_ns::Response_Authorization* authorization_;
-  ::DataExporter_ns::Response_Validation* validation_;
-  ::DataExporter_ns::Response_Transfer* transfer_;
-  int type_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
-
-  friend void  protobuf_AddDesc_Response_2eproto();
-  friend void protobuf_AssignDesc_Response_2eproto();
-  friend void protobuf_ShutdownFile_Response_2eproto();
-
   void InitAsDefaultInstance();
   static Response* default_instance_;
 };
@@ -683,273 +231,79 @@ class Response : public ::google::protobuf::Message {
 
 // ===================================================================
 
-// Response_Authorization
-
-// required .DataExporter_ns.Response.Authorization.State state = 1;
-inline bool Response_Authorization::has_state() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void Response_Authorization::set_has_state() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void Response_Authorization::clear_has_state() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void Response_Authorization::clear_state() {
-  state_ = 0;
-  clear_has_state();
-}
-inline ::DataExporter_ns::Response_Authorization_State Response_Authorization::state() const {
-  return static_cast< ::DataExporter_ns::Response_Authorization_State >(state_);
-}
-inline void Response_Authorization::set_state(::DataExporter_ns::Response_Authorization_State value) {
-  assert(::DataExporter_ns::Response_Authorization_State_IsValid(value));
-  set_has_state();
-  state_ = value;
-}
-
-// required string status = 2;
-inline bool Response_Authorization::has_status() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void Response_Authorization::set_has_status() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void Response_Authorization::clear_has_status() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void Response_Authorization::clear_status() {
-  if (status_ != &::google::protobuf::internal::kEmptyString) {
-    status_->clear();
-  }
-  clear_has_status();
-}
-inline const ::std::string& Response_Authorization::status() const {
-  return *status_;
-}
-inline void Response_Authorization::set_status(const ::std::string& value) {
-  set_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    status_ = new ::std::string;
-  }
-  status_->assign(value);
-}
-inline void Response_Authorization::set_status(const char* value) {
-  set_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    status_ = new ::std::string;
-  }
-  status_->assign(value);
-}
-inline void Response_Authorization::set_status(const char* value, size_t size) {
-  set_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    status_ = new ::std::string;
-  }
-  status_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* Response_Authorization::mutable_status() {
-  set_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    status_ = new ::std::string;
-  }
-  return status_;
-}
-inline ::std::string* Response_Authorization::release_status() {
-  clear_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = status_;
-    status_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-inline void Response_Authorization::set_allocated_status(::std::string* status) {
-  if (status_ != &::google::protobuf::internal::kEmptyString) {
-    delete status_;
-  }
-  if (status) {
-    set_has_status();
-    status_ = status;
-  } else {
-    clear_has_status();
-    status_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  }
-}
-
-// -------------------------------------------------------------------
-
-// Response_Validation
-
-// required .DataExporter_ns.Response.Validation.State state = 1;
-inline bool Response_Validation::has_state() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void Response_Validation::set_has_state() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void Response_Validation::clear_has_state() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void Response_Validation::clear_state() {
-  state_ = 0;
-  clear_has_state();
-}
-inline ::DataExporter_ns::Response_Validation_State Response_Validation::state() const {
-  return static_cast< ::DataExporter_ns::Response_Validation_State >(state_);
-}
-inline void Response_Validation::set_state(::DataExporter_ns::Response_Validation_State value) {
-  assert(::DataExporter_ns::Response_Validation_State_IsValid(value));
-  set_has_state();
-  state_ = value;
-}
-
-// required string status = 2;
-inline bool Response_Validation::has_status() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void Response_Validation::set_has_status() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void Response_Validation::clear_has_status() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void Response_Validation::clear_status() {
-  if (status_ != &::google::protobuf::internal::kEmptyString) {
-    status_->clear();
-  }
-  clear_has_status();
-}
-inline const ::std::string& Response_Validation::status() const {
-  return *status_;
-}
-inline void Response_Validation::set_status(const ::std::string& value) {
-  set_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    status_ = new ::std::string;
-  }
-  status_->assign(value);
-}
-inline void Response_Validation::set_status(const char* value) {
-  set_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    status_ = new ::std::string;
-  }
-  status_->assign(value);
-}
-inline void Response_Validation::set_status(const char* value, size_t size) {
-  set_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    status_ = new ::std::string;
-  }
-  status_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* Response_Validation::mutable_status() {
-  set_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    status_ = new ::std::string;
-  }
-  return status_;
-}
-inline ::std::string* Response_Validation::release_status() {
-  clear_has_status();
-  if (status_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = status_;
-    status_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-inline void Response_Validation::set_allocated_status(::std::string* status) {
-  if (status_ != &::google::protobuf::internal::kEmptyString) {
-    delete status_;
-  }
-  if (status) {
-    set_has_status();
-    status_ = status;
-  } else {
-    clear_has_status();
-    status_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  }
-}
-
-// -------------------------------------------------------------------
-
-// Response_Transfer
+// Response
 
-// required .DataExporter_ns.Response.Transfer.State state = 1;
-inline bool Response_Transfer::has_state() const {
+// required .DataExporter_ns.Response.State state = 1;
+inline bool Response::has_state() const {
   return (_has_bits_[0] & 0x00000001u) != 0;
 }
-inline void Response_Transfer::set_has_state() {
+inline void Response::set_has_state() {
   _has_bits_[0] |= 0x00000001u;
 }
-inline void Response_Transfer::clear_has_state() {
+inline void Response::clear_has_state() {
   _has_bits_[0] &= ~0x00000001u;
 }
-inline void Response_Transfer::clear_state() {
+inline void Response::clear_state() {
   state_ = 0;
   clear_has_state();
 }
-inline ::DataExporter_ns::Response_Transfer_State Response_Transfer::state() const {
-  return static_cast< ::DataExporter_ns::Response_Transfer_State >(state_);
+inline ::DataExporter_ns::Response_State Response::state() const {
+  return static_cast< ::DataExporter_ns::Response_State >(state_);
 }
-inline void Response_Transfer::set_state(::DataExporter_ns::Response_Transfer_State value) {
-  assert(::DataExporter_ns::Response_Transfer_State_IsValid(value));
+inline void Response::set_state(::DataExporter_ns::Response_State value) {
+  assert(::DataExporter_ns::Response_State_IsValid(value));
   set_has_state();
   state_ = value;
 }
 
 // required string status = 2;
-inline bool Response_Transfer::has_status() const {
+inline bool Response::has_status() const {
   return (_has_bits_[0] & 0x00000002u) != 0;
 }
-inline void Response_Transfer::set_has_status() {
+inline void Response::set_has_status() {
   _has_bits_[0] |= 0x00000002u;
 }
-inline void Response_Transfer::clear_has_status() {
+inline void Response::clear_has_status() {
   _has_bits_[0] &= ~0x00000002u;
 }
-inline void Response_Transfer::clear_status() {
+inline void Response::clear_status() {
   if (status_ != &::google::protobuf::internal::kEmptyString) {
     status_->clear();
   }
   clear_has_status();
 }
-inline const ::std::string& Response_Transfer::status() const {
+inline const ::std::string& Response::status() const {
   return *status_;
 }
-inline void Response_Transfer::set_status(const ::std::string& value) {
+inline void Response::set_status(const ::std::string& value) {
   set_has_status();
   if (status_ == &::google::protobuf::internal::kEmptyString) {
     status_ = new ::std::string;
   }
   status_->assign(value);
 }
-inline void Response_Transfer::set_status(const char* value) {
+inline void Response::set_status(const char* value) {
   set_has_status();
   if (status_ == &::google::protobuf::internal::kEmptyString) {
     status_ = new ::std::string;
   }
   status_->assign(value);
 }
-inline void Response_Transfer::set_status(const char* value, size_t size) {
+inline void Response::set_status(const char* value, size_t size) {
   set_has_status();
   if (status_ == &::google::protobuf::internal::kEmptyString) {
     status_ = new ::std::string;
   }
   status_->assign(reinterpret_cast<const char*>(value), size);
 }
-inline ::std::string* Response_Transfer::mutable_status() {
+inline ::std::string* Response::mutable_status() {
   set_has_status();
   if (status_ == &::google::protobuf::internal::kEmptyString) {
     status_ = new ::std::string;
   }
   return status_;
 }
-inline ::std::string* Response_Transfer::release_status() {
+inline ::std::string* Response::release_status() {
   clear_has_status();
   if (status_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
@@ -959,7 +313,7 @@ inline ::std::string* Response_Transfer::release_status() {
     return temp;
   }
 }
-inline void Response_Transfer::set_allocated_status(::std::string* status) {
+inline void Response::set_allocated_status(::std::string* status) {
   if (status_ != &::google::protobuf::internal::kEmptyString) {
     delete status_;
   }
@@ -973,53 +327,53 @@ inline void Response_Transfer::set_allocated_status(::std::string* status) {
 }
 
 // optional string file_path = 3;
-inline bool Response_Transfer::has_file_path() const {
+inline bool Response::has_file_path() const {
   return (_has_bits_[0] & 0x00000004u) != 0;
 }
-inline void Response_Transfer::set_has_file_path() {
+inline void Response::set_has_file_path() {
   _has_bits_[0] |= 0x00000004u;
 }
-inline void Response_Transfer::clear_has_file_path() {
+inline void Response::clear_has_file_path() {
   _has_bits_[0] &= ~0x00000004u;
 }
-inline void Response_Transfer::clear_file_path() {
+inline void Response::clear_file_path() {
   if (file_path_ != &::google::protobuf::internal::kEmptyString) {
     file_path_->clear();
   }
   clear_has_file_path();
 }
-inline const ::std::string& Response_Transfer::file_path() const {
+inline const ::std::string& Response::file_path() const {
   return *file_path_;
 }
-inline void Response_Transfer::set_file_path(const ::std::string& value) {
+inline void Response::set_file_path(const ::std::string& value) {
   set_has_file_path();
   if (file_path_ == &::google::protobuf::internal::kEmptyString) {
     file_path_ = new ::std::string;
   }
   file_path_->assign(value);
 }
-inline void Response_Transfer::set_file_path(const char* value) {
+inline void Response::set_file_path(const char* value) {
   set_has_file_path();
   if (file_path_ == &::google::protobuf::internal::kEmptyString) {
     file_path_ = new ::std::string;
   }
   file_path_->assign(value);
 }
-inline void Response_Transfer::set_file_path(const char* value, size_t size) {
+inline void Response::set_file_path(const char* value, size_t size) {
   set_has_file_path();
   if (file_path_ == &::google::protobuf::internal::kEmptyString) {
     file_path_ = new ::std::string;
   }
   file_path_->assign(reinterpret_cast<const char*>(value), size);
 }
-inline ::std::string* Response_Transfer::mutable_file_path() {
+inline ::std::string* Response::mutable_file_path() {
   set_has_file_path();
   if (file_path_ == &::google::protobuf::internal::kEmptyString) {
     file_path_ = new ::std::string;
   }
   return file_path_;
 }
-inline ::std::string* Response_Transfer::release_file_path() {
+inline ::std::string* Response::release_file_path() {
   clear_has_file_path();
   if (file_path_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
@@ -1029,7 +383,7 @@ inline ::std::string* Response_Transfer::release_file_path() {
     return temp;
   }
 }
-inline void Response_Transfer::set_allocated_file_path(::std::string* file_path) {
+inline void Response::set_allocated_file_path(::std::string* file_path) {
   if (file_path_ != &::google::protobuf::internal::kEmptyString) {
     delete file_path_;
   }
@@ -1043,75 +397,75 @@ inline void Response_Transfer::set_allocated_file_path(::std::string* file_path)
 }
 
 // optional int32 file_version = 4;
-inline bool Response_Transfer::has_file_version() const {
+inline bool Response::has_file_version() const {
   return (_has_bits_[0] & 0x00000008u) != 0;
 }
-inline void Response_Transfer::set_has_file_version() {
+inline void Response::set_has_file_version() {
   _has_bits_[0] |= 0x00000008u;
 }
-inline void Response_Transfer::clear_has_file_version() {
+inline void Response::clear_has_file_version() {
   _has_bits_[0] &= ~0x00000008u;
 }
-inline void Response_Transfer::clear_file_version() {
+inline void Response::clear_file_version() {
   file_version_ = 0;
   clear_has_file_version();
 }
-inline ::google::protobuf::int32 Response_Transfer::file_version() const {
+inline ::google::protobuf::int32 Response::file_version() const {
   return file_version_;
 }
-inline void Response_Transfer::set_file_version(::google::protobuf::int32 value) {
+inline void Response::set_file_version(::google::protobuf::int32 value) {
   set_has_file_version();
   file_version_ = value;
 }
 
 // optional string file_name = 5;
-inline bool Response_Transfer::has_file_name() const {
+inline bool Response::has_file_name() const {
   return (_has_bits_[0] & 0x00000010u) != 0;
 }
-inline void Response_Transfer::set_has_file_name() {
+inline void Response::set_has_file_name() {
   _has_bits_[0] |= 0x00000010u;
 }
-inline void Response_Transfer::clear_has_file_name() {
+inline void Response::clear_has_file_name() {
   _has_bits_[0] &= ~0x00000010u;
 }
-inline void Response_Transfer::clear_file_name() {
+inline void Response::clear_file_name() {
   if (file_name_ != &::google::protobuf::internal::kEmptyString) {
     file_name_->clear();
   }
   clear_has_file_name();
 }
-inline const ::std::string& Response_Transfer::file_name() const {
+inline const ::std::string& Response::file_name() const {
   return *file_name_;
 }
-inline void Response_Transfer::set_file_name(const ::std::string& value) {
+inline void Response::set_file_name(const ::std::string& value) {
   set_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     file_name_ = new ::std::string;
   }
   file_name_->assign(value);
 }
-inline void Response_Transfer::set_file_name(const char* value) {
+inline void Response::set_file_name(const char* value) {
   set_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     file_name_ = new ::std::string;
   }
   file_name_->assign(value);
 }
-inline void Response_Transfer::set_file_name(const char* value, size_t size) {
+inline void Response::set_file_name(const char* value, size_t size) {
   set_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     file_name_ = new ::std::string;
   }
   file_name_->assign(reinterpret_cast<const char*>(value), size);
 }
-inline ::std::string* Response_Transfer::mutable_file_name() {
+inline ::std::string* Response::mutable_file_name() {
   set_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     file_name_ = new ::std::string;
   }
   return file_name_;
 }
-inline ::std::string* Response_Transfer::release_file_name() {
+inline ::std::string* Response::release_file_name() {
   clear_has_file_name();
   if (file_name_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
@@ -1121,7 +475,7 @@ inline ::std::string* Response_Transfer::release_file_name() {
     return temp;
   }
 }
-inline void Response_Transfer::set_allocated_file_name(::std::string* file_name) {
+inline void Response::set_allocated_file_name(::std::string* file_name) {
   if (file_name_ != &::google::protobuf::internal::kEmptyString) {
     delete file_name_;
   }
@@ -1135,168 +489,27 @@ inline void Response_Transfer::set_allocated_file_name(::std::string* file_name)
 }
 
 // optional uint64 size = 6;
-inline bool Response_Transfer::has_size() const {
+inline bool Response::has_size() const {
   return (_has_bits_[0] & 0x00000020u) != 0;
 }
-inline void Response_Transfer::set_has_size() {
+inline void Response::set_has_size() {
   _has_bits_[0] |= 0x00000020u;
 }
-inline void Response_Transfer::clear_has_size() {
+inline void Response::clear_has_size() {
   _has_bits_[0] &= ~0x00000020u;
 }
-inline void Response_Transfer::clear_size() {
+inline void Response::clear_size() {
   size_ = GOOGLE_ULONGLONG(0);
   clear_has_size();
 }
-inline ::google::protobuf::uint64 Response_Transfer::size() const {
+inline ::google::protobuf::uint64 Response::size() const {
   return size_;
 }
-inline void Response_Transfer::set_size(::google::protobuf::uint64 value) {
+inline void Response::set_size(::google::protobuf::uint64 value) {
   set_has_size();
   size_ = value;
 }
 
-// -------------------------------------------------------------------
-
-// Response
-
-// required .DataExporter_ns.Response.Type type = 1;
-inline bool Response::has_type() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void Response::set_has_type() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void Response::clear_has_type() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void Response::clear_type() {
-  type_ = 0;
-  clear_has_type();
-}
-inline ::DataExporter_ns::Response_Type Response::type() const {
-  return static_cast< ::DataExporter_ns::Response_Type >(type_);
-}
-inline void Response::set_type(::DataExporter_ns::Response_Type value) {
-  assert(::DataExporter_ns::Response_Type_IsValid(value));
-  set_has_type();
-  type_ = value;
-}
-
-// optional .DataExporter_ns.Response.Authorization authorization = 2;
-inline bool Response::has_authorization() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void Response::set_has_authorization() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void Response::clear_has_authorization() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void Response::clear_authorization() {
-  if (authorization_ != NULL) authorization_->::DataExporter_ns::Response_Authorization::Clear();
-  clear_has_authorization();
-}
-inline const ::DataExporter_ns::Response_Authorization& Response::authorization() const {
-  return authorization_ != NULL ? *authorization_ : *default_instance_->authorization_;
-}
-inline ::DataExporter_ns::Response_Authorization* Response::mutable_authorization() {
-  set_has_authorization();
-  if (authorization_ == NULL) authorization_ = new ::DataExporter_ns::Response_Authorization;
-  return authorization_;
-}
-inline ::DataExporter_ns::Response_Authorization* Response::release_authorization() {
-  clear_has_authorization();
-  ::DataExporter_ns::Response_Authorization* temp = authorization_;
-  authorization_ = NULL;
-  return temp;
-}
-inline void Response::set_allocated_authorization(::DataExporter_ns::Response_Authorization* authorization) {
-  delete authorization_;
-  authorization_ = authorization;
-  if (authorization) {
-    set_has_authorization();
-  } else {
-    clear_has_authorization();
-  }
-}
-
-// optional .DataExporter_ns.Response.Validation validation = 3;
-inline bool Response::has_validation() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void Response::set_has_validation() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void Response::clear_has_validation() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void Response::clear_validation() {
-  if (validation_ != NULL) validation_->::DataExporter_ns::Response_Validation::Clear();
-  clear_has_validation();
-}
-inline const ::DataExporter_ns::Response_Validation& Response::validation() const {
-  return validation_ != NULL ? *validation_ : *default_instance_->validation_;
-}
-inline ::DataExporter_ns::Response_Validation* Response::mutable_validation() {
-  set_has_validation();
-  if (validation_ == NULL) validation_ = new ::DataExporter_ns::Response_Validation;
-  return validation_;
-}
-inline ::DataExporter_ns::Response_Validation* Response::release_validation() {
-  clear_has_validation();
-  ::DataExporter_ns::Response_Validation* temp = validation_;
-  validation_ = NULL;
-  return temp;
-}
-inline void Response::set_allocated_validation(::DataExporter_ns::Response_Validation* validation) {
-  delete validation_;
-  validation_ = validation;
-  if (validation) {
-    set_has_validation();
-  } else {
-    clear_has_validation();
-  }
-}
-
-// optional .DataExporter_ns.Response.Transfer transfer = 4;
-inline bool Response::has_transfer() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void Response::set_has_transfer() {
-  _has_bits_[0] |= 0x00000008u;
-}
-inline void Response::clear_has_transfer() {
-  _has_bits_[0] &= ~0x00000008u;
-}
-inline void Response::clear_transfer() {
-  if (transfer_ != NULL) transfer_->::DataExporter_ns::Response_Transfer::Clear();
-  clear_has_transfer();
-}
-inline const ::DataExporter_ns::Response_Transfer& Response::transfer() const {
-  return transfer_ != NULL ? *transfer_ : *default_instance_->transfer_;
-}
-inline ::DataExporter_ns::Response_Transfer* Response::mutable_transfer() {
-  set_has_transfer();
-  if (transfer_ == NULL) transfer_ = new ::DataExporter_ns::Response_Transfer;
-  return transfer_;
-}
-inline ::DataExporter_ns::Response_Transfer* Response::release_transfer() {
-  clear_has_transfer();
-  ::DataExporter_ns::Response_Transfer* temp = transfer_;
-  transfer_ = NULL;
-  return temp;
-}
-inline void Response::set_allocated_transfer(::DataExporter_ns::Response_Transfer* transfer) {
-  delete transfer_;
-  transfer_ = transfer;
-  if (transfer) {
-    set_has_transfer();
-  } else {
-    clear_has_transfer();
-  }
-}
-
 
 // @@protoc_insertion_point(namespace_scope)
 
@@ -1307,20 +520,8 @@ namespace google {
 namespace protobuf {
 
 template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::DataExporter_ns::Response_Authorization_State>() {
-  return ::DataExporter_ns::Response_Authorization_State_descriptor();
-}
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::DataExporter_ns::Response_Validation_State>() {
-  return ::DataExporter_ns::Response_Validation_State_descriptor();
-}
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::DataExporter_ns::Response_Transfer_State>() {
-  return ::DataExporter_ns::Response_Transfer_State_descriptor();
-}
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::DataExporter_ns::Response_Type>() {
-  return ::DataExporter_ns::Response_Type_descriptor();
+inline const EnumDescriptor* GetEnumDescriptor< ::DataExporter_ns::Response_State>() {
+  return ::DataExporter_ns::Response_State_descriptor();
 }
 
 }  // namespace google
-- 
GitLab