You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2015/07/21 06:41:59 UTC

[16/44] airavata git commit: changing few API methods to adhere to security solution.

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index 8ae2a78..a063250 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -310,6 +310,7 @@ uint32_t Airavata_addGateway_args::read(::apache::thrift::protocol::TProtocol* i
 
   using ::apache::thrift::protocol::TProtocolException;
 
+  bool isset_authzToken = false;
   bool isset_gateway = false;
 
   while (true)
@@ -322,6 +323,14 @@ uint32_t Airavata_addGateway_args::read(::apache::thrift::protocol::TProtocol* i
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->gateway.read(iprot);
           isset_gateway = true;
         } else {
@@ -337,6 +346,8 @@ uint32_t Airavata_addGateway_args::read(::apache::thrift::protocol::TProtocol* i
 
   xfer += iprot->readStructEnd();
 
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gateway)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
@@ -347,7 +358,11 @@ uint32_t Airavata_addGateway_args::write(::apache::thrift::protocol::TProtocol*
   oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Airavata_addGateway_args");
 
-  xfer += oprot->writeFieldBegin("gateway", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gateway", ::apache::thrift::protocol::T_STRUCT, 2);
   xfer += this->gateway.write(oprot);
   xfer += oprot->writeFieldEnd();
 
@@ -367,7 +382,11 @@ uint32_t Airavata_addGateway_pargs::write(::apache::thrift::protocol::TProtocol*
   oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Airavata_addGateway_pargs");
 
-  xfer += oprot->writeFieldBegin("gateway", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gateway", ::apache::thrift::protocol::T_STRUCT, 2);
   xfer += (*(this->gateway)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
@@ -434,6 +453,14 @@ uint32_t Airavata_addGateway_result::read(::apache::thrift::protocol::TProtocol*
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -468,6 +495,10 @@ uint32_t Airavata_addGateway_result::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -531,6 +562,14 @@ uint32_t Airavata_addGateway_presult::read(::apache::thrift::protocol::TProtocol
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -559,6 +598,7 @@ uint32_t Airavata_updateGateway_args::read(::apache::thrift::protocol::TProtocol
 
   using ::apache::thrift::protocol::TProtocolException;
 
+  bool isset_authzToken = false;
   bool isset_gatewayId = false;
   bool isset_updatedGateway = false;
 
@@ -571,6 +611,14 @@ uint32_t Airavata_updateGateway_args::read(::apache::thrift::protocol::TProtocol
     switch (fid)
     {
       case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->gatewayId);
           isset_gatewayId = true;
@@ -578,7 +626,7 @@ uint32_t Airavata_updateGateway_args::read(::apache::thrift::protocol::TProtocol
           xfer += iprot->skip(ftype);
         }
         break;
-      case 2:
+      case 3:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->updatedGateway.read(iprot);
           isset_updatedGateway = true;
@@ -595,6 +643,8 @@ uint32_t Airavata_updateGateway_args::read(::apache::thrift::protocol::TProtocol
 
   xfer += iprot->readStructEnd();
 
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_updatedGateway)
@@ -607,11 +657,15 @@ uint32_t Airavata_updateGateway_args::write(::apache::thrift::protocol::TProtoco
   oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Airavata_updateGateway_args");
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
   xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("updatedGateway", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += oprot->writeFieldBegin("updatedGateway", ::apache::thrift::protocol::T_STRUCT, 3);
   xfer += this->updatedGateway.write(oprot);
   xfer += oprot->writeFieldEnd();
 
@@ -631,11 +685,15 @@ uint32_t Airavata_updateGateway_pargs::write(::apache::thrift::protocol::TProtoc
   oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Airavata_updateGateway_pargs");
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
   xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("updatedGateway", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += oprot->writeFieldBegin("updatedGateway", ::apache::thrift::protocol::T_STRUCT, 3);
   xfer += (*(this->updatedGateway)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
@@ -694,6 +752,14 @@ uint32_t Airavata_updateGateway_result::read(::apache::thrift::protocol::TProtoc
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -724,6 +790,10 @@ uint32_t Airavata_updateGateway_result::write(::apache::thrift::protocol::TProto
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -779,6 +849,14 @@ uint32_t Airavata_updateGateway_presult::read(::apache::thrift::protocol::TProto
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -807,6 +885,7 @@ uint32_t Airavata_getGateway_args::read(::apache::thrift::protocol::TProtocol* i
 
   using ::apache::thrift::protocol::TProtocolException;
 
+  bool isset_authzToken = false;
   bool isset_gatewayId = false;
 
   while (true)
@@ -818,6 +897,14 @@ uint32_t Airavata_getGateway_args::read(::apache::thrift::protocol::TProtocol* i
     switch (fid)
     {
       case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
           xfer += iprot->readString(this->gatewayId);
           isset_gatewayId = true;
@@ -834,6 +921,8 @@ uint32_t Airavata_getGateway_args::read(::apache::thrift::protocol::TProtocol* i
 
   xfer += iprot->readStructEnd();
 
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
@@ -844,7 +933,11 @@ uint32_t Airavata_getGateway_args::write(::apache::thrift::protocol::TProtocol*
   oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Airavata_getGateway_args");
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
   xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
@@ -864,7 +957,11 @@ uint32_t Airavata_getGateway_pargs::write(::apache::thrift::protocol::TProtocol*
   oprot->incrementRecursionDepth();
   xfer += oprot->writeStructBegin("Airavata_getGateway_pargs");
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
   xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
@@ -931,6 +1028,14 @@ uint32_t Airavata_getGateway_result::read(::apache::thrift::protocol::TProtocol*
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -965,6 +1070,10 @@ uint32_t Airavata_getGateway_result::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -1028,6 +1137,14 @@ uint32_t Airavata_getGateway_presult::read(::apache::thrift::protocol::TProtocol
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -35260,18 +35377,19 @@ void AiravataClient::recv_getAPIVersion(std::string& _return)
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAPIVersion failed: unknown result");
 }
 
-void AiravataClient::addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway)
+void AiravataClient::addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway)
 {
-  send_addGateway(gateway);
+  send_addGateway(authzToken, gateway);
   recv_addGateway(_return);
 }
 
-void AiravataClient::send_addGateway(const  ::apache::airavata::model::workspace::Gateway& gateway)
+void AiravataClient::send_addGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway)
 {
   int32_t cseqid = 0;
   oprot_->writeMessageBegin("addGateway", ::apache::thrift::protocol::T_CALL, cseqid);
 
   Airavata_addGateway_pargs args;
+  args.authzToken = &authzToken;
   args.gateway = &gateway;
   args.write(oprot_);
 
@@ -35324,21 +35442,25 @@ void AiravataClient::recv_addGateway(std::string& _return)
   if (result.__isset.ase) {
     throw result.ase;
   }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGateway failed: unknown result");
 }
 
-void AiravataClient::updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
+void AiravataClient::updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
 {
-  send_updateGateway(gatewayId, updatedGateway);
+  send_updateGateway(authzToken, gatewayId, updatedGateway);
   recv_updateGateway();
 }
 
-void AiravataClient::send_updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
+void AiravataClient::send_updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
 {
   int32_t cseqid = 0;
   oprot_->writeMessageBegin("updateGateway", ::apache::thrift::protocol::T_CALL, cseqid);
 
   Airavata_updateGateway_pargs args;
+  args.authzToken = &authzToken;
   args.gatewayId = &gatewayId;
   args.updatedGateway = &updatedGateway;
   args.write(oprot_);
@@ -35387,21 +35509,25 @@ void AiravataClient::recv_updateGateway()
   if (result.__isset.ase) {
     throw result.ase;
   }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
   return;
 }
 
-void AiravataClient::getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId)
+void AiravataClient::getGateway( ::apache::airavata::model::workspace::Gateway& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 {
-  send_getGateway(gatewayId);
+  send_getGateway(authzToken, gatewayId);
   recv_getGateway(_return);
 }
 
-void AiravataClient::send_getGateway(const std::string& gatewayId)
+void AiravataClient::send_getGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 {
   int32_t cseqid = 0;
   oprot_->writeMessageBegin("getGateway", ::apache::thrift::protocol::T_CALL, cseqid);
 
   Airavata_getGateway_pargs args;
+  args.authzToken = &authzToken;
   args.gatewayId = &gatewayId;
   args.write(oprot_);
 
@@ -35454,6 +35580,9 @@ void AiravataClient::recv_getGateway( ::apache::airavata::model::workspace::Gate
   if (result.__isset.ase) {
     throw result.ase;
   }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getGateway failed: unknown result");
 }
 
@@ -43909,7 +44038,7 @@ void AiravataProcessor::process_addGateway(int32_t seqid, ::apache::thrift::prot
 
   Airavata_addGateway_result result;
   try {
-    iface_->addGateway(result.success, args.gateway);
+    iface_->addGateway(result.success, args.authzToken, args.gateway);
     result.__isset.success = true;
   } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
     result.ire = ire;
@@ -43920,6 +44049,9 @@ void AiravataProcessor::process_addGateway(int32_t seqid, ::apache::thrift::prot
   } catch ( ::apache::airavata::api::error::AiravataSystemException &ase) {
     result.ase = ase;
     result.__isset.ase = true;
+  } catch ( ::apache::airavata::api::error::AuthorizationException &ae) {
+    result.ae = ae;
+    result.__isset.ae = true;
   } catch (const std::exception& e) {
     if (this->eventHandler_.get() != NULL) {
       this->eventHandler_->handlerError(ctx, "Airavata.addGateway");
@@ -43972,7 +44104,7 @@ void AiravataProcessor::process_updateGateway(int32_t seqid, ::apache::thrift::p
 
   Airavata_updateGateway_result result;
   try {
-    iface_->updateGateway(args.gatewayId, args.updatedGateway);
+    iface_->updateGateway(args.authzToken, args.gatewayId, args.updatedGateway);
   } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
     result.ire = ire;
     result.__isset.ire = true;
@@ -43982,6 +44114,9 @@ void AiravataProcessor::process_updateGateway(int32_t seqid, ::apache::thrift::p
   } catch ( ::apache::airavata::api::error::AiravataSystemException &ase) {
     result.ase = ase;
     result.__isset.ase = true;
+  } catch ( ::apache::airavata::api::error::AuthorizationException &ae) {
+    result.ae = ae;
+    result.__isset.ae = true;
   } catch (const std::exception& e) {
     if (this->eventHandler_.get() != NULL) {
       this->eventHandler_->handlerError(ctx, "Airavata.updateGateway");
@@ -44034,7 +44169,7 @@ void AiravataProcessor::process_getGateway(int32_t seqid, ::apache::thrift::prot
 
   Airavata_getGateway_result result;
   try {
-    iface_->getGateway(result.success, args.gatewayId);
+    iface_->getGateway(result.success, args.authzToken, args.gatewayId);
     result.__isset.success = true;
   } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
     result.ire = ire;
@@ -44045,6 +44180,9 @@ void AiravataProcessor::process_getGateway(int32_t seqid, ::apache::thrift::prot
   } catch ( ::apache::airavata::api::error::AiravataSystemException &ase) {
     result.ase = ase;
     result.__isset.ase = true;
+  } catch ( ::apache::airavata::api::error::AuthorizationException &ae) {
+    result.ae = ae;
+    result.__isset.ae = true;
   } catch (const std::exception& e) {
     if (this->eventHandler_.get() != NULL) {
       this->eventHandler_->handlerError(ctx, "Airavata.getGateway");

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index 250e99f..2aaf620 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -39,9 +39,9 @@ class AiravataIf {
    * @param authzToken
    */
   virtual void getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken) = 0;
-  virtual void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway) = 0;
-  virtual void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) = 0;
-  virtual void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId) = 0;
+  virtual void addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway) = 0;
+  virtual void updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) = 0;
+  virtual void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) = 0;
   virtual bool deleteGateway(const std::string& gatewayId) = 0;
   virtual void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return) = 0;
   virtual bool isGatewayExist(const std::string& gatewayId) = 0;
@@ -1805,13 +1805,13 @@ class AiravataNull : virtual public AiravataIf {
   void getAPIVersion(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */) {
     return;
   }
-  void addGateway(std::string& /* _return */, const  ::apache::airavata::model::workspace::Gateway& /* gateway */) {
+  void addGateway(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::workspace::Gateway& /* gateway */) {
     return;
   }
-  void updateGateway(const std::string& /* gatewayId */, const  ::apache::airavata::model::workspace::Gateway& /* updatedGateway */) {
+  void updateGateway(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayId */, const  ::apache::airavata::model::workspace::Gateway& /* updatedGateway */) {
     return;
   }
-  void getGateway( ::apache::airavata::model::workspace::Gateway& /* _return */, const std::string& /* gatewayId */) {
+  void getGateway( ::apache::airavata::model::workspace::Gateway& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayId */) {
     return;
   }
   bool deleteGateway(const std::string& /* gatewayId */) {
@@ -2370,8 +2370,8 @@ class Airavata_getAPIVersion_presult {
 class Airavata_addGateway_args {
  public:
 
-  static const char* ascii_fingerprint; // = "D64A104FD7F91B8A042C379A972C0256";
-  static const uint8_t binary_fingerprint[16]; // = {0xD6,0x4A,0x10,0x4F,0xD7,0xF9,0x1B,0x8A,0x04,0x2C,0x37,0x9A,0x97,0x2C,0x02,0x56};
+  static const char* ascii_fingerprint; // = "04DA9961C72375F564BB2C724C51FAF2";
+  static const uint8_t binary_fingerprint[16]; // = {0x04,0xDA,0x99,0x61,0xC7,0x23,0x75,0xF5,0x64,0xBB,0x2C,0x72,0x4C,0x51,0xFA,0xF2};
 
   Airavata_addGateway_args(const Airavata_addGateway_args&);
   Airavata_addGateway_args& operator=(const Airavata_addGateway_args&);
@@ -2379,12 +2379,17 @@ class Airavata_addGateway_args {
   }
 
   virtual ~Airavata_addGateway_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
    ::apache::airavata::model::workspace::Gateway gateway;
 
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
   void __set_gateway(const  ::apache::airavata::model::workspace::Gateway& val);
 
   bool operator == (const Airavata_addGateway_args & rhs) const
   {
+    if (!(authzToken == rhs.authzToken))
+      return false;
     if (!(gateway == rhs.gateway))
       return false;
     return true;
@@ -2405,11 +2410,12 @@ class Airavata_addGateway_args {
 class Airavata_addGateway_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "D64A104FD7F91B8A042C379A972C0256";
-  static const uint8_t binary_fingerprint[16]; // = {0xD6,0x4A,0x10,0x4F,0xD7,0xF9,0x1B,0x8A,0x04,0x2C,0x37,0x9A,0x97,0x2C,0x02,0x56};
+  static const char* ascii_fingerprint; // = "04DA9961C72375F564BB2C724C51FAF2";
+  static const uint8_t binary_fingerprint[16]; // = {0x04,0xDA,0x99,0x61,0xC7,0x23,0x75,0xF5,0x64,0xBB,0x2C,0x72,0x4C,0x51,0xFA,0xF2};
 
 
   virtual ~Airavata_addGateway_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
   const  ::apache::airavata::model::workspace::Gateway* gateway;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -2418,18 +2424,19 @@ class Airavata_addGateway_pargs {
 };
 
 typedef struct _Airavata_addGateway_result__isset {
-  _Airavata_addGateway_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  _Airavata_addGateway_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
+  bool ae :1;
 } _Airavata_addGateway_result__isset;
 
 class Airavata_addGateway_result {
  public:
 
-  static const char* ascii_fingerprint; // = "765449DB00DA08377C7E82BB71F66398";
-  static const uint8_t binary_fingerprint[16]; // = {0x76,0x54,0x49,0xDB,0x00,0xDA,0x08,0x37,0x7C,0x7E,0x82,0xBB,0x71,0xF6,0x63,0x98};
+  static const char* ascii_fingerprint; // = "21BF57A9FE5AAA661540804D4FB9F023";
+  static const uint8_t binary_fingerprint[16]; // = {0x21,0xBF,0x57,0xA9,0xFE,0x5A,0xAA,0x66,0x15,0x40,0x80,0x4D,0x4F,0xB9,0xF0,0x23};
 
   Airavata_addGateway_result(const Airavata_addGateway_result&);
   Airavata_addGateway_result& operator=(const Airavata_addGateway_result&);
@@ -2441,6 +2448,7 @@ class Airavata_addGateway_result {
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
 
   _Airavata_addGateway_result__isset __isset;
 
@@ -2452,6 +2460,8 @@ class Airavata_addGateway_result {
 
   void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
 
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
   bool operator == (const Airavata_addGateway_result & rhs) const
   {
     if (!(success == rhs.success))
@@ -2462,6 +2472,8 @@ class Airavata_addGateway_result {
       return false;
     if (!(ase == rhs.ase))
       return false;
+    if (!(ae == rhs.ae))
+      return false;
     return true;
   }
   bool operator != (const Airavata_addGateway_result &rhs) const {
@@ -2477,18 +2489,19 @@ class Airavata_addGateway_result {
 };
 
 typedef struct _Airavata_addGateway_presult__isset {
-  _Airavata_addGateway_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  _Airavata_addGateway_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
+  bool ae :1;
 } _Airavata_addGateway_presult__isset;
 
 class Airavata_addGateway_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "765449DB00DA08377C7E82BB71F66398";
-  static const uint8_t binary_fingerprint[16]; // = {0x76,0x54,0x49,0xDB,0x00,0xDA,0x08,0x37,0x7C,0x7E,0x82,0xBB,0x71,0xF6,0x63,0x98};
+  static const char* ascii_fingerprint; // = "21BF57A9FE5AAA661540804D4FB9F023";
+  static const uint8_t binary_fingerprint[16]; // = {0x21,0xBF,0x57,0xA9,0xFE,0x5A,0xAA,0x66,0x15,0x40,0x80,0x4D,0x4F,0xB9,0xF0,0x23};
 
 
   virtual ~Airavata_addGateway_presult() throw();
@@ -2496,6 +2509,7 @@ class Airavata_addGateway_presult {
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
 
   _Airavata_addGateway_presult__isset __isset;
 
@@ -2508,8 +2522,8 @@ class Airavata_addGateway_presult {
 class Airavata_updateGateway_args {
  public:
 
-  static const char* ascii_fingerprint; // = "2A9862CB68530D7349BD553AD283D721";
-  static const uint8_t binary_fingerprint[16]; // = {0x2A,0x98,0x62,0xCB,0x68,0x53,0x0D,0x73,0x49,0xBD,0x55,0x3A,0xD2,0x83,0xD7,0x21};
+  static const char* ascii_fingerprint; // = "223E46C55CD2A23DFB47C4B0ED700093";
+  static const uint8_t binary_fingerprint[16]; // = {0x22,0x3E,0x46,0xC5,0x5C,0xD2,0xA2,0x3D,0xFB,0x47,0xC4,0xB0,0xED,0x70,0x00,0x93};
 
   Airavata_updateGateway_args(const Airavata_updateGateway_args&);
   Airavata_updateGateway_args& operator=(const Airavata_updateGateway_args&);
@@ -2517,15 +2531,20 @@ class Airavata_updateGateway_args {
   }
 
   virtual ~Airavata_updateGateway_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
   std::string gatewayId;
    ::apache::airavata::model::workspace::Gateway updatedGateway;
 
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
   void __set_gatewayId(const std::string& val);
 
   void __set_updatedGateway(const  ::apache::airavata::model::workspace::Gateway& val);
 
   bool operator == (const Airavata_updateGateway_args & rhs) const
   {
+    if (!(authzToken == rhs.authzToken))
+      return false;
     if (!(gatewayId == rhs.gatewayId))
       return false;
     if (!(updatedGateway == rhs.updatedGateway))
@@ -2548,11 +2567,12 @@ class Airavata_updateGateway_args {
 class Airavata_updateGateway_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "2A9862CB68530D7349BD553AD283D721";
-  static const uint8_t binary_fingerprint[16]; // = {0x2A,0x98,0x62,0xCB,0x68,0x53,0x0D,0x73,0x49,0xBD,0x55,0x3A,0xD2,0x83,0xD7,0x21};
+  static const char* ascii_fingerprint; // = "223E46C55CD2A23DFB47C4B0ED700093";
+  static const uint8_t binary_fingerprint[16]; // = {0x22,0x3E,0x46,0xC5,0x5C,0xD2,0xA2,0x3D,0xFB,0x47,0xC4,0xB0,0xED,0x70,0x00,0x93};
 
 
   virtual ~Airavata_updateGateway_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
   const std::string* gatewayId;
   const  ::apache::airavata::model::workspace::Gateway* updatedGateway;
 
@@ -2562,17 +2582,18 @@ class Airavata_updateGateway_pargs {
 };
 
 typedef struct _Airavata_updateGateway_result__isset {
-  _Airavata_updateGateway_result__isset() : ire(false), ace(false), ase(false) {}
+  _Airavata_updateGateway_result__isset() : ire(false), ace(false), ase(false), ae(false) {}
   bool ire :1;
   bool ace :1;
   bool ase :1;
+  bool ae :1;
 } _Airavata_updateGateway_result__isset;
 
 class Airavata_updateGateway_result {
  public:
 
-  static const char* ascii_fingerprint; // = "7A8CA38D7195145C4646F28719CA4673";
-  static const uint8_t binary_fingerprint[16]; // = {0x7A,0x8C,0xA3,0x8D,0x71,0x95,0x14,0x5C,0x46,0x46,0xF2,0x87,0x19,0xCA,0x46,0x73};
+  static const char* ascii_fingerprint; // = "0603929641B3F91F81AA6AC437512303";
+  static const uint8_t binary_fingerprint[16]; // = {0x06,0x03,0x92,0x96,0x41,0xB3,0xF9,0x1F,0x81,0xAA,0x6A,0xC4,0x37,0x51,0x23,0x03};
 
   Airavata_updateGateway_result(const Airavata_updateGateway_result&);
   Airavata_updateGateway_result& operator=(const Airavata_updateGateway_result&);
@@ -2583,6 +2604,7 @@ class Airavata_updateGateway_result {
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
 
   _Airavata_updateGateway_result__isset __isset;
 
@@ -2592,6 +2614,8 @@ class Airavata_updateGateway_result {
 
   void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
 
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
   bool operator == (const Airavata_updateGateway_result & rhs) const
   {
     if (!(ire == rhs.ire))
@@ -2600,6 +2624,8 @@ class Airavata_updateGateway_result {
       return false;
     if (!(ase == rhs.ase))
       return false;
+    if (!(ae == rhs.ae))
+      return false;
     return true;
   }
   bool operator != (const Airavata_updateGateway_result &rhs) const {
@@ -2615,23 +2641,25 @@ class Airavata_updateGateway_result {
 };
 
 typedef struct _Airavata_updateGateway_presult__isset {
-  _Airavata_updateGateway_presult__isset() : ire(false), ace(false), ase(false) {}
+  _Airavata_updateGateway_presult__isset() : ire(false), ace(false), ase(false), ae(false) {}
   bool ire :1;
   bool ace :1;
   bool ase :1;
+  bool ae :1;
 } _Airavata_updateGateway_presult__isset;
 
 class Airavata_updateGateway_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "7A8CA38D7195145C4646F28719CA4673";
-  static const uint8_t binary_fingerprint[16]; // = {0x7A,0x8C,0xA3,0x8D,0x71,0x95,0x14,0x5C,0x46,0x46,0xF2,0x87,0x19,0xCA,0x46,0x73};
+  static const char* ascii_fingerprint; // = "0603929641B3F91F81AA6AC437512303";
+  static const uint8_t binary_fingerprint[16]; // = {0x06,0x03,0x92,0x96,0x41,0xB3,0xF9,0x1F,0x81,0xAA,0x6A,0xC4,0x37,0x51,0x23,0x03};
 
 
   virtual ~Airavata_updateGateway_presult() throw();
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
 
   _Airavata_updateGateway_presult__isset __isset;
 
@@ -2644,8 +2672,8 @@ class Airavata_updateGateway_presult {
 class Airavata_getGateway_args {
  public:
 
-  static const char* ascii_fingerprint; // = "EFB929595D312AC8F305D5A794CFEDA1";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xB9,0x29,0x59,0x5D,0x31,0x2A,0xC8,0xF3,0x05,0xD5,0xA7,0x94,0xCF,0xED,0xA1};
+  static const char* ascii_fingerprint; // = "5C8C4FD14D732E7EC3E0A61A8C24C7FF";
+  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
 
   Airavata_getGateway_args(const Airavata_getGateway_args&);
   Airavata_getGateway_args& operator=(const Airavata_getGateway_args&);
@@ -2653,12 +2681,17 @@ class Airavata_getGateway_args {
   }
 
   virtual ~Airavata_getGateway_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
   std::string gatewayId;
 
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
   void __set_gatewayId(const std::string& val);
 
   bool operator == (const Airavata_getGateway_args & rhs) const
   {
+    if (!(authzToken == rhs.authzToken))
+      return false;
     if (!(gatewayId == rhs.gatewayId))
       return false;
     return true;
@@ -2679,11 +2712,12 @@ class Airavata_getGateway_args {
 class Airavata_getGateway_pargs {
  public:
 
-  static const char* ascii_fingerprint; // = "EFB929595D312AC8F305D5A794CFEDA1";
-  static const uint8_t binary_fingerprint[16]; // = {0xEF,0xB9,0x29,0x59,0x5D,0x31,0x2A,0xC8,0xF3,0x05,0xD5,0xA7,0x94,0xCF,0xED,0xA1};
+  static const char* ascii_fingerprint; // = "5C8C4FD14D732E7EC3E0A61A8C24C7FF";
+  static const uint8_t binary_fingerprint[16]; // = {0x5C,0x8C,0x4F,0xD1,0x4D,0x73,0x2E,0x7E,0xC3,0xE0,0xA6,0x1A,0x8C,0x24,0xC7,0xFF};
 
 
   virtual ~Airavata_getGateway_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
   const std::string* gatewayId;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -2692,18 +2726,19 @@ class Airavata_getGateway_pargs {
 };
 
 typedef struct _Airavata_getGateway_result__isset {
-  _Airavata_getGateway_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  _Airavata_getGateway_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
+  bool ae :1;
 } _Airavata_getGateway_result__isset;
 
 class Airavata_getGateway_result {
  public:
 
-  static const char* ascii_fingerprint; // = "834210047FE35345D7760ACF43FFEE35";
-  static const uint8_t binary_fingerprint[16]; // = {0x83,0x42,0x10,0x04,0x7F,0xE3,0x53,0x45,0xD7,0x76,0x0A,0xCF,0x43,0xFF,0xEE,0x35};
+  static const char* ascii_fingerprint; // = "1CD3091B63319C5F9E044C91C5E7D48E";
+  static const uint8_t binary_fingerprint[16]; // = {0x1C,0xD3,0x09,0x1B,0x63,0x31,0x9C,0x5F,0x9E,0x04,0x4C,0x91,0xC5,0xE7,0xD4,0x8E};
 
   Airavata_getGateway_result(const Airavata_getGateway_result&);
   Airavata_getGateway_result& operator=(const Airavata_getGateway_result&);
@@ -2715,6 +2750,7 @@ class Airavata_getGateway_result {
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
 
   _Airavata_getGateway_result__isset __isset;
 
@@ -2726,6 +2762,8 @@ class Airavata_getGateway_result {
 
   void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
 
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
   bool operator == (const Airavata_getGateway_result & rhs) const
   {
     if (!(success == rhs.success))
@@ -2736,6 +2774,8 @@ class Airavata_getGateway_result {
       return false;
     if (!(ase == rhs.ase))
       return false;
+    if (!(ae == rhs.ae))
+      return false;
     return true;
   }
   bool operator != (const Airavata_getGateway_result &rhs) const {
@@ -2751,18 +2791,19 @@ class Airavata_getGateway_result {
 };
 
 typedef struct _Airavata_getGateway_presult__isset {
-  _Airavata_getGateway_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  _Airavata_getGateway_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
+  bool ae :1;
 } _Airavata_getGateway_presult__isset;
 
 class Airavata_getGateway_presult {
  public:
 
-  static const char* ascii_fingerprint; // = "834210047FE35345D7760ACF43FFEE35";
-  static const uint8_t binary_fingerprint[16]; // = {0x83,0x42,0x10,0x04,0x7F,0xE3,0x53,0x45,0xD7,0x76,0x0A,0xCF,0x43,0xFF,0xEE,0x35};
+  static const char* ascii_fingerprint; // = "1CD3091B63319C5F9E044C91C5E7D48E";
+  static const uint8_t binary_fingerprint[16]; // = {0x1C,0xD3,0x09,0x1B,0x63,0x31,0x9C,0x5F,0x9E,0x04,0x4C,0x91,0xC5,0xE7,0xD4,0x8E};
 
 
   virtual ~Airavata_getGateway_presult() throw();
@@ -2770,6 +2811,7 @@ class Airavata_getGateway_presult {
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
 
   _Airavata_getGateway_presult__isset __isset;
 
@@ -20474,14 +20516,14 @@ class AiravataClient : virtual public AiravataIf {
   void getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken);
   void send_getAPIVersion(const  ::apache::airavata::model::security::AuthzToken& authzToken);
   void recv_getAPIVersion(std::string& _return);
-  void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway);
-  void send_addGateway(const  ::apache::airavata::model::workspace::Gateway& gateway);
+  void addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway);
+  void send_addGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway);
   void recv_addGateway(std::string& _return);
-  void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
-  void send_updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
+  void updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
+  void send_updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
   void recv_updateGateway();
-  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId);
-  void send_getGateway(const std::string& gatewayId);
+  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
+  void send_getGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId);
   void recv_getGateway( ::apache::airavata::model::workspace::Gateway& _return);
   bool deleteGateway(const std::string& gatewayId);
   void send_deleteGateway(const std::string& gatewayId);
@@ -21162,32 +21204,32 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
-  void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway) {
+  void addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
-      ifaces_[i]->addGateway(_return, gateway);
+      ifaces_[i]->addGateway(_return, authzToken, gateway);
     }
-    ifaces_[i]->addGateway(_return, gateway);
+    ifaces_[i]->addGateway(_return, authzToken, gateway);
     return;
   }
 
-  void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) {
+  void updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
-      ifaces_[i]->updateGateway(gatewayId, updatedGateway);
+      ifaces_[i]->updateGateway(authzToken, gatewayId, updatedGateway);
     }
-    ifaces_[i]->updateGateway(gatewayId, updatedGateway);
+    ifaces_[i]->updateGateway(authzToken, gatewayId, updatedGateway);
   }
 
-  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId) {
+  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
-      ifaces_[i]->getGateway(_return, gatewayId);
+      ifaces_[i]->getGateway(_return, authzToken, gatewayId);
     }
-    ifaces_[i]->getGateway(_return, gatewayId);
+    ifaces_[i]->getGateway(_return, authzToken, gatewayId);
     return;
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index 6f1141e..3ed9810 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -49,17 +49,17 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getAPIVersion\n");
   }
 
-  void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway) {
+  void addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway) {
     // Your implementation goes here
     printf("addGateway\n");
   }
 
-  void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) {
+  void updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) {
     // Your implementation goes here
     printf("updateGateway\n");
   }
 
-  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId) {
+  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) {
     // Your implementation goes here
     printf("getGateway\n");
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_constants.cpp
new file mode 100644
index 0000000..408aee2
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_constants.cpp
@@ -0,0 +1,36 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "airavata_api_constants.h"
+
+namespace apache { namespace airavata { namespace api {
+
+const airavata_apiConstants g_airavata_api_constants;
+
+airavata_apiConstants::airavata_apiConstants() {
+  AIRAVATA_API_VERSION = "0.15.0";
+
+}
+
+}}} // namespace
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_constants.h
new file mode 100644
index 0000000..7de8402
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_constants.h
@@ -0,0 +1,42 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef airavata_api_CONSTANTS_H
+#define airavata_api_CONSTANTS_H
+
+#include "airavata_api_types.h"
+
+namespace apache { namespace airavata { namespace api {
+
+class airavata_apiConstants {
+ public:
+  airavata_apiConstants();
+
+  std::string AIRAVATA_API_VERSION;
+};
+
+extern const airavata_apiConstants g_airavata_api_constants;
+
+}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.cpp
new file mode 100644
index 0000000..67600ea
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.cpp
@@ -0,0 +1,33 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "airavata_api_types.h"
+
+#include <algorithm>
+#include <ostream>
+
+#include <thrift/TToString.h>
+
+namespace apache { namespace airavata { namespace api {
+
+}}} // namespace

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
new file mode 100644
index 0000000..cdf9ce5
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
@@ -0,0 +1,55 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef airavata_api_TYPES_H
+#define airavata_api_TYPES_H
+
+#include <iosfwd>
+
+#include <thrift/Thrift.h>
+#include <thrift/TApplicationException.h>
+#include <thrift/protocol/TProtocol.h>
+#include <thrift/transport/TTransport.h>
+
+#include <thrift/cxxfunctional.h>
+#include "airavata_errors_types.h"
+#include "airavata_data_models_types.h"
+#include "status_models_types.h"
+#include "job_model_types.h"
+#include "experiment_model_types.h"
+#include "workspace_model_types.h"
+#include "compute_resource_model_types.h"
+#include "scheduling_model_types.h"
+#include "application_io_models_types.h"
+#include "application_deployment_model_types.h"
+#include "application_interface_model_types.h"
+#include "gateway_resource_profile_model_types.h"
+#include "workflow_data_model_types.h"
+#include "security_model_types.h"
+
+
+namespace apache { namespace airavata { namespace api {
+
+}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_constants.cpp
new file mode 100644
index 0000000..c67be12
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_constants.cpp
@@ -0,0 +1,36 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "airavata_commons_constants.h"
+
+namespace apache { namespace airavata { namespace model { namespace commons {
+
+const airavata_commonsConstants g_airavata_commons_constants;
+
+airavata_commonsConstants::airavata_commonsConstants() {
+  DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
+
+}
+
+}}}} // namespace
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_constants.h
new file mode 100644
index 0000000..7b8bb03
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_constants.h
@@ -0,0 +1,42 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef airavata_commons_CONSTANTS_H
+#define airavata_commons_CONSTANTS_H
+
+#include "airavata_commons_types.h"
+
+namespace apache { namespace airavata { namespace model { namespace commons {
+
+class airavata_commonsConstants {
+ public:
+  airavata_commonsConstants();
+
+  std::string DEFAULT_ID;
+};
+
+extern const airavata_commonsConstants g_airavata_commons_constants;
+
+}}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_types.cpp
new file mode 100644
index 0000000..69d0bef
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_types.cpp
@@ -0,0 +1,504 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "airavata_commons_types.h"
+
+#include <algorithm>
+#include <ostream>
+
+#include <thrift/TToString.h>
+
+namespace apache { namespace airavata { namespace model { namespace commons {
+
+
+ErrorModel::~ErrorModel() throw() {
+}
+
+
+void ErrorModel::__set_errorId(const std::string& val) {
+  this->errorId = val;
+}
+
+void ErrorModel::__set_creationTime(const int64_t val) {
+  this->creationTime = val;
+__isset.creationTime = true;
+}
+
+void ErrorModel::__set_actualErrorMessage(const std::string& val) {
+  this->actualErrorMessage = val;
+__isset.actualErrorMessage = true;
+}
+
+void ErrorModel::__set_userFriendlyMessage(const std::string& val) {
+  this->userFriendlyMessage = val;
+__isset.userFriendlyMessage = true;
+}
+
+void ErrorModel::__set_transientOrPersistent(const bool val) {
+  this->transientOrPersistent = val;
+__isset.transientOrPersistent = true;
+}
+
+void ErrorModel::__set_rootCauseErrorIdList(const std::vector<std::string> & val) {
+  this->rootCauseErrorIdList = val;
+__isset.rootCauseErrorIdList = true;
+}
+
+const char* ErrorModel::ascii_fingerprint = "6BB8CB86A8248ACCEDDC6598B87B119F";
+const uint8_t ErrorModel::binary_fingerprint[16] = {0x6B,0xB8,0xCB,0x86,0xA8,0x24,0x8A,0xCC,0xED,0xDC,0x65,0x98,0xB8,0x7B,0x11,0x9F};
+
+uint32_t ErrorModel::read(::apache::thrift::protocol::TProtocol* 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_errorId = 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->errorId);
+          isset_errorId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->creationTime);
+          this->__isset.creationTime = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->actualErrorMessage);
+          this->__isset.actualErrorMessage = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userFriendlyMessage);
+          this->__isset.userFriendlyMessage = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->transientOrPersistent);
+          this->__isset.transientOrPersistent = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->rootCauseErrorIdList.clear();
+            uint32_t _size0;
+            ::apache::thrift::protocol::TType _etype3;
+            xfer += iprot->readListBegin(_etype3, _size0);
+            this->rootCauseErrorIdList.resize(_size0);
+            uint32_t _i4;
+            for (_i4 = 0; _i4 < _size0; ++_i4)
+            {
+              xfer += iprot->readString(this->rootCauseErrorIdList[_i4]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.rootCauseErrorIdList = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_errorId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ErrorModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  oprot->incrementRecursionDepth();
+  xfer += oprot->writeStructBegin("ErrorModel");
+
+  xfer += oprot->writeFieldBegin("errorId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->errorId);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.creationTime) {
+    xfer += oprot->writeFieldBegin("creationTime", ::apache::thrift::protocol::T_I64, 2);
+    xfer += oprot->writeI64(this->creationTime);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.actualErrorMessage) {
+    xfer += oprot->writeFieldBegin("actualErrorMessage", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->actualErrorMessage);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.userFriendlyMessage) {
+    xfer += oprot->writeFieldBegin("userFriendlyMessage", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->userFriendlyMessage);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.transientOrPersistent) {
+    xfer += oprot->writeFieldBegin("transientOrPersistent", ::apache::thrift::protocol::T_BOOL, 5);
+    xfer += oprot->writeBool(this->transientOrPersistent);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.rootCauseErrorIdList) {
+    xfer += oprot->writeFieldBegin("rootCauseErrorIdList", ::apache::thrift::protocol::T_LIST, 6);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->rootCauseErrorIdList.size()));
+      std::vector<std::string> ::const_iterator _iter5;
+      for (_iter5 = this->rootCauseErrorIdList.begin(); _iter5 != this->rootCauseErrorIdList.end(); ++_iter5)
+      {
+        xfer += oprot->writeString((*_iter5));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
+  return xfer;
+}
+
+void swap(ErrorModel &a, ErrorModel &b) {
+  using ::std::swap;
+  swap(a.errorId, b.errorId);
+  swap(a.creationTime, b.creationTime);
+  swap(a.actualErrorMessage, b.actualErrorMessage);
+  swap(a.userFriendlyMessage, b.userFriendlyMessage);
+  swap(a.transientOrPersistent, b.transientOrPersistent);
+  swap(a.rootCauseErrorIdList, b.rootCauseErrorIdList);
+  swap(a.__isset, b.__isset);
+}
+
+ErrorModel::ErrorModel(const ErrorModel& other6) {
+  errorId = other6.errorId;
+  creationTime = other6.creationTime;
+  actualErrorMessage = other6.actualErrorMessage;
+  userFriendlyMessage = other6.userFriendlyMessage;
+  transientOrPersistent = other6.transientOrPersistent;
+  rootCauseErrorIdList = other6.rootCauseErrorIdList;
+  __isset = other6.__isset;
+}
+ErrorModel& ErrorModel::operator=(const ErrorModel& other7) {
+  errorId = other7.errorId;
+  creationTime = other7.creationTime;
+  actualErrorMessage = other7.actualErrorMessage;
+  userFriendlyMessage = other7.userFriendlyMessage;
+  transientOrPersistent = other7.transientOrPersistent;
+  rootCauseErrorIdList = other7.rootCauseErrorIdList;
+  __isset = other7.__isset;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const ErrorModel& obj) {
+  using apache::thrift::to_string;
+  out << "ErrorModel(";
+  out << "errorId=" << to_string(obj.errorId);
+  out << ", " << "creationTime="; (obj.__isset.creationTime ? (out << to_string(obj.creationTime)) : (out << "<null>"));
+  out << ", " << "actualErrorMessage="; (obj.__isset.actualErrorMessage ? (out << to_string(obj.actualErrorMessage)) : (out << "<null>"));
+  out << ", " << "userFriendlyMessage="; (obj.__isset.userFriendlyMessage ? (out << to_string(obj.userFriendlyMessage)) : (out << "<null>"));
+  out << ", " << "transientOrPersistent="; (obj.__isset.transientOrPersistent ? (out << to_string(obj.transientOrPersistent)) : (out << "<null>"));
+  out << ", " << "rootCauseErrorIdList="; (obj.__isset.rootCauseErrorIdList ? (out << to_string(obj.rootCauseErrorIdList)) : (out << "<null>"));
+  out << ")";
+  return out;
+}
+
+
+ValidatorResult::~ValidatorResult() throw() {
+}
+
+
+void ValidatorResult::__set_result(const bool val) {
+  this->result = val;
+}
+
+void ValidatorResult::__set_errorDetails(const std::string& val) {
+  this->errorDetails = val;
+__isset.errorDetails = true;
+}
+
+const char* ValidatorResult::ascii_fingerprint = "EB04A806CFFC9025AEE48CFFDC378A86";
+const uint8_t ValidatorResult::binary_fingerprint[16] = {0xEB,0x04,0xA8,0x06,0xCF,0xFC,0x90,0x25,0xAE,0xE4,0x8C,0xFF,0xDC,0x37,0x8A,0x86};
+
+uint32_t ValidatorResult::read(::apache::thrift::protocol::TProtocol* 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_result = 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_BOOL) {
+          xfer += iprot->readBool(this->result);
+          isset_result = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->errorDetails);
+          this->__isset.errorDetails = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_result)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ValidatorResult::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  oprot->incrementRecursionDepth();
+  xfer += oprot->writeStructBegin("ValidatorResult");
+
+  xfer += oprot->writeFieldBegin("result", ::apache::thrift::protocol::T_BOOL, 1);
+  xfer += oprot->writeBool(this->result);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.errorDetails) {
+    xfer += oprot->writeFieldBegin("errorDetails", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->errorDetails);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
+  return xfer;
+}
+
+void swap(ValidatorResult &a, ValidatorResult &b) {
+  using ::std::swap;
+  swap(a.result, b.result);
+  swap(a.errorDetails, b.errorDetails);
+  swap(a.__isset, b.__isset);
+}
+
+ValidatorResult::ValidatorResult(const ValidatorResult& other8) {
+  result = other8.result;
+  errorDetails = other8.errorDetails;
+  __isset = other8.__isset;
+}
+ValidatorResult& ValidatorResult::operator=(const ValidatorResult& other9) {
+  result = other9.result;
+  errorDetails = other9.errorDetails;
+  __isset = other9.__isset;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const ValidatorResult& obj) {
+  using apache::thrift::to_string;
+  out << "ValidatorResult(";
+  out << "result=" << to_string(obj.result);
+  out << ", " << "errorDetails="; (obj.__isset.errorDetails ? (out << to_string(obj.errorDetails)) : (out << "<null>"));
+  out << ")";
+  return out;
+}
+
+
+ValidationResults::~ValidationResults() throw() {
+}
+
+
+void ValidationResults::__set_validationState(const bool val) {
+  this->validationState = val;
+}
+
+void ValidationResults::__set_validationResultList(const std::vector<ValidatorResult> & val) {
+  this->validationResultList = val;
+}
+
+const char* ValidationResults::ascii_fingerprint = "E73BC8630EE405DA5FB801ED852143D2";
+const uint8_t ValidationResults::binary_fingerprint[16] = {0xE7,0x3B,0xC8,0x63,0x0E,0xE4,0x05,0xDA,0x5F,0xB8,0x01,0xED,0x85,0x21,0x43,0xD2};
+
+uint32_t ValidationResults::read(::apache::thrift::protocol::TProtocol* 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_validationState = false;
+  bool isset_validationResultList = 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_BOOL) {
+          xfer += iprot->readBool(this->validationState);
+          isset_validationState = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->validationResultList.clear();
+            uint32_t _size10;
+            ::apache::thrift::protocol::TType _etype13;
+            xfer += iprot->readListBegin(_etype13, _size10);
+            this->validationResultList.resize(_size10);
+            uint32_t _i14;
+            for (_i14 = 0; _i14 < _size10; ++_i14)
+            {
+              xfer += this->validationResultList[_i14].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          isset_validationResultList = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_validationState)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_validationResultList)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ValidationResults::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  oprot->incrementRecursionDepth();
+  xfer += oprot->writeStructBegin("ValidationResults");
+
+  xfer += oprot->writeFieldBegin("validationState", ::apache::thrift::protocol::T_BOOL, 1);
+  xfer += oprot->writeBool(this->validationState);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("validationResultList", ::apache::thrift::protocol::T_LIST, 2);
+  {
+    xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->validationResultList.size()));
+    std::vector<ValidatorResult> ::const_iterator _iter15;
+    for (_iter15 = this->validationResultList.begin(); _iter15 != this->validationResultList.end(); ++_iter15)
+    {
+      xfer += (*_iter15).write(oprot);
+    }
+    xfer += oprot->writeListEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  oprot->decrementRecursionDepth();
+  return xfer;
+}
+
+void swap(ValidationResults &a, ValidationResults &b) {
+  using ::std::swap;
+  swap(a.validationState, b.validationState);
+  swap(a.validationResultList, b.validationResultList);
+}
+
+ValidationResults::ValidationResults(const ValidationResults& other16) {
+  validationState = other16.validationState;
+  validationResultList = other16.validationResultList;
+}
+ValidationResults& ValidationResults::operator=(const ValidationResults& other17) {
+  validationState = other17.validationState;
+  validationResultList = other17.validationResultList;
+  return *this;
+}
+std::ostream& operator<<(std::ostream& out, const ValidationResults& obj) {
+  using apache::thrift::to_string;
+  out << "ValidationResults(";
+  out << "validationState=" << to_string(obj.validationState);
+  out << ", " << "validationResultList=" << to_string(obj.validationResultList);
+  out << ")";
+  return out;
+}
+
+}}}} // namespace

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_types.h
new file mode 100644
index 0000000..6f4c7f2
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_commons_types.h
@@ -0,0 +1,221 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef airavata_commons_TYPES_H
+#define airavata_commons_TYPES_H
+
+#include <iosfwd>
+
+#include <thrift/Thrift.h>
+#include <thrift/TApplicationException.h>
+#include <thrift/protocol/TProtocol.h>
+#include <thrift/transport/TTransport.h>
+
+#include <thrift/cxxfunctional.h>
+
+
+namespace apache { namespace airavata { namespace model { namespace commons {
+
+class ErrorModel;
+
+class ValidatorResult;
+
+class ValidationResults;
+
+typedef struct _ErrorModel__isset {
+  _ErrorModel__isset() : creationTime(false), actualErrorMessage(false), userFriendlyMessage(false), transientOrPersistent(true), rootCauseErrorIdList(false) {}
+  bool creationTime :1;
+  bool actualErrorMessage :1;
+  bool userFriendlyMessage :1;
+  bool transientOrPersistent :1;
+  bool rootCauseErrorIdList :1;
+} _ErrorModel__isset;
+
+class ErrorModel {
+ public:
+
+  static const char* ascii_fingerprint; // = "6BB8CB86A8248ACCEDDC6598B87B119F";
+  static const uint8_t binary_fingerprint[16]; // = {0x6B,0xB8,0xCB,0x86,0xA8,0x24,0x8A,0xCC,0xED,0xDC,0x65,0x98,0xB8,0x7B,0x11,0x9F};
+
+  ErrorModel(const ErrorModel&);
+  ErrorModel& operator=(const ErrorModel&);
+  ErrorModel() : errorId("DO_NOT_SET_AT_CLIENTS"), creationTime(0), actualErrorMessage(), userFriendlyMessage(), transientOrPersistent(false) {
+  }
+
+  virtual ~ErrorModel() throw();
+  std::string errorId;
+  int64_t creationTime;
+  std::string actualErrorMessage;
+  std::string userFriendlyMessage;
+  bool transientOrPersistent;
+  std::vector<std::string>  rootCauseErrorIdList;
+
+  _ErrorModel__isset __isset;
+
+  void __set_errorId(const std::string& val);
+
+  void __set_creationTime(const int64_t val);
+
+  void __set_actualErrorMessage(const std::string& val);
+
+  void __set_userFriendlyMessage(const std::string& val);
+
+  void __set_transientOrPersistent(const bool val);
+
+  void __set_rootCauseErrorIdList(const std::vector<std::string> & val);
+
+  bool operator == (const ErrorModel & rhs) const
+  {
+    if (!(errorId == rhs.errorId))
+      return false;
+    if (__isset.creationTime != rhs.__isset.creationTime)
+      return false;
+    else if (__isset.creationTime && !(creationTime == rhs.creationTime))
+      return false;
+    if (__isset.actualErrorMessage != rhs.__isset.actualErrorMessage)
+      return false;
+    else if (__isset.actualErrorMessage && !(actualErrorMessage == rhs.actualErrorMessage))
+      return false;
+    if (__isset.userFriendlyMessage != rhs.__isset.userFriendlyMessage)
+      return false;
+    else if (__isset.userFriendlyMessage && !(userFriendlyMessage == rhs.userFriendlyMessage))
+      return false;
+    if (__isset.transientOrPersistent != rhs.__isset.transientOrPersistent)
+      return false;
+    else if (__isset.transientOrPersistent && !(transientOrPersistent == rhs.transientOrPersistent))
+      return false;
+    if (__isset.rootCauseErrorIdList != rhs.__isset.rootCauseErrorIdList)
+      return false;
+    else if (__isset.rootCauseErrorIdList && !(rootCauseErrorIdList == rhs.rootCauseErrorIdList))
+      return false;
+    return true;
+  }
+  bool operator != (const ErrorModel &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ErrorModel & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const ErrorModel& obj);
+};
+
+void swap(ErrorModel &a, ErrorModel &b);
+
+typedef struct _ValidatorResult__isset {
+  _ValidatorResult__isset() : errorDetails(false) {}
+  bool errorDetails :1;
+} _ValidatorResult__isset;
+
+class ValidatorResult {
+ public:
+
+  static const char* ascii_fingerprint; // = "EB04A806CFFC9025AEE48CFFDC378A86";
+  static const uint8_t binary_fingerprint[16]; // = {0xEB,0x04,0xA8,0x06,0xCF,0xFC,0x90,0x25,0xAE,0xE4,0x8C,0xFF,0xDC,0x37,0x8A,0x86};
+
+  ValidatorResult(const ValidatorResult&);
+  ValidatorResult& operator=(const ValidatorResult&);
+  ValidatorResult() : result(0), errorDetails() {
+  }
+
+  virtual ~ValidatorResult() throw();
+  bool result;
+  std::string errorDetails;
+
+  _ValidatorResult__isset __isset;
+
+  void __set_result(const bool val);
+
+  void __set_errorDetails(const std::string& val);
+
+  bool operator == (const ValidatorResult & rhs) const
+  {
+    if (!(result == rhs.result))
+      return false;
+    if (__isset.errorDetails != rhs.__isset.errorDetails)
+      return false;
+    else if (__isset.errorDetails && !(errorDetails == rhs.errorDetails))
+      return false;
+    return true;
+  }
+  bool operator != (const ValidatorResult &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ValidatorResult & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const ValidatorResult& obj);
+};
+
+void swap(ValidatorResult &a, ValidatorResult &b);
+
+
+class ValidationResults {
+ public:
+
+  static const char* ascii_fingerprint; // = "E73BC8630EE405DA5FB801ED852143D2";
+  static const uint8_t binary_fingerprint[16]; // = {0xE7,0x3B,0xC8,0x63,0x0E,0xE4,0x05,0xDA,0x5F,0xB8,0x01,0xED,0x85,0x21,0x43,0xD2};
+
+  ValidationResults(const ValidationResults&);
+  ValidationResults& operator=(const ValidationResults&);
+  ValidationResults() : validationState(0) {
+  }
+
+  virtual ~ValidationResults() throw();
+  bool validationState;
+  std::vector<ValidatorResult>  validationResultList;
+
+  void __set_validationState(const bool val);
+
+  void __set_validationResultList(const std::vector<ValidatorResult> & val);
+
+  bool operator == (const ValidationResults & rhs) const
+  {
+    if (!(validationState == rhs.validationState))
+      return false;
+    if (!(validationResultList == rhs.validationResultList))
+      return false;
+    return true;
+  }
+  bool operator != (const ValidationResults &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ValidationResults & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  friend std::ostream& operator<<(std::ostream& out, const ValidationResults& obj);
+};
+
+void swap(ValidationResults &a, ValidationResults &b);
+
+}}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_constants.cpp
new file mode 100644
index 0000000..1764a3b
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "airavata_data_models_constants.h"
+
+namespace apache { namespace airavata { namespace model {
+
+const airavata_data_modelsConstants g_airavata_data_models_constants;
+
+airavata_data_modelsConstants::airavata_data_modelsConstants() {
+}
+
+}}} // namespace
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_constants.h
new file mode 100644
index 0000000..071c000
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef airavata_data_models_CONSTANTS_H
+#define airavata_data_models_CONSTANTS_H
+
+#include "airavata_data_models_types.h"
+
+namespace apache { namespace airavata { namespace model {
+
+class airavata_data_modelsConstants {
+ public:
+  airavata_data_modelsConstants();
+
+};
+
+extern const airavata_data_modelsConstants g_airavata_data_models_constants;
+
+}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/dc524490/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.cpp
new file mode 100644
index 0000000..e9ac27d
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_data_models_types.cpp
@@ -0,0 +1,33 @@
+/**
+ * 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.2)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "airavata_data_models_types.h"
+
+#include <algorithm>
+#include <ostream>
+
+#include <thrift/TToString.h>
+
+namespace apache { namespace airavata { namespace model {
+
+}}} // namespace