You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2017/05/24 21:34:22 UTC

[12/61] [abbrv] airavata git commit: Add Tenant Profile Thrift Model

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
index 937030b..47b1816 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.cpp
@@ -65,71 +65,71 @@ const char* _kDataProductTypeNames[] = {
 const std::map<int, const char*> _DataProductType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, _kDataProductTypeValues, _kDataProductTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
 
-DataProductModel::~DataProductModel() throw() {
+DataReplicaLocationModel::~DataReplicaLocationModel() throw() {
 }
 
 
-void DataProductModel::__set_productUri(const std::string& val) {
-  this->productUri = val;
-__isset.productUri = true;
+void DataReplicaLocationModel::__set_replicaId(const std::string& val) {
+  this->replicaId = val;
+__isset.replicaId = true;
 }
 
-void DataProductModel::__set_gatewayId(const std::string& val) {
-  this->gatewayId = val;
-__isset.gatewayId = true;
+void DataReplicaLocationModel::__set_productUri(const std::string& val) {
+  this->productUri = val;
+__isset.productUri = true;
 }
 
-void DataProductModel::__set_parentProductUri(const std::string& val) {
-  this->parentProductUri = val;
-__isset.parentProductUri = true;
+void DataReplicaLocationModel::__set_replicaName(const std::string& val) {
+  this->replicaName = val;
+__isset.replicaName = true;
 }
 
-void DataProductModel::__set_productName(const std::string& val) {
-  this->productName = val;
-__isset.productName = true;
+void DataReplicaLocationModel::__set_replicaDescription(const std::string& val) {
+  this->replicaDescription = val;
+__isset.replicaDescription = true;
 }
 
-void DataProductModel::__set_productDescription(const std::string& val) {
-  this->productDescription = val;
-__isset.productDescription = true;
+void DataReplicaLocationModel::__set_creationTime(const int64_t val) {
+  this->creationTime = val;
+__isset.creationTime = true;
 }
 
-void DataProductModel::__set_ownerName(const std::string& val) {
-  this->ownerName = val;
-__isset.ownerName = true;
+void DataReplicaLocationModel::__set_lastModifiedTime(const int64_t val) {
+  this->lastModifiedTime = val;
+__isset.lastModifiedTime = true;
 }
 
-void DataProductModel::__set_dataProductType(const DataProductType::type val) {
-  this->dataProductType = val;
-__isset.dataProductType = true;
+void DataReplicaLocationModel::__set_validUntilTime(const int64_t val) {
+  this->validUntilTime = val;
+__isset.validUntilTime = true;
 }
 
-void DataProductModel::__set_productSize(const int32_t val) {
-  this->productSize = val;
-__isset.productSize = true;
+void DataReplicaLocationModel::__set_replicaLocationCategory(const ReplicaLocationCategory::type val) {
+  this->replicaLocationCategory = val;
+__isset.replicaLocationCategory = true;
 }
 
-void DataProductModel::__set_creationTime(const int64_t val) {
-  this->creationTime = val;
-__isset.creationTime = true;
+void DataReplicaLocationModel::__set_replicaPersistentType(const ReplicaPersistentType::type val) {
+  this->replicaPersistentType = val;
+__isset.replicaPersistentType = true;
 }
 
-void DataProductModel::__set_lastModifiedTime(const int64_t val) {
-  this->lastModifiedTime = val;
-__isset.lastModifiedTime = true;
+void DataReplicaLocationModel::__set_storageResourceId(const std::string& val) {
+  this->storageResourceId = val;
+__isset.storageResourceId = true;
 }
 
-void DataProductModel::__set_productMetadata(const std::map<std::string, std::string> & val) {
-  this->productMetadata = val;
-__isset.productMetadata = true;
+void DataReplicaLocationModel::__set_filePath(const std::string& val) {
+  this->filePath = val;
+__isset.filePath = true;
 }
 
-void DataProductModel::__set_replicaLocations(const std::vector<DataReplicaLocationModel> & val) {
-  this->replicaLocations = val;
-__isset.replicaLocations = true;
+void DataReplicaLocationModel::__set_replicaMetadata(const std::map<std::string, std::string> & val) {
+  this->replicaMetadata = val;
+__isset.replicaMetadata = true;
 }
 
-uint32_t DataProductModel::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -152,125 +152,115 @@ uint32_t DataProductModel::read(::apache::thrift::protocol::TProtocol* iprot) {
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->productUri);
-          this->__isset.productUri = true;
+          xfer += iprot->readString(this->replicaId);
+          this->__isset.replicaId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayId);
-          this->__isset.gatewayId = true;
+          xfer += iprot->readString(this->productUri);
+          this->__isset.productUri = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->parentProductUri);
-          this->__isset.parentProductUri = true;
+          xfer += iprot->readString(this->replicaName);
+          this->__isset.replicaName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->productName);
-          this->__isset.productName = true;
+          xfer += iprot->readString(this->replicaDescription);
+          this->__isset.replicaDescription = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 5:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->productDescription);
-          this->__isset.productDescription = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->creationTime);
+          this->__isset.creationTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 6:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->ownerName);
-          this->__isset.ownerName = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->lastModifiedTime);
+          this->__isset.lastModifiedTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 7:
-        if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast0;
-          xfer += iprot->readI32(ecast0);
-          this->dataProductType = (DataProductType::type)ecast0;
-          this->__isset.dataProductType = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->validUntilTime);
+          this->__isset.validUntilTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 8:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          xfer += iprot->readI32(this->productSize);
-          this->__isset.productSize = true;
+          int32_t ecast0;
+          xfer += iprot->readI32(ecast0);
+          this->replicaLocationCategory = (ReplicaLocationCategory::type)ecast0;
+          this->__isset.replicaLocationCategory = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 9:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->creationTime);
-          this->__isset.creationTime = true;
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast1;
+          xfer += iprot->readI32(ecast1);
+          this->replicaPersistentType = (ReplicaPersistentType::type)ecast1;
+          this->__isset.replicaPersistentType = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 10:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->lastModifiedTime);
-          this->__isset.lastModifiedTime = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->storageResourceId);
+          this->__isset.storageResourceId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 11:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
-          {
-            this->productMetadata.clear();
-            uint32_t _size1;
-            ::apache::thrift::protocol::TType _ktype2;
-            ::apache::thrift::protocol::TType _vtype3;
-            xfer += iprot->readMapBegin(_ktype2, _vtype3, _size1);
-            uint32_t _i5;
-            for (_i5 = 0; _i5 < _size1; ++_i5)
-            {
-              std::string _key6;
-              xfer += iprot->readString(_key6);
-              std::string& _val7 = this->productMetadata[_key6];
-              xfer += iprot->readString(_val7);
-            }
-            xfer += iprot->readMapEnd();
-          }
-          this->__isset.productMetadata = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->filePath);
+          this->__isset.filePath = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 12:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
-            this->replicaLocations.clear();
-            uint32_t _size8;
-            ::apache::thrift::protocol::TType _etype11;
-            xfer += iprot->readListBegin(_etype11, _size8);
-            this->replicaLocations.resize(_size8);
-            uint32_t _i12;
-            for (_i12 = 0; _i12 < _size8; ++_i12)
+            this->replicaMetadata.clear();
+            uint32_t _size2;
+            ::apache::thrift::protocol::TType _ktype3;
+            ::apache::thrift::protocol::TType _vtype4;
+            xfer += iprot->readMapBegin(_ktype3, _vtype4, _size2);
+            uint32_t _i6;
+            for (_i6 = 0; _i6 < _size2; ++_i6)
             {
-              xfer += this->replicaLocations[_i12].read(iprot);
+              std::string _key7;
+              xfer += iprot->readString(_key7);
+              std::string& _val8 = this->replicaMetadata[_key7];
+              xfer += iprot->readString(_val8);
             }
-            xfer += iprot->readListEnd();
+            xfer += iprot->readMapEnd();
           }
-          this->__isset.replicaLocations = true;
+          this->__isset.replicaMetadata = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -287,225 +277,217 @@ uint32_t DataProductModel::read(::apache::thrift::protocol::TProtocol* iprot) {
   return xfer;
 }
 
-uint32_t DataProductModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t DataReplicaLocationModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("DataProductModel");
+  xfer += oprot->writeStructBegin("DataReplicaLocationModel");
 
+  if (this->__isset.replicaId) {
+    xfer += oprot->writeFieldBegin("replicaId", ::apache::thrift::protocol::T_STRING, 1);
+    xfer += oprot->writeString(this->replicaId);
+    xfer += oprot->writeFieldEnd();
+  }
   if (this->__isset.productUri) {
-    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 1);
+    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
     xfer += oprot->writeString(this->productUri);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.gatewayId) {
-    xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
-    xfer += oprot->writeString(this->gatewayId);
+  if (this->__isset.replicaName) {
+    xfer += oprot->writeFieldBegin("replicaName", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->replicaName);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.parentProductUri) {
-    xfer += oprot->writeFieldBegin("parentProductUri", ::apache::thrift::protocol::T_STRING, 3);
-    xfer += oprot->writeString(this->parentProductUri);
+  if (this->__isset.replicaDescription) {
+    xfer += oprot->writeFieldBegin("replicaDescription", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->replicaDescription);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.productName) {
-    xfer += oprot->writeFieldBegin("productName", ::apache::thrift::protocol::T_STRING, 4);
-    xfer += oprot->writeString(this->productName);
+  if (this->__isset.creationTime) {
+    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 5);
+    xfer += oprot->writeI64(this->creationTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.productDescription) {
-    xfer += oprot->writeFieldBegin("productDescription", ::apache::thrift::protocol::T_STRING, 5);
-    xfer += oprot->writeString(this->productDescription);
+  if (this->__isset.lastModifiedTime) {
+    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 6);
+    xfer += oprot->writeI64(this->lastModifiedTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.ownerName) {
-    xfer += oprot->writeFieldBegin("ownerName", ::apache::thrift::protocol::T_STRING, 6);
-    xfer += oprot->writeString(this->ownerName);
+  if (this->__isset.validUntilTime) {
+    xfer += oprot->writeFieldBegin("validUntilTime", ::apache::thrift::protocol::T_I64, 7);
+    xfer += oprot->writeI64(this->validUntilTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.dataProductType) {
-    xfer += oprot->writeFieldBegin("dataProductType", ::apache::thrift::protocol::T_I32, 7);
-    xfer += oprot->writeI32((int32_t)this->dataProductType);
+  if (this->__isset.replicaLocationCategory) {
+    xfer += oprot->writeFieldBegin("replicaLocationCategory", ::apache::thrift::protocol::T_I32, 8);
+    xfer += oprot->writeI32((int32_t)this->replicaLocationCategory);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.productSize) {
-    xfer += oprot->writeFieldBegin("productSize", ::apache::thrift::protocol::T_I32, 8);
-    xfer += oprot->writeI32(this->productSize);
+  if (this->__isset.replicaPersistentType) {
+    xfer += oprot->writeFieldBegin("replicaPersistentType", ::apache::thrift::protocol::T_I32, 9);
+    xfer += oprot->writeI32((int32_t)this->replicaPersistentType);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.creationTime) {
-    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 9);
-    xfer += oprot->writeI64(this->creationTime);
+  if (this->__isset.storageResourceId) {
+    xfer += oprot->writeFieldBegin("storageResourceId", ::apache::thrift::protocol::T_STRING, 10);
+    xfer += oprot->writeString(this->storageResourceId);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.lastModifiedTime) {
-    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 10);
-    xfer += oprot->writeI64(this->lastModifiedTime);
+  if (this->__isset.filePath) {
+    xfer += oprot->writeFieldBegin("filePath", ::apache::thrift::protocol::T_STRING, 11);
+    xfer += oprot->writeString(this->filePath);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.productMetadata) {
-    xfer += oprot->writeFieldBegin("productMetadata", ::apache::thrift::protocol::T_MAP, 11);
+  if (this->__isset.replicaMetadata) {
+    xfer += oprot->writeFieldBegin("replicaMetadata", ::apache::thrift::protocol::T_MAP, 12);
     {
-      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->productMetadata.size()));
-      std::map<std::string, std::string> ::const_iterator _iter13;
-      for (_iter13 = this->productMetadata.begin(); _iter13 != this->productMetadata.end(); ++_iter13)
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->replicaMetadata.size()));
+      std::map<std::string, std::string> ::const_iterator _iter9;
+      for (_iter9 = this->replicaMetadata.begin(); _iter9 != this->replicaMetadata.end(); ++_iter9)
       {
-        xfer += oprot->writeString(_iter13->first);
-        xfer += oprot->writeString(_iter13->second);
+        xfer += oprot->writeString(_iter9->first);
+        xfer += oprot->writeString(_iter9->second);
       }
       xfer += oprot->writeMapEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaLocations) {
-    xfer += oprot->writeFieldBegin("replicaLocations", ::apache::thrift::protocol::T_LIST, 12);
-    {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->replicaLocations.size()));
-      std::vector<DataReplicaLocationModel> ::const_iterator _iter14;
-      for (_iter14 = this->replicaLocations.begin(); _iter14 != this->replicaLocations.end(); ++_iter14)
-      {
-        xfer += (*_iter14).write(oprot);
-      }
-      xfer += oprot->writeListEnd();
-    }
-    xfer += oprot->writeFieldEnd();
-  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
-void swap(DataProductModel &a, DataProductModel &b) {
+void swap(DataReplicaLocationModel &a, DataReplicaLocationModel &b) {
   using ::std::swap;
+  swap(a.replicaId, b.replicaId);
   swap(a.productUri, b.productUri);
-  swap(a.gatewayId, b.gatewayId);
-  swap(a.parentProductUri, b.parentProductUri);
-  swap(a.productName, b.productName);
-  swap(a.productDescription, b.productDescription);
-  swap(a.ownerName, b.ownerName);
-  swap(a.dataProductType, b.dataProductType);
-  swap(a.productSize, b.productSize);
+  swap(a.replicaName, b.replicaName);
+  swap(a.replicaDescription, b.replicaDescription);
   swap(a.creationTime, b.creationTime);
   swap(a.lastModifiedTime, b.lastModifiedTime);
-  swap(a.productMetadata, b.productMetadata);
-  swap(a.replicaLocations, b.replicaLocations);
+  swap(a.validUntilTime, b.validUntilTime);
+  swap(a.replicaLocationCategory, b.replicaLocationCategory);
+  swap(a.replicaPersistentType, b.replicaPersistentType);
+  swap(a.storageResourceId, b.storageResourceId);
+  swap(a.filePath, b.filePath);
+  swap(a.replicaMetadata, b.replicaMetadata);
   swap(a.__isset, b.__isset);
 }
 
-DataProductModel::DataProductModel(const DataProductModel& other15) {
-  productUri = other15.productUri;
-  gatewayId = other15.gatewayId;
-  parentProductUri = other15.parentProductUri;
-  productName = other15.productName;
-  productDescription = other15.productDescription;
-  ownerName = other15.ownerName;
-  dataProductType = other15.dataProductType;
-  productSize = other15.productSize;
-  creationTime = other15.creationTime;
-  lastModifiedTime = other15.lastModifiedTime;
-  productMetadata = other15.productMetadata;
-  replicaLocations = other15.replicaLocations;
-  __isset = other15.__isset;
-}
-DataProductModel& DataProductModel::operator=(const DataProductModel& other16) {
-  productUri = other16.productUri;
-  gatewayId = other16.gatewayId;
-  parentProductUri = other16.parentProductUri;
-  productName = other16.productName;
-  productDescription = other16.productDescription;
-  ownerName = other16.ownerName;
-  dataProductType = other16.dataProductType;
-  productSize = other16.productSize;
-  creationTime = other16.creationTime;
-  lastModifiedTime = other16.lastModifiedTime;
-  productMetadata = other16.productMetadata;
-  replicaLocations = other16.replicaLocations;
-  __isset = other16.__isset;
+DataReplicaLocationModel::DataReplicaLocationModel(const DataReplicaLocationModel& other10) {
+  replicaId = other10.replicaId;
+  productUri = other10.productUri;
+  replicaName = other10.replicaName;
+  replicaDescription = other10.replicaDescription;
+  creationTime = other10.creationTime;
+  lastModifiedTime = other10.lastModifiedTime;
+  validUntilTime = other10.validUntilTime;
+  replicaLocationCategory = other10.replicaLocationCategory;
+  replicaPersistentType = other10.replicaPersistentType;
+  storageResourceId = other10.storageResourceId;
+  filePath = other10.filePath;
+  replicaMetadata = other10.replicaMetadata;
+  __isset = other10.__isset;
+}
+DataReplicaLocationModel& DataReplicaLocationModel::operator=(const DataReplicaLocationModel& other11) {
+  replicaId = other11.replicaId;
+  productUri = other11.productUri;
+  replicaName = other11.replicaName;
+  replicaDescription = other11.replicaDescription;
+  creationTime = other11.creationTime;
+  lastModifiedTime = other11.lastModifiedTime;
+  validUntilTime = other11.validUntilTime;
+  replicaLocationCategory = other11.replicaLocationCategory;
+  replicaPersistentType = other11.replicaPersistentType;
+  storageResourceId = other11.storageResourceId;
+  filePath = other11.filePath;
+  replicaMetadata = other11.replicaMetadata;
+  __isset = other11.__isset;
   return *this;
 }
-void DataProductModel::printTo(std::ostream& out) const {
+void DataReplicaLocationModel::printTo(std::ostream& out) const {
   using ::apache::thrift::to_string;
-  out << "DataProductModel(";
-  out << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
-  out << ", " << "gatewayId="; (__isset.gatewayId ? (out << to_string(gatewayId)) : (out << "<null>"));
-  out << ", " << "parentProductUri="; (__isset.parentProductUri ? (out << to_string(parentProductUri)) : (out << "<null>"));
-  out << ", " << "productName="; (__isset.productName ? (out << to_string(productName)) : (out << "<null>"));
-  out << ", " << "productDescription="; (__isset.productDescription ? (out << to_string(productDescription)) : (out << "<null>"));
-  out << ", " << "ownerName="; (__isset.ownerName ? (out << to_string(ownerName)) : (out << "<null>"));
-  out << ", " << "dataProductType="; (__isset.dataProductType ? (out << to_string(dataProductType)) : (out << "<null>"));
-  out << ", " << "productSize="; (__isset.productSize ? (out << to_string(productSize)) : (out << "<null>"));
+  out << "DataReplicaLocationModel(";
+  out << "replicaId="; (__isset.replicaId ? (out << to_string(replicaId)) : (out << "<null>"));
+  out << ", " << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
+  out << ", " << "replicaName="; (__isset.replicaName ? (out << to_string(replicaName)) : (out << "<null>"));
+  out << ", " << "replicaDescription="; (__isset.replicaDescription ? (out << to_string(replicaDescription)) : (out << "<null>"));
   out << ", " << "creationTime="; (__isset.creationTime ? (out << to_string(creationTime)) : (out << "<null>"));
   out << ", " << "lastModifiedTime="; (__isset.lastModifiedTime ? (out << to_string(lastModifiedTime)) : (out << "<null>"));
-  out << ", " << "productMetadata="; (__isset.productMetadata ? (out << to_string(productMetadata)) : (out << "<null>"));
-  out << ", " << "replicaLocations="; (__isset.replicaLocations ? (out << to_string(replicaLocations)) : (out << "<null>"));
+  out << ", " << "validUntilTime="; (__isset.validUntilTime ? (out << to_string(validUntilTime)) : (out << "<null>"));
+  out << ", " << "replicaLocationCategory="; (__isset.replicaLocationCategory ? (out << to_string(replicaLocationCategory)) : (out << "<null>"));
+  out << ", " << "replicaPersistentType="; (__isset.replicaPersistentType ? (out << to_string(replicaPersistentType)) : (out << "<null>"));
+  out << ", " << "storageResourceId="; (__isset.storageResourceId ? (out << to_string(storageResourceId)) : (out << "<null>"));
+  out << ", " << "filePath="; (__isset.filePath ? (out << to_string(filePath)) : (out << "<null>"));
+  out << ", " << "replicaMetadata="; (__isset.replicaMetadata ? (out << to_string(replicaMetadata)) : (out << "<null>"));
   out << ")";
 }
 
 
-DataReplicaLocationModel::~DataReplicaLocationModel() throw() {
+DataProductModel::~DataProductModel() throw() {
 }
 
 
-void DataReplicaLocationModel::__set_replicaId(const std::string& val) {
-  this->replicaId = val;
-__isset.replicaId = true;
-}
-
-void DataReplicaLocationModel::__set_productUri(const std::string& val) {
+void DataProductModel::__set_productUri(const std::string& val) {
   this->productUri = val;
 __isset.productUri = true;
 }
 
-void DataReplicaLocationModel::__set_replicaName(const std::string& val) {
-  this->replicaName = val;
-__isset.replicaName = true;
+void DataProductModel::__set_gatewayId(const std::string& val) {
+  this->gatewayId = val;
+__isset.gatewayId = true;
+}
+
+void DataProductModel::__set_parentProductUri(const std::string& val) {
+  this->parentProductUri = val;
+__isset.parentProductUri = true;
 }
 
-void DataReplicaLocationModel::__set_replicaDescription(const std::string& val) {
-  this->replicaDescription = val;
-__isset.replicaDescription = true;
+void DataProductModel::__set_productName(const std::string& val) {
+  this->productName = val;
+__isset.productName = true;
 }
 
-void DataReplicaLocationModel::__set_creationTime(const int64_t val) {
-  this->creationTime = val;
-__isset.creationTime = true;
+void DataProductModel::__set_productDescription(const std::string& val) {
+  this->productDescription = val;
+__isset.productDescription = true;
 }
 
-void DataReplicaLocationModel::__set_lastModifiedTime(const int64_t val) {
-  this->lastModifiedTime = val;
-__isset.lastModifiedTime = true;
+void DataProductModel::__set_ownerName(const std::string& val) {
+  this->ownerName = val;
+__isset.ownerName = true;
 }
 
-void DataReplicaLocationModel::__set_validUntilTime(const int64_t val) {
-  this->validUntilTime = val;
-__isset.validUntilTime = true;
+void DataProductModel::__set_dataProductType(const DataProductType::type val) {
+  this->dataProductType = val;
+__isset.dataProductType = true;
 }
 
-void DataReplicaLocationModel::__set_replicaLocationCategory(const ReplicaLocationCategory::type val) {
-  this->replicaLocationCategory = val;
-__isset.replicaLocationCategory = true;
+void DataProductModel::__set_productSize(const int32_t val) {
+  this->productSize = val;
+__isset.productSize = true;
 }
 
-void DataReplicaLocationModel::__set_replicaPersistentType(const ReplicaPersistentType::type val) {
-  this->replicaPersistentType = val;
-__isset.replicaPersistentType = true;
+void DataProductModel::__set_creationTime(const int64_t val) {
+  this->creationTime = val;
+__isset.creationTime = true;
 }
 
-void DataReplicaLocationModel::__set_storageResourceId(const std::string& val) {
-  this->storageResourceId = val;
-__isset.storageResourceId = true;
+void DataProductModel::__set_lastModifiedTime(const int64_t val) {
+  this->lastModifiedTime = val;
+__isset.lastModifiedTime = true;
 }
 
-void DataReplicaLocationModel::__set_filePath(const std::string& val) {
-  this->filePath = val;
-__isset.filePath = true;
+void DataProductModel::__set_productMetadata(const std::map<std::string, std::string> & val) {
+  this->productMetadata = val;
+__isset.productMetadata = true;
 }
 
-void DataReplicaLocationModel::__set_replicaMetadata(const std::map<std::string, std::string> & val) {
-  this->replicaMetadata = val;
-__isset.replicaMetadata = true;
+void DataProductModel::__set_replicaLocations(const std::vector<DataReplicaLocationModel> & val) {
+  this->replicaLocations = val;
+__isset.replicaLocations = true;
 }
 
-uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t DataProductModel::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -528,115 +510,125 @@ uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* i
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->replicaId);
-          this->__isset.replicaId = true;
+          xfer += iprot->readString(this->productUri);
+          this->__isset.productUri = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->productUri);
-          this->__isset.productUri = true;
+          xfer += iprot->readString(this->gatewayId);
+          this->__isset.gatewayId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->replicaName);
-          this->__isset.replicaName = true;
+          xfer += iprot->readString(this->parentProductUri);
+          this->__isset.parentProductUri = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->replicaDescription);
-          this->__isset.replicaDescription = true;
+          xfer += iprot->readString(this->productName);
+          this->__isset.productName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 5:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->creationTime);
-          this->__isset.creationTime = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->productDescription);
+          this->__isset.productDescription = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 6:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->lastModifiedTime);
-          this->__isset.lastModifiedTime = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->ownerName);
+          this->__isset.ownerName = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 7:
-        if (ftype == ::apache::thrift::protocol::T_I64) {
-          xfer += iprot->readI64(this->validUntilTime);
-          this->__isset.validUntilTime = true;
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast12;
+          xfer += iprot->readI32(ecast12);
+          this->dataProductType = (DataProductType::type)ecast12;
+          this->__isset.dataProductType = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 8:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast17;
-          xfer += iprot->readI32(ecast17);
-          this->replicaLocationCategory = (ReplicaLocationCategory::type)ecast17;
-          this->__isset.replicaLocationCategory = true;
+          xfer += iprot->readI32(this->productSize);
+          this->__isset.productSize = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 9:
-        if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast18;
-          xfer += iprot->readI32(ecast18);
-          this->replicaPersistentType = (ReplicaPersistentType::type)ecast18;
-          this->__isset.replicaPersistentType = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->creationTime);
+          this->__isset.creationTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 10:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->storageResourceId);
-          this->__isset.storageResourceId = true;
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->lastModifiedTime);
+          this->__isset.lastModifiedTime = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 11:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->filePath);
-          this->__isset.filePath = true;
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->productMetadata.clear();
+            uint32_t _size13;
+            ::apache::thrift::protocol::TType _ktype14;
+            ::apache::thrift::protocol::TType _vtype15;
+            xfer += iprot->readMapBegin(_ktype14, _vtype15, _size13);
+            uint32_t _i17;
+            for (_i17 = 0; _i17 < _size13; ++_i17)
+            {
+              std::string _key18;
+              xfer += iprot->readString(_key18);
+              std::string& _val19 = this->productMetadata[_key18];
+              xfer += iprot->readString(_val19);
+            }
+            xfer += iprot->readMapEnd();
+          }
+          this->__isset.productMetadata = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 12:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->replicaMetadata.clear();
-            uint32_t _size19;
-            ::apache::thrift::protocol::TType _ktype20;
-            ::apache::thrift::protocol::TType _vtype21;
-            xfer += iprot->readMapBegin(_ktype20, _vtype21, _size19);
-            uint32_t _i23;
-            for (_i23 = 0; _i23 < _size19; ++_i23)
+            this->replicaLocations.clear();
+            uint32_t _size20;
+            ::apache::thrift::protocol::TType _etype23;
+            xfer += iprot->readListBegin(_etype23, _size20);
+            this->replicaLocations.resize(_size20);
+            uint32_t _i24;
+            for (_i24 = 0; _i24 < _size20; ++_i24)
             {
-              std::string _key24;
-              xfer += iprot->readString(_key24);
-              std::string& _val25 = this->replicaMetadata[_key24];
-              xfer += iprot->readString(_val25);
+              xfer += this->replicaLocations[_i24].read(iprot);
             }
-            xfer += iprot->readMapEnd();
+            xfer += iprot->readListEnd();
           }
-          this->__isset.replicaMetadata = true;
+          this->__isset.replicaLocations = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -653,148 +645,156 @@ uint32_t DataReplicaLocationModel::read(::apache::thrift::protocol::TProtocol* i
   return xfer;
 }
 
-uint32_t DataReplicaLocationModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t DataProductModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("DataReplicaLocationModel");
+  xfer += oprot->writeStructBegin("DataProductModel");
 
-  if (this->__isset.replicaId) {
-    xfer += oprot->writeFieldBegin("replicaId", ::apache::thrift::protocol::T_STRING, 1);
-    xfer += oprot->writeString(this->replicaId);
-    xfer += oprot->writeFieldEnd();
-  }
   if (this->__isset.productUri) {
-    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 1);
     xfer += oprot->writeString(this->productUri);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaName) {
-    xfer += oprot->writeFieldBegin("replicaName", ::apache::thrift::protocol::T_STRING, 3);
-    xfer += oprot->writeString(this->replicaName);
+  if (this->__isset.gatewayId) {
+    xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->gatewayId);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaDescription) {
-    xfer += oprot->writeFieldBegin("replicaDescription", ::apache::thrift::protocol::T_STRING, 4);
-    xfer += oprot->writeString(this->replicaDescription);
+  if (this->__isset.parentProductUri) {
+    xfer += oprot->writeFieldBegin("parentProductUri", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->parentProductUri);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.creationTime) {
-    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 5);
-    xfer += oprot->writeI64(this->creationTime);
+  if (this->__isset.productName) {
+    xfer += oprot->writeFieldBegin("productName", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->productName);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.lastModifiedTime) {
-    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 6);
-    xfer += oprot->writeI64(this->lastModifiedTime);
+  if (this->__isset.productDescription) {
+    xfer += oprot->writeFieldBegin("productDescription", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->productDescription);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.validUntilTime) {
-    xfer += oprot->writeFieldBegin("validUntilTime", ::apache::thrift::protocol::T_I64, 7);
-    xfer += oprot->writeI64(this->validUntilTime);
+  if (this->__isset.ownerName) {
+    xfer += oprot->writeFieldBegin("ownerName", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->ownerName);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaLocationCategory) {
-    xfer += oprot->writeFieldBegin("replicaLocationCategory", ::apache::thrift::protocol::T_I32, 8);
-    xfer += oprot->writeI32((int32_t)this->replicaLocationCategory);
+  if (this->__isset.dataProductType) {
+    xfer += oprot->writeFieldBegin("dataProductType", ::apache::thrift::protocol::T_I32, 7);
+    xfer += oprot->writeI32((int32_t)this->dataProductType);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaPersistentType) {
-    xfer += oprot->writeFieldBegin("replicaPersistentType", ::apache::thrift::protocol::T_I32, 9);
-    xfer += oprot->writeI32((int32_t)this->replicaPersistentType);
+  if (this->__isset.productSize) {
+    xfer += oprot->writeFieldBegin("productSize", ::apache::thrift::protocol::T_I32, 8);
+    xfer += oprot->writeI32(this->productSize);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.storageResourceId) {
-    xfer += oprot->writeFieldBegin("storageResourceId", ::apache::thrift::protocol::T_STRING, 10);
-    xfer += oprot->writeString(this->storageResourceId);
+  if (this->__isset.creationTime) {
+    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 9);
+    xfer += oprot->writeI64(this->creationTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.filePath) {
-    xfer += oprot->writeFieldBegin("filePath", ::apache::thrift::protocol::T_STRING, 11);
-    xfer += oprot->writeString(this->filePath);
+  if (this->__isset.lastModifiedTime) {
+    xfer += oprot->writeFieldBegin("lastModifiedTime", ::apache::thrift::protocol::T_I64, 10);
+    xfer += oprot->writeI64(this->lastModifiedTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.replicaMetadata) {
-    xfer += oprot->writeFieldBegin("replicaMetadata", ::apache::thrift::protocol::T_MAP, 12);
+  if (this->__isset.productMetadata) {
+    xfer += oprot->writeFieldBegin("productMetadata", ::apache::thrift::protocol::T_MAP, 11);
     {
-      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->replicaMetadata.size()));
-      std::map<std::string, std::string> ::const_iterator _iter26;
-      for (_iter26 = this->replicaMetadata.begin(); _iter26 != this->replicaMetadata.end(); ++_iter26)
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->productMetadata.size()));
+      std::map<std::string, std::string> ::const_iterator _iter25;
+      for (_iter25 = this->productMetadata.begin(); _iter25 != this->productMetadata.end(); ++_iter25)
       {
-        xfer += oprot->writeString(_iter26->first);
-        xfer += oprot->writeString(_iter26->second);
+        xfer += oprot->writeString(_iter25->first);
+        xfer += oprot->writeString(_iter25->second);
       }
       xfer += oprot->writeMapEnd();
     }
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.replicaLocations) {
+    xfer += oprot->writeFieldBegin("replicaLocations", ::apache::thrift::protocol::T_LIST, 12);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->replicaLocations.size()));
+      std::vector<DataReplicaLocationModel> ::const_iterator _iter26;
+      for (_iter26 = this->replicaLocations.begin(); _iter26 != this->replicaLocations.end(); ++_iter26)
+      {
+        xfer += (*_iter26).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
-void swap(DataReplicaLocationModel &a, DataReplicaLocationModel &b) {
+void swap(DataProductModel &a, DataProductModel &b) {
   using ::std::swap;
-  swap(a.replicaId, b.replicaId);
   swap(a.productUri, b.productUri);
-  swap(a.replicaName, b.replicaName);
-  swap(a.replicaDescription, b.replicaDescription);
+  swap(a.gatewayId, b.gatewayId);
+  swap(a.parentProductUri, b.parentProductUri);
+  swap(a.productName, b.productName);
+  swap(a.productDescription, b.productDescription);
+  swap(a.ownerName, b.ownerName);
+  swap(a.dataProductType, b.dataProductType);
+  swap(a.productSize, b.productSize);
   swap(a.creationTime, b.creationTime);
   swap(a.lastModifiedTime, b.lastModifiedTime);
-  swap(a.validUntilTime, b.validUntilTime);
-  swap(a.replicaLocationCategory, b.replicaLocationCategory);
-  swap(a.replicaPersistentType, b.replicaPersistentType);
-  swap(a.storageResourceId, b.storageResourceId);
-  swap(a.filePath, b.filePath);
-  swap(a.replicaMetadata, b.replicaMetadata);
+  swap(a.productMetadata, b.productMetadata);
+  swap(a.replicaLocations, b.replicaLocations);
   swap(a.__isset, b.__isset);
 }
 
-DataReplicaLocationModel::DataReplicaLocationModel(const DataReplicaLocationModel& other27) {
-  replicaId = other27.replicaId;
+DataProductModel::DataProductModel(const DataProductModel& other27) {
   productUri = other27.productUri;
-  replicaName = other27.replicaName;
-  replicaDescription = other27.replicaDescription;
+  gatewayId = other27.gatewayId;
+  parentProductUri = other27.parentProductUri;
+  productName = other27.productName;
+  productDescription = other27.productDescription;
+  ownerName = other27.ownerName;
+  dataProductType = other27.dataProductType;
+  productSize = other27.productSize;
   creationTime = other27.creationTime;
   lastModifiedTime = other27.lastModifiedTime;
-  validUntilTime = other27.validUntilTime;
-  replicaLocationCategory = other27.replicaLocationCategory;
-  replicaPersistentType = other27.replicaPersistentType;
-  storageResourceId = other27.storageResourceId;
-  filePath = other27.filePath;
-  replicaMetadata = other27.replicaMetadata;
+  productMetadata = other27.productMetadata;
+  replicaLocations = other27.replicaLocations;
   __isset = other27.__isset;
 }
-DataReplicaLocationModel& DataReplicaLocationModel::operator=(const DataReplicaLocationModel& other28) {
-  replicaId = other28.replicaId;
+DataProductModel& DataProductModel::operator=(const DataProductModel& other28) {
   productUri = other28.productUri;
-  replicaName = other28.replicaName;
-  replicaDescription = other28.replicaDescription;
+  gatewayId = other28.gatewayId;
+  parentProductUri = other28.parentProductUri;
+  productName = other28.productName;
+  productDescription = other28.productDescription;
+  ownerName = other28.ownerName;
+  dataProductType = other28.dataProductType;
+  productSize = other28.productSize;
   creationTime = other28.creationTime;
   lastModifiedTime = other28.lastModifiedTime;
-  validUntilTime = other28.validUntilTime;
-  replicaLocationCategory = other28.replicaLocationCategory;
-  replicaPersistentType = other28.replicaPersistentType;
-  storageResourceId = other28.storageResourceId;
-  filePath = other28.filePath;
-  replicaMetadata = other28.replicaMetadata;
+  productMetadata = other28.productMetadata;
+  replicaLocations = other28.replicaLocations;
   __isset = other28.__isset;
   return *this;
 }
-void DataReplicaLocationModel::printTo(std::ostream& out) const {
+void DataProductModel::printTo(std::ostream& out) const {
   using ::apache::thrift::to_string;
-  out << "DataReplicaLocationModel(";
-  out << "replicaId="; (__isset.replicaId ? (out << to_string(replicaId)) : (out << "<null>"));
-  out << ", " << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
-  out << ", " << "replicaName="; (__isset.replicaName ? (out << to_string(replicaName)) : (out << "<null>"));
-  out << ", " << "replicaDescription="; (__isset.replicaDescription ? (out << to_string(replicaDescription)) : (out << "<null>"));
+  out << "DataProductModel(";
+  out << "productUri="; (__isset.productUri ? (out << to_string(productUri)) : (out << "<null>"));
+  out << ", " << "gatewayId="; (__isset.gatewayId ? (out << to_string(gatewayId)) : (out << "<null>"));
+  out << ", " << "parentProductUri="; (__isset.parentProductUri ? (out << to_string(parentProductUri)) : (out << "<null>"));
+  out << ", " << "productName="; (__isset.productName ? (out << to_string(productName)) : (out << "<null>"));
+  out << ", " << "productDescription="; (__isset.productDescription ? (out << to_string(productDescription)) : (out << "<null>"));
+  out << ", " << "ownerName="; (__isset.ownerName ? (out << to_string(ownerName)) : (out << "<null>"));
+  out << ", " << "dataProductType="; (__isset.dataProductType ? (out << to_string(dataProductType)) : (out << "<null>"));
+  out << ", " << "productSize="; (__isset.productSize ? (out << to_string(productSize)) : (out << "<null>"));
   out << ", " << "creationTime="; (__isset.creationTime ? (out << to_string(creationTime)) : (out << "<null>"));
   out << ", " << "lastModifiedTime="; (__isset.lastModifiedTime ? (out << to_string(lastModifiedTime)) : (out << "<null>"));
-  out << ", " << "validUntilTime="; (__isset.validUntilTime ? (out << to_string(validUntilTime)) : (out << "<null>"));
-  out << ", " << "replicaLocationCategory="; (__isset.replicaLocationCategory ? (out << to_string(replicaLocationCategory)) : (out << "<null>"));
-  out << ", " << "replicaPersistentType="; (__isset.replicaPersistentType ? (out << to_string(replicaPersistentType)) : (out << "<null>"));
-  out << ", " << "storageResourceId="; (__isset.storageResourceId ? (out << to_string(storageResourceId)) : (out << "<null>"));
-  out << ", " << "filePath="; (__isset.filePath ? (out << to_string(filePath)) : (out << "<null>"));
-  out << ", " << "replicaMetadata="; (__isset.replicaMetadata ? (out << to_string(replicaMetadata)) : (out << "<null>"));
+  out << ", " << "productMetadata="; (__isset.productMetadata ? (out << to_string(productMetadata)) : (out << "<null>"));
+  out << ", " << "replicaLocations="; (__isset.replicaLocations ? (out << to_string(replicaLocations)) : (out << "<null>"));
   out << ")";
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
index c30079f..08f853e 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/replica_catalog_models_types.h
@@ -65,145 +65,9 @@ struct DataProductType {
 
 extern const std::map<int, const char*> _DataProductType_VALUES_TO_NAMES;
 
-class DataProductModel;
-
 class DataReplicaLocationModel;
 
-typedef struct _DataProductModel__isset {
-  _DataProductModel__isset() : productUri(false), gatewayId(false), parentProductUri(false), productName(false), productDescription(false), ownerName(false), dataProductType(false), productSize(false), creationTime(false), lastModifiedTime(false), productMetadata(false), replicaLocations(false) {}
-  bool productUri :1;
-  bool gatewayId :1;
-  bool parentProductUri :1;
-  bool productName :1;
-  bool productDescription :1;
-  bool ownerName :1;
-  bool dataProductType :1;
-  bool productSize :1;
-  bool creationTime :1;
-  bool lastModifiedTime :1;
-  bool productMetadata :1;
-  bool replicaLocations :1;
-} _DataProductModel__isset;
-
-class DataProductModel {
- public:
-
-  DataProductModel(const DataProductModel&);
-  DataProductModel& operator=(const DataProductModel&);
-  DataProductModel() : productUri(), gatewayId(), parentProductUri(), productName(), productDescription(), ownerName(), dataProductType((DataProductType::type)0), productSize(0), creationTime(0), lastModifiedTime(0) {
-  }
-
-  virtual ~DataProductModel() throw();
-  std::string productUri;
-  std::string gatewayId;
-  std::string parentProductUri;
-  std::string productName;
-  std::string productDescription;
-  std::string ownerName;
-  DataProductType::type dataProductType;
-  int32_t productSize;
-  int64_t creationTime;
-  int64_t lastModifiedTime;
-  std::map<std::string, std::string>  productMetadata;
-  std::vector<DataReplicaLocationModel>  replicaLocations;
-
-  _DataProductModel__isset __isset;
-
-  void __set_productUri(const std::string& val);
-
-  void __set_gatewayId(const std::string& val);
-
-  void __set_parentProductUri(const std::string& val);
-
-  void __set_productName(const std::string& val);
-
-  void __set_productDescription(const std::string& val);
-
-  void __set_ownerName(const std::string& val);
-
-  void __set_dataProductType(const DataProductType::type val);
-
-  void __set_productSize(const int32_t val);
-
-  void __set_creationTime(const int64_t val);
-
-  void __set_lastModifiedTime(const int64_t val);
-
-  void __set_productMetadata(const std::map<std::string, std::string> & val);
-
-  void __set_replicaLocations(const std::vector<DataReplicaLocationModel> & val);
-
-  bool operator == (const DataProductModel & rhs) const
-  {
-    if (__isset.productUri != rhs.__isset.productUri)
-      return false;
-    else if (__isset.productUri && !(productUri == rhs.productUri))
-      return false;
-    if (__isset.gatewayId != rhs.__isset.gatewayId)
-      return false;
-    else if (__isset.gatewayId && !(gatewayId == rhs.gatewayId))
-      return false;
-    if (__isset.parentProductUri != rhs.__isset.parentProductUri)
-      return false;
-    else if (__isset.parentProductUri && !(parentProductUri == rhs.parentProductUri))
-      return false;
-    if (__isset.productName != rhs.__isset.productName)
-      return false;
-    else if (__isset.productName && !(productName == rhs.productName))
-      return false;
-    if (__isset.productDescription != rhs.__isset.productDescription)
-      return false;
-    else if (__isset.productDescription && !(productDescription == rhs.productDescription))
-      return false;
-    if (__isset.ownerName != rhs.__isset.ownerName)
-      return false;
-    else if (__isset.ownerName && !(ownerName == rhs.ownerName))
-      return false;
-    if (__isset.dataProductType != rhs.__isset.dataProductType)
-      return false;
-    else if (__isset.dataProductType && !(dataProductType == rhs.dataProductType))
-      return false;
-    if (__isset.productSize != rhs.__isset.productSize)
-      return false;
-    else if (__isset.productSize && !(productSize == rhs.productSize))
-      return false;
-    if (__isset.creationTime != rhs.__isset.creationTime)
-      return false;
-    else if (__isset.creationTime && !(creationTime == rhs.creationTime))
-      return false;
-    if (__isset.lastModifiedTime != rhs.__isset.lastModifiedTime)
-      return false;
-    else if (__isset.lastModifiedTime && !(lastModifiedTime == rhs.lastModifiedTime))
-      return false;
-    if (__isset.productMetadata != rhs.__isset.productMetadata)
-      return false;
-    else if (__isset.productMetadata && !(productMetadata == rhs.productMetadata))
-      return false;
-    if (__isset.replicaLocations != rhs.__isset.replicaLocations)
-      return false;
-    else if (__isset.replicaLocations && !(replicaLocations == rhs.replicaLocations))
-      return false;
-    return true;
-  }
-  bool operator != (const DataProductModel &rhs) const {
-    return !(*this == rhs);
-  }
-
-  bool operator < (const DataProductModel & ) const;
-
-  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
-  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
-
-  virtual void printTo(std::ostream& out) const;
-};
-
-void swap(DataProductModel &a, DataProductModel &b);
-
-inline std::ostream& operator<<(std::ostream& out, const DataProductModel& obj)
-{
-  obj.printTo(out);
-  return out;
-}
+class DataProductModel;
 
 typedef struct _DataReplicaLocationModel__isset {
   _DataReplicaLocationModel__isset() : replicaId(false), productUri(false), replicaName(false), replicaDescription(false), creationTime(false), lastModifiedTime(false), validUntilTime(false), replicaLocationCategory(false), replicaPersistentType(false), storageResourceId(false), filePath(false), replicaMetadata(false) {}
@@ -341,6 +205,142 @@ inline std::ostream& operator<<(std::ostream& out, const DataReplicaLocationMode
   return out;
 }
 
+typedef struct _DataProductModel__isset {
+  _DataProductModel__isset() : productUri(false), gatewayId(false), parentProductUri(false), productName(false), productDescription(false), ownerName(false), dataProductType(false), productSize(false), creationTime(false), lastModifiedTime(false), productMetadata(false), replicaLocations(false) {}
+  bool productUri :1;
+  bool gatewayId :1;
+  bool parentProductUri :1;
+  bool productName :1;
+  bool productDescription :1;
+  bool ownerName :1;
+  bool dataProductType :1;
+  bool productSize :1;
+  bool creationTime :1;
+  bool lastModifiedTime :1;
+  bool productMetadata :1;
+  bool replicaLocations :1;
+} _DataProductModel__isset;
+
+class DataProductModel {
+ public:
+
+  DataProductModel(const DataProductModel&);
+  DataProductModel& operator=(const DataProductModel&);
+  DataProductModel() : productUri(), gatewayId(), parentProductUri(), productName(), productDescription(), ownerName(), dataProductType((DataProductType::type)0), productSize(0), creationTime(0), lastModifiedTime(0) {
+  }
+
+  virtual ~DataProductModel() throw();
+  std::string productUri;
+  std::string gatewayId;
+  std::string parentProductUri;
+  std::string productName;
+  std::string productDescription;
+  std::string ownerName;
+  DataProductType::type dataProductType;
+  int32_t productSize;
+  int64_t creationTime;
+  int64_t lastModifiedTime;
+  std::map<std::string, std::string>  productMetadata;
+  std::vector<DataReplicaLocationModel>  replicaLocations;
+
+  _DataProductModel__isset __isset;
+
+  void __set_productUri(const std::string& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  void __set_parentProductUri(const std::string& val);
+
+  void __set_productName(const std::string& val);
+
+  void __set_productDescription(const std::string& val);
+
+  void __set_ownerName(const std::string& val);
+
+  void __set_dataProductType(const DataProductType::type val);
+
+  void __set_productSize(const int32_t val);
+
+  void __set_creationTime(const int64_t val);
+
+  void __set_lastModifiedTime(const int64_t val);
+
+  void __set_productMetadata(const std::map<std::string, std::string> & val);
+
+  void __set_replicaLocations(const std::vector<DataReplicaLocationModel> & val);
+
+  bool operator == (const DataProductModel & rhs) const
+  {
+    if (__isset.productUri != rhs.__isset.productUri)
+      return false;
+    else if (__isset.productUri && !(productUri == rhs.productUri))
+      return false;
+    if (__isset.gatewayId != rhs.__isset.gatewayId)
+      return false;
+    else if (__isset.gatewayId && !(gatewayId == rhs.gatewayId))
+      return false;
+    if (__isset.parentProductUri != rhs.__isset.parentProductUri)
+      return false;
+    else if (__isset.parentProductUri && !(parentProductUri == rhs.parentProductUri))
+      return false;
+    if (__isset.productName != rhs.__isset.productName)
+      return false;
+    else if (__isset.productName && !(productName == rhs.productName))
+      return false;
+    if (__isset.productDescription != rhs.__isset.productDescription)
+      return false;
+    else if (__isset.productDescription && !(productDescription == rhs.productDescription))
+      return false;
+    if (__isset.ownerName != rhs.__isset.ownerName)
+      return false;
+    else if (__isset.ownerName && !(ownerName == rhs.ownerName))
+      return false;
+    if (__isset.dataProductType != rhs.__isset.dataProductType)
+      return false;
+    else if (__isset.dataProductType && !(dataProductType == rhs.dataProductType))
+      return false;
+    if (__isset.productSize != rhs.__isset.productSize)
+      return false;
+    else if (__isset.productSize && !(productSize == rhs.productSize))
+      return false;
+    if (__isset.creationTime != rhs.__isset.creationTime)
+      return false;
+    else if (__isset.creationTime && !(creationTime == rhs.creationTime))
+      return false;
+    if (__isset.lastModifiedTime != rhs.__isset.lastModifiedTime)
+      return false;
+    else if (__isset.lastModifiedTime && !(lastModifiedTime == rhs.lastModifiedTime))
+      return false;
+    if (__isset.productMetadata != rhs.__isset.productMetadata)
+      return false;
+    else if (__isset.productMetadata && !(productMetadata == rhs.productMetadata))
+      return false;
+    if (__isset.replicaLocations != rhs.__isset.replicaLocations)
+      return false;
+    else if (__isset.replicaLocations && !(replicaLocations == rhs.replicaLocations))
+      return false;
+    return true;
+  }
+  bool operator != (const DataProductModel &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const DataProductModel & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  virtual void printTo(std::ostream& out) const;
+};
+
+void swap(DataProductModel &a, DataProductModel &b);
+
+inline std::ostream& operator<<(std::ostream& out, const DataProductModel& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 }}}}} // namespace
 
 #endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.cpp
new file mode 100644
index 0000000..6bae159
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.cpp
@@ -0,0 +1,34 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "tenant_profile_model_constants.h"
+
+namespace apache { namespace airavata { namespace model { namespace tenant {
+
+const tenant_profile_modelConstants g_tenant_profile_model_constants;
+
+tenant_profile_modelConstants::tenant_profile_modelConstants() {
+}
+
+}}}} // namespace
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.h
new file mode 100644
index 0000000..02a121e
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_constants.h
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef tenant_profile_model_CONSTANTS_H
+#define tenant_profile_model_CONSTANTS_H
+
+#include "tenant_profile_model_types.h"
+
+namespace apache { namespace airavata { namespace model { namespace tenant {
+
+class tenant_profile_modelConstants {
+ public:
+  tenant_profile_modelConstants();
+
+};
+
+extern const tenant_profile_modelConstants g_tenant_profile_model_constants;
+
+}}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/ddb95c12/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.cpp
new file mode 100644
index 0000000..284f0d4
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/tenant_profile_model_types.cpp
@@ -0,0 +1,541 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "tenant_profile_model_types.h"
+
+#include <algorithm>
+#include <ostream>
+
+#include <thrift/TToString.h>
+
+namespace apache { namespace airavata { namespace model { namespace tenant {
+
+int _kTenantApprovalStatusValues[] = {
+  TenantApprovalStatus::REQUESTED,
+  TenantApprovalStatus::APPROVED,
+  TenantApprovalStatus::ACTIVE,
+  TenantApprovalStatus::DEACTIVATED,
+  TenantApprovalStatus::CANCELLED,
+  TenantApprovalStatus::DENIED,
+  TenantApprovalStatus::CREATED
+};
+const char* _kTenantApprovalStatusNames[] = {
+  "REQUESTED",
+  "APPROVED",
+  "ACTIVE",
+  "DEACTIVATED",
+  "CANCELLED",
+  "DENIED",
+  "CREATED"
+};
+const std::map<int, const char*> _TenantApprovalStatus_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(7, _kTenantApprovalStatusValues, _kTenantApprovalStatusNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
+
+Tenant::~Tenant() throw() {
+}
+
+
+void Tenant::__set_tenantId(const std::string& val) {
+  this->tenantId = val;
+}
+
+void Tenant::__set_tenantApprovalStatus(const TenantApprovalStatus::type val) {
+  this->tenantApprovalStatus = val;
+}
+
+void Tenant::__set_tenantName(const std::string& val) {
+  this->tenantName = val;
+__isset.tenantName = true;
+}
+
+void Tenant::__set_domain(const std::string& val) {
+  this->domain = val;
+__isset.domain = true;
+}
+
+void Tenant::__set_emailAddress(const std::string& val) {
+  this->emailAddress = val;
+__isset.emailAddress = true;
+}
+
+void Tenant::__set_tenantAcronym(const std::string& val) {
+  this->tenantAcronym = val;
+__isset.tenantAcronym = true;
+}
+
+void Tenant::__set_tenantURL(const std::string& val) {
+  this->tenantURL = val;
+__isset.tenantURL = true;
+}
+
+void Tenant::__set_tenantPublicAbstract(const std::string& val) {
+  this->tenantPublicAbstract = val;
+__isset.tenantPublicAbstract = true;
+}
+
+void Tenant::__set_reviewProposalDescription(const std::string& val) {
+  this->reviewProposalDescription = val;
+__isset.reviewProposalDescription = true;
+}
+
+void Tenant::__set_tenantAdminFirstName(const std::string& val) {
+  this->tenantAdminFirstName = val;
+__isset.tenantAdminFirstName = true;
+}
+
+void Tenant::__set_tenantAdminLastName(const std::string& val) {
+  this->tenantAdminLastName = val;
+__isset.tenantAdminLastName = true;
+}
+
+void Tenant::__set_tenantAdminEmail(const std::string& val) {
+  this->tenantAdminEmail = val;
+__isset.tenantAdminEmail = true;
+}
+
+void Tenant::__set_identityServerUserName(const std::string& val) {
+  this->identityServerUserName = val;
+__isset.identityServerUserName = true;
+}
+
+void Tenant::__set_identityServerPasswordToken(const std::string& val) {
+  this->identityServerPasswordToken = val;
+__isset.identityServerPasswordToken = true;
+}
+
+void Tenant::__set_declinedReason(const std::string& val) {
+  this->declinedReason = val;
+__isset.declinedReason = true;
+}
+
+void Tenant::__set_oauthClientId(const std::string& val) {
+  this->oauthClientId = val;
+__isset.oauthClientId = true;
+}
+
+void Tenant::__set_oauthClientSecret(const std::string& val) {
+  this->oauthClientSecret = val;
+__isset.oauthClientSecret = true;
+}
+
+void Tenant::__set_requestCreationTime(const int64_t val) {
+  this->requestCreationTime = val;
+__isset.requestCreationTime = true;
+}
+
+void Tenant::__set_requesterUsername(const std::string& val) {
+  this->requesterUsername = val;
+__isset.requesterUsername = true;
+}
+
+uint32_t Tenant::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_tenantId = false;
+  bool isset_tenantApprovalStatus = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantId);
+          isset_tenantId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          int32_t ecast0;
+          xfer += iprot->readI32(ecast0);
+          this->tenantApprovalStatus = (TenantApprovalStatus::type)ecast0;
+          isset_tenantApprovalStatus = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantName);
+          this->__isset.tenantName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->domain);
+          this->__isset.domain = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->emailAddress);
+          this->__isset.emailAddress = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantAcronym);
+          this->__isset.tenantAcronym = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantURL);
+          this->__isset.tenantURL = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantPublicAbstract);
+          this->__isset.tenantPublicAbstract = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 9:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->reviewProposalDescription);
+          this->__isset.reviewProposalDescription = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantAdminFirstName);
+          this->__isset.tenantAdminFirstName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 11:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantAdminLastName);
+          this->__isset.tenantAdminLastName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 12:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tenantAdminEmail);
+          this->__isset.tenantAdminEmail = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 13:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->identityServerUserName);
+          this->__isset.identityServerUserName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 14:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->identityServerPasswordToken);
+          this->__isset.identityServerPasswordToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 15:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->declinedReason);
+          this->__isset.declinedReason = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 16:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->oauthClientId);
+          this->__isset.oauthClientId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 17:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->oauthClientSecret);
+          this->__isset.oauthClientSecret = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 18:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->requestCreationTime);
+          this->__isset.requestCreationTime = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 19:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->requesterUsername);
+          this->__isset.requesterUsername = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_tenantId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_tenantApprovalStatus)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Tenant::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Tenant");
+
+  xfer += oprot->writeFieldBegin("tenantId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->tenantId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("tenantApprovalStatus", ::apache::thrift::protocol::T_I32, 2);
+  xfer += oprot->writeI32((int32_t)this->tenantApprovalStatus);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.tenantName) {
+    xfer += oprot->writeFieldBegin("tenantName", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->tenantName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.domain) {
+    xfer += oprot->writeFieldBegin("domain", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->domain);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.emailAddress) {
+    xfer += oprot->writeFieldBegin("emailAddress", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->emailAddress);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantAcronym) {
+    xfer += oprot->writeFieldBegin("tenantAcronym", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->tenantAcronym);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantURL) {
+    xfer += oprot->writeFieldBegin("tenantURL", ::apache::thrift::protocol::T_STRING, 7);
+    xfer += oprot->writeString(this->tenantURL);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantPublicAbstract) {
+    xfer += oprot->writeFieldBegin("tenantPublicAbstract", ::apache::thrift::protocol::T_STRING, 8);
+    xfer += oprot->writeString(this->tenantPublicAbstract);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.reviewProposalDescription) {
+    xfer += oprot->writeFieldBegin("reviewProposalDescription", ::apache::thrift::protocol::T_STRING, 9);
+    xfer += oprot->writeString(this->reviewProposalDescription);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantAdminFirstName) {
+    xfer += oprot->writeFieldBegin("tenantAdminFirstName", ::apache::thrift::protocol::T_STRING, 10);
+    xfer += oprot->writeString(this->tenantAdminFirstName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantAdminLastName) {
+    xfer += oprot->writeFieldBegin("tenantAdminLastName", ::apache::thrift::protocol::T_STRING, 11);
+    xfer += oprot->writeString(this->tenantAdminLastName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.tenantAdminEmail) {
+    xfer += oprot->writeFieldBegin("tenantAdminEmail", ::apache::thrift::protocol::T_STRING, 12);
+    xfer += oprot->writeString(this->tenantAdminEmail);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.identityServerUserName) {
+    xfer += oprot->writeFieldBegin("identityServerUserName", ::apache::thrift::protocol::T_STRING, 13);
+    xfer += oprot->writeString(this->identityServerUserName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.identityServerPasswordToken) {
+    xfer += oprot->writeFieldBegin("identityServerPasswordToken", ::apache::thrift::protocol::T_STRING, 14);
+    xfer += oprot->writeString(this->identityServerPasswordToken);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.declinedReason) {
+    xfer += oprot->writeFieldBegin("declinedReason", ::apache::thrift::protocol::T_STRING, 15);
+    xfer += oprot->writeString(this->declinedReason);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.oauthClientId) {
+    xfer += oprot->writeFieldBegin("oauthClientId", ::apache::thrift::protocol::T_STRING, 16);
+    xfer += oprot->writeString(this->oauthClientId);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.oauthClientSecret) {
+    xfer += oprot->writeFieldBegin("oauthClientSecret", ::apache::thrift::protocol::T_STRING, 17);
+    xfer += oprot->writeString(this->oauthClientSecret);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.requestCreationTime) {
+    xfer += oprot->writeFieldBegin("requestCreationTime", ::apache::thrift::protocol::T_I64, 18);
+    xfer += oprot->writeI64(this->requestCreationTime);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.requesterUsername) {
+    xfer += oprot->writeFieldBegin("requesterUsername", ::apache::thrift::protocol::T_STRING, 19);
+    xfer += oprot->writeString(this->requesterUsername);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(Tenant &a, Tenant &b) {
+  using ::std::swap;
+  swap(a.tenantId, b.tenantId);
+  swap(a.tenantApprovalStatus, b.tenantApprovalStatus);
+  swap(a.tenantName, b.tenantName);
+  swap(a.domain, b.domain);
+  swap(a.emailAddress, b.emailAddress);
+  swap(a.tenantAcronym, b.tenantAcronym);
+  swap(a.tenantURL, b.tenantURL);
+  swap(a.tenantPublicAbstract, b.tenantPublicAbstract);
+  swap(a.reviewProposalDescription, b.reviewProposalDescription);
+  swap(a.tenantAdminFirstName, b.tenantAdminFirstName);
+  swap(a.tenantAdminLastName, b.tenantAdminLastName);
+  swap(a.tenantAdminEmail, b.tenantAdminEmail);
+  swap(a.identityServerUserName, b.identityServerUserName);
+  swap(a.identityServerPasswordToken, b.identityServerPasswordToken);
+  swap(a.declinedReason, b.declinedReason);
+  swap(a.oauthClientId, b.oauthClientId);
+  swap(a.oauthClientSecret, b.oauthClientSecret);
+  swap(a.requestCreationTime, b.requestCreationTime);
+  swap(a.requesterUsername, b.requesterUsername);
+  swap(a.__isset, b.__isset);
+}
+
+Tenant::Tenant(const Tenant& other1) {
+  tenantId = other1.tenantId;
+  tenantApprovalStatus = other1.tenantApprovalStatus;
+  tenantName = other1.tenantName;
+  domain = other1.domain;
+  emailAddress = other1.emailAddress;
+  tenantAcronym = other1.tenantAcronym;
+  tenantURL = other1.tenantURL;
+  tenantPublicAbstract = other1.tenantPublicAbstract;
+  reviewProposalDescription = other1.reviewProposalDescription;
+  tenantAdminFirstName = other1.tenantAdminFirstName;
+  tenantAdminLastName = other1.tenantAdminLastName;
+  tenantAdminEmail = other1.tenantAdminEmail;
+  identityServerUserName = other1.identityServerUserName;
+  identityServerPasswordToken = other1.identityServerPasswordToken;
+  declinedReason = other1.declinedReason;
+  oauthClientId = other1.oauthClientId;
+  oauthClientSecret = other1.oauthClientSecret;
+  requestCreationTime = other1.requestCreationTime;
+  requesterUsername = other1.requesterUsername;
+  __isset = other1.__isset;
+}
+Tenant& Tenant::operator=(const Tenant& other2) {
+  tenantId = other2.tenantId;
+  tenantApprovalStatus = other2.tenantApprovalStatus;
+  tenantName = other2.tenantName;
+  domain = other2.domain;
+  emailAddress = other2.emailAddress;
+  tenantAcronym = other2.tenantAcronym;
+  tenantURL = other2.tenantURL;
+  tenantPublicAbstract = other2.tenantPublicAbstract;
+  reviewProposalDescription = other2.reviewProposalDescription;
+  tenantAdminFirstName = other2.tenantAdminFirstName;
+  tenantAdminLastName = other2.tenantAdminLastName;
+  tenantAdminEmail = other2.tenantAdminEmail;
+  identityServerUserName = other2.identityServerUserName;
+  identityServerPasswordToken = other2.identityServerPasswordToken;
+  declinedReason = other2.declinedReason;
+  oauthClientId = other2.oauthClientId;
+  oauthClientSecret = other2.oauthClientSecret;
+  requestCreationTime = other2.requestCreationTime;
+  requesterUsername = other2.requesterUsername;
+  __isset = other2.__isset;
+  return *this;
+}
+void Tenant::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "Tenant(";
+  out << "tenantId=" << to_string(tenantId);
+  out << ", " << "tenantApprovalStatus=" << to_string(tenantApprovalStatus);
+  out << ", " << "tenantName="; (__isset.tenantName ? (out << to_string(tenantName)) : (out << "<null>"));
+  out << ", " << "domain="; (__isset.domain ? (out << to_string(domain)) : (out << "<null>"));
+  out << ", " << "emailAddress="; (__isset.emailAddress ? (out << to_string(emailAddress)) : (out << "<null>"));
+  out << ", " << "tenantAcronym="; (__isset.tenantAcronym ? (out << to_string(tenantAcronym)) : (out << "<null>"));
+  out << ", " << "tenantURL="; (__isset.tenantURL ? (out << to_string(tenantURL)) : (out << "<null>"));
+  out << ", " << "tenantPublicAbstract="; (__isset.tenantPublicAbstract ? (out << to_string(tenantPublicAbstract)) : (out << "<null>"));
+  out << ", " << "reviewProposalDescription="; (__isset.reviewProposalDescription ? (out << to_string(reviewProposalDescription)) : (out << "<null>"));
+  out << ", " << "tenantAdminFirstName="; (__isset.tenantAdminFirstName ? (out << to_string(tenantAdminFirstName)) : (out << "<null>"));
+  out << ", " << "tenantAdminLastName="; (__isset.tenantAdminLastName ? (out << to_string(tenantAdminLastName)) : (out << "<null>"));
+  out << ", " << "tenantAdminEmail="; (__isset.tenantAdminEmail ? (out << to_string(tenantAdminEmail)) : (out << "<null>"));
+  out << ", " << "identityServerUserName="; (__isset.identityServerUserName ? (out << to_string(identityServerUserName)) : (out << "<null>"));
+  out << ", " << "identityServerPasswordToken="; (__isset.identityServerPasswordToken ? (out << to_string(identityServerPasswordToken)) : (out << "<null>"));
+  out << ", " << "declinedReason="; (__isset.declinedReason ? (out << to_string(declinedReason)) : (out << "<null>"));
+  out << ", " << "oauthClientId="; (__isset.oauthClientId ? (out << to_string(oauthClientId)) : (out << "<null>"));
+  out << ", " << "oauthClientSecret="; (__isset.oauthClientSecret ? (out << to_string(oauthClientSecret)) : (out << "<null>"));
+  out << ", " << "requestCreationTime="; (__isset.requestCreationTime ? (out << to_string(requestCreationTime)) : (out << "<null>"));
+  out << ", " << "requesterUsername="; (__isset.requesterUsername ? (out << to_string(requesterUsername)) : (out << "<null>"));
+  out << ")";
+}
+
+}}}} // namespace