http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/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 7ac0f13..81134ea 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
@@ -46256,11 +46256,11 @@ uint32_t 
Airavata_getAllWorkflows_presult::read(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_getWorkflow_args::~Airavata_getWorkflow_args() throw() {
+Airavata_getLatestQueueStatuses_args::~Airavata_getLatestQueueStatuses_args() 
throw() {
 }
 
 
-uint32_t 
Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t 
Airavata_getLatestQueueStatuses_args::read(::apache::thrift::protocol::TProtocol*
 iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -46273,7 +46273,6 @@ uint32_t 
Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol*
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_workflowTemplateId = false;
 
   while (true)
   {
@@ -46291,14 +46290,6 @@ uint32_t 
Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol*
           xfer += iprot->skip(ftype);
         }
         break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->workflowTemplateId);
-          isset_workflowTemplateId = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -46310,58 +46301,48 @@ uint32_t 
Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol*
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowTemplateId)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t 
Airavata_getWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
+uint32_t 
Airavata_getLatestQueueStatuses_args::write(::apache::thrift::protocol::TProtocol*
 oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_getLatestQueueStatuses_args");
 
   xfer += oprot->writeFieldBegin("authzToken", 
::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", 
::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->workflowTemplateId);
-  xfer += oprot->writeFieldEnd();
-
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
 
-Airavata_getWorkflow_pargs::~Airavata_getWorkflow_pargs() throw() {
+Airavata_getLatestQueueStatuses_pargs::~Airavata_getLatestQueueStatuses_pargs()
 throw() {
 }
 
 
-uint32_t 
Airavata_getWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
+uint32_t 
Airavata_getLatestQueueStatuses_pargs::write(::apache::thrift::protocol::TProtocol*
 oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getLatestQueueStatuses_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", 
::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", 
::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->workflowTemplateId)));
-  xfer += oprot->writeFieldEnd();
-
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
 
-Airavata_getWorkflow_result::~Airavata_getWorkflow_result() throw() {
+Airavata_getLatestQueueStatuses_result::~Airavata_getLatestQueueStatuses_result()
 throw() {
 }
 
 
-uint32_t 
Airavata_getWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) 
{
+uint32_t 
Airavata_getLatestQueueStatuses_result::read(::apache::thrift::protocol::TProtocol*
 iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -46383,8 +46364,20 @@ uint32_t 
Airavata_getWorkflow_result::read(::apache::thrift::protocol::TProtocol
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->success.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size434;
+            ::apache::thrift::protocol::TType _etype437;
+            xfer += iprot->readListBegin(_etype437, _size434);
+            this->success.resize(_size434);
+            uint32_t _i438;
+            for (_i438 = 0; _i438 < _size434; ++_i438)
+            {
+              xfer += this->success[_i438].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -46434,15 +46427,23 @@ uint32_t 
Airavata_getWorkflow_result::read(::apache::thrift::protocol::TProtocol
   return xfer;
 }
 
-uint32_t 
Airavata_getWorkflow_result::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_getLatestQueueStatuses_result::write(::apache::thrift::protocol::TProtocol*
 oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_getLatestQueueStatuses_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_STRUCT, 0);
-    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, 
static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::status::QueueStatusModel> 
::const_iterator _iter439;
+      for (_iter439 = this->success.begin(); _iter439 != this->success.end(); 
++_iter439)
+      {
+        xfer += (*_iter439).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", 
::apache::thrift::protocol::T_STRUCT, 1);
@@ -46467,11 +46468,11 @@ uint32_t 
Airavata_getWorkflow_result::write(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_getWorkflow_presult::~Airavata_getWorkflow_presult() throw() {
+Airavata_getLatestQueueStatuses_presult::~Airavata_getLatestQueueStatuses_presult()
 throw() {
 }
 
 
-uint32_t 
Airavata_getWorkflow_presult::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+uint32_t 
Airavata_getLatestQueueStatuses_presult::read(::apache::thrift::protocol::TProtocol*
 iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -46493,8 +46494,20 @@ uint32_t 
Airavata_getWorkflow_presult::read(::apache::thrift::protocol::TProtoco
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += (*(this->success)).read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size440;
+            ::apache::thrift::protocol::TType _etype443;
+            xfer += iprot->readListBegin(_etype443, _size440);
+            (*(this->success)).resize(_size440);
+            uint32_t _i444;
+            for (_i444 = 0; _i444 < _size440; ++_i444)
+            {
+              xfer += (*(this->success))[_i444].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -46545,11 +46558,11 @@ uint32_t 
Airavata_getWorkflow_presult::read(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_deleteWorkflow_args::~Airavata_deleteWorkflow_args() throw() {
+Airavata_getWorkflow_args::~Airavata_getWorkflow_args() throw() {
 }
 
 
-uint32_t 
Airavata_deleteWorkflow_args::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+uint32_t 
Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -46604,10 +46617,10 @@ uint32_t 
Airavata_deleteWorkflow_args::read(::apache::thrift::protocol::TProtoco
   return xfer;
 }
 
-uint32_t 
Airavata_deleteWorkflow_args::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_getWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_getWorkflow_args");
 
   xfer += oprot->writeFieldBegin("authzToken", 
::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
@@ -46623,14 +46636,14 @@ uint32_t 
Airavata_deleteWorkflow_args::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_deleteWorkflow_pargs::~Airavata_deleteWorkflow_pargs() throw() {
+Airavata_getWorkflow_pargs::~Airavata_getWorkflow_pargs() throw() {
 }
 
 
-uint32_t 
Airavata_deleteWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_getWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) 
const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getWorkflow_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", 
::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
@@ -46646,11 +46659,11 @@ uint32_t 
Airavata_deleteWorkflow_pargs::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_deleteWorkflow_result::~Airavata_deleteWorkflow_result() throw() {
+Airavata_getWorkflow_result::~Airavata_getWorkflow_result() throw() {
 }
 
 
-uint32_t 
Airavata_deleteWorkflow_result::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+uint32_t 
Airavata_getWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) 
{
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -46671,6 +46684,14 @@ uint32_t 
Airavata_deleteWorkflow_result::read(::apache::thrift::protocol::TProto
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -46715,13 +46736,17 @@ uint32_t 
Airavata_deleteWorkflow_result::read(::apache::thrift::protocol::TProto
   return xfer;
 }
 
-uint32_t 
Airavata_deleteWorkflow_result::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_getWorkflow_result::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_getWorkflow_result");
 
-  if (this->__isset.ire) {
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", 
::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->ire.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -46744,11 +46769,11 @@ uint32_t 
Airavata_deleteWorkflow_result::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_deleteWorkflow_presult::~Airavata_deleteWorkflow_presult() throw() {
+Airavata_getWorkflow_presult::~Airavata_getWorkflow_presult() throw() {
 }
 
 
-uint32_t 
Airavata_deleteWorkflow_presult::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+uint32_t 
Airavata_getWorkflow_presult::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -46769,6 +46794,14 @@ uint32_t 
Airavata_deleteWorkflow_presult::read(::apache::thrift::protocol::TProt
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -46814,11 +46847,11 @@ uint32_t 
Airavata_deleteWorkflow_presult::read(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_registerWorkflow_args::~Airavata_registerWorkflow_args() throw() {
+Airavata_deleteWorkflow_args::~Airavata_deleteWorkflow_args() throw() {
 }
 
 
-uint32_t 
Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+uint32_t 
Airavata_deleteWorkflow_args::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -46831,8 +46864,7 @@ uint32_t 
Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProto
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_gatewayId = false;
-  bool isset_workflow = false;
+  bool isset_workflowTemplateId = false;
 
   while (true)
   {
@@ -46852,16 +46884,8 @@ uint32_t 
Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProto
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayId);
-          isset_gatewayId = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->workflow.read(iprot);
-          isset_workflow = true;
+          xfer += iprot->readString(this->workflowTemplateId);
+          isset_workflowTemplateId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -46877,28 +46901,22 @@ uint32_t 
Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProto
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_gatewayId)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflow)
+  if (!isset_workflowTemplateId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t 
Airavata_registerWorkflow_args::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_deleteWorkflow_args::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_args");
 
   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("workflow", 
::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += this->workflow.write(oprot);
+  xfer += oprot->writeFieldBegin("workflowTemplateId", 
::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->workflowTemplateId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -46907,25 +46925,21 @@ uint32_t 
Airavata_registerWorkflow_args::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_registerWorkflow_pargs::~Airavata_registerWorkflow_pargs() throw() {
+Airavata_deleteWorkflow_pargs::~Airavata_deleteWorkflow_pargs() throw() {
 }
 
 
-uint32_t 
Airavata_registerWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_deleteWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_pargs");
 
   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("workflow", 
::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += (*(this->workflow)).write(oprot);
+  xfer += oprot->writeFieldBegin("workflowTemplateId", 
::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->workflowTemplateId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -46934,11 +46948,11 @@ uint32_t 
Airavata_registerWorkflow_pargs::write(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_registerWorkflow_result::~Airavata_registerWorkflow_result() throw() {
+Airavata_deleteWorkflow_result::~Airavata_deleteWorkflow_result() throw() {
 }
 
 
-uint32_t 
Airavata_registerWorkflow_result::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+uint32_t 
Airavata_deleteWorkflow_result::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -46959,14 +46973,6 @@ uint32_t 
Airavata_registerWorkflow_result::read(::apache::thrift::protocol::TPro
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->success);
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -47011,17 +47017,13 @@ uint32_t 
Airavata_registerWorkflow_result::read(::apache::thrift::protocol::TPro
   return xfer;
 }
 
-uint32_t 
Airavata_registerWorkflow_result::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_deleteWorkflow_result::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_result");
 
-  if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_STRING, 0);
-    xfer += oprot->writeString(this->success);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.ire) {
+  if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", 
::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->ire.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -47044,11 +47046,11 @@ uint32_t 
Airavata_registerWorkflow_result::write(::apache::thrift::protocol::TPr
 }
 
 
-Airavata_registerWorkflow_presult::~Airavata_registerWorkflow_presult() 
throw() {
+Airavata_deleteWorkflow_presult::~Airavata_deleteWorkflow_presult() throw() {
 }
 
 
-uint32_t 
Airavata_registerWorkflow_presult::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+uint32_t 
Airavata_deleteWorkflow_presult::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -47069,14 +47071,6 @@ uint32_t 
Airavata_registerWorkflow_presult::read(::apache::thrift::protocol::TPr
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString((*(this->success)));
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -47122,11 +47116,11 @@ uint32_t 
Airavata_registerWorkflow_presult::read(::apache::thrift::protocol::TPr
 }
 
 
-Airavata_updateWorkflow_args::~Airavata_updateWorkflow_args() throw() {
+Airavata_registerWorkflow_args::~Airavata_registerWorkflow_args() throw() {
 }
 
 
-uint32_t 
Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+uint32_t 
Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -47139,7 +47133,7 @@ uint32_t 
Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtoco
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_workflowTemplateId = false;
+  bool isset_gatewayId = false;
   bool isset_workflow = false;
 
   while (true)
@@ -47160,8 +47154,8 @@ uint32_t 
Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtoco
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->workflowTemplateId);
-          isset_workflowTemplateId = true;
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -47185,24 +47179,24 @@ uint32_t 
Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtoco
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowTemplateId)
+  if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_workflow)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t 
Airavata_updateWorkflow_args::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_registerWorkflow_args::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_args");
 
   xfer += oprot->writeFieldBegin("authzToken", 
::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", 
::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->workflowTemplateId);
+  xfer += oprot->writeFieldBegin("gatewayId", 
::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldBegin("workflow", 
::apache::thrift::protocol::T_STRUCT, 3);
@@ -47215,21 +47209,21 @@ uint32_t 
Airavata_updateWorkflow_args::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_updateWorkflow_pargs::~Airavata_updateWorkflow_pargs() throw() {
+Airavata_registerWorkflow_pargs::~Airavata_registerWorkflow_pargs() throw() {
 }
 
 
-uint32_t 
Airavata_updateWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_registerWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", 
::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", 
::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->workflowTemplateId)));
+  xfer += oprot->writeFieldBegin("gatewayId", 
::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldBegin("workflow", 
::apache::thrift::protocol::T_STRUCT, 3);
@@ -47242,11 +47236,11 @@ uint32_t 
Airavata_updateWorkflow_pargs::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_updateWorkflow_result::~Airavata_updateWorkflow_result() throw() {
+Airavata_registerWorkflow_result::~Airavata_registerWorkflow_result() throw() {
 }
 
 
-uint32_t 
Airavata_updateWorkflow_result::read(::apache::thrift::protocol::TProtocol* 
iprot) {
+uint32_t 
Airavata_registerWorkflow_result::read(::apache::thrift::protocol::TProtocol* 
iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -47267,6 +47261,14 @@ uint32_t 
Airavata_updateWorkflow_result::read(::apache::thrift::protocol::TProto
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -47311,13 +47313,313 @@ uint32_t 
Airavata_updateWorkflow_result::read(::apache::thrift::protocol::TProto
   return xfer;
 }
 
-uint32_t 
Airavata_updateWorkflow_result::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+uint32_t 
Airavata_registerWorkflow_result::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_result");
 
-  if (this->__isset.ire) {
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_STRING, 0);
+    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", 
::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", 
::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    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();
+  return xfer;
+}
+
+
+Airavata_registerWorkflow_presult::~Airavata_registerWorkflow_presult() 
throw() {
+}
+
+
+uint32_t 
Airavata_registerWorkflow_presult::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;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          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;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+Airavata_updateWorkflow_args::~Airavata_updateWorkflow_args() throw() {
+}
+
+
+uint32_t 
Airavata_updateWorkflow_args::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_authzToken = false;
+  bool isset_workflowTemplateId = false;
+  bool isset_workflow = 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_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->workflowTemplateId);
+          isset_workflowTemplateId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->workflow.read(iprot);
+          isset_workflow = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_workflowTemplateId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_workflow)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t 
Airavata_updateWorkflow_args::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", 
::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("workflowTemplateId", 
::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->workflowTemplateId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("workflow", 
::apache::thrift::protocol::T_STRUCT, 3);
+  xfer += this->workflow.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_updateWorkflow_pargs::~Airavata_updateWorkflow_pargs() throw() {
+}
+
+
+uint32_t 
Airavata_updateWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", 
::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("workflowTemplateId", 
::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->workflowTemplateId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("workflow", 
::apache::thrift::protocol::T_STRUCT, 3);
+  xfer += (*(this->workflow)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_updateWorkflow_result::~Airavata_updateWorkflow_result() throw() {
+}
+
+
+uint32_t 
Airavata_updateWorkflow_result::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;
+
+
+  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_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          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;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t 
Airavata_updateWorkflow_result::write(::apache::thrift::protocol::TProtocol* 
oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_result");
+
+  if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", 
::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->ire.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -49274,14 +49576,14 @@ uint32_t 
Airavata_getChildDataProducts_result::read(::apache::thrift::protocol::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size434;
-            ::apache::thrift::protocol::TType _etype437;
-            xfer += iprot->readListBegin(_etype437, _size434);
-            this->success.resize(_size434);
-            uint32_t _i438;
-            for (_i438 = 0; _i438 < _size434; ++_i438)
+            uint32_t _size445;
+            ::apache::thrift::protocol::TType _etype448;
+            xfer += iprot->readListBegin(_etype448, _size445);
+            this->success.resize(_size445);
+            uint32_t _i449;
+            for (_i449 = 0; _i449 < _size445; ++_i449)
             {
-              xfer += this->success[_i438].read(iprot);
+              xfer += this->success[_i449].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -49344,10 +49646,10 @@ uint32_t 
Airavata_getChildDataProducts_result::write(::apache::thrift::protocol:
     xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, 
static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::data::replica::DataProductModel> 
::const_iterator _iter439;
-      for (_iter439 = this->success.begin(); _iter439 != this->success.end(); 
++_iter439)
+      std::vector< ::apache::airavata::model::data::replica::DataProductModel> 
::const_iterator _iter450;
+      for (_iter450 = this->success.begin(); _iter450 != this->success.end(); 
++_iter450)
       {
-        xfer += (*_iter439).write(oprot);
+        xfer += (*_iter450).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -49404,14 +49706,14 @@ uint32_t 
Airavata_getChildDataProducts_presult::read(::apache::thrift::protocol:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size440;
-            ::apache::thrift::protocol::TType _etype443;
-            xfer += iprot->readListBegin(_etype443, _size440);
-            (*(this->success)).resize(_size440);
-            uint32_t _i444;
-            for (_i444 = 0; _i444 < _size440; ++_i444)
+            uint32_t _size451;
+            ::apache::thrift::protocol::TType _etype454;
+            xfer += iprot->readListBegin(_etype454, _size451);
+            (*(this->success)).resize(_size451);
+            uint32_t _i455;
+            for (_i455 = 0; _i455 < _size451; ++_i455)
             {
-              xfer += (*(this->success))[_i444].read(iprot);
+              xfer += (*(this->success))[_i455].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -49511,9 +49813,9 @@ uint32_t 
Airavata_shareResourceWithUsers_args::read(::apache::thrift::protocol::
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast445;
-          xfer += iprot->readI32(ecast445);
-          this->resourceType = ( 
::apache::airavata::model::group::ResourceType::type)ecast445;
+          int32_t ecast456;
+          xfer += iprot->readI32(ecast456);
+          this->resourceType = ( 
::apache::airavata::model::group::ResourceType::type)ecast456;
           isset_resourceType = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -49523,19 +49825,19 @@ uint32_t 
Airavata_shareResourceWithUsers_args::read(::apache::thrift::protocol::
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->userPermissionList.clear();
-            uint32_t _size446;
-            ::apache::thrift::protocol::TType _ktype447;
-            ::apache::thrift::protocol::TType _vtype448;
-            xfer += iprot->readMapBegin(_ktype447, _vtype448, _size446);
-            uint32_t _i450;
-            for (_i450 = 0; _i450 < _size446; ++_i450)
+            uint32_t _size457;
+            ::apache::thrift::protocol::TType _ktype458;
+            ::apache::thrift::protocol::TType _vtype459;
+            xfer += iprot->readMapBegin(_ktype458, _vtype459, _size457);
+            uint32_t _i461;
+            for (_i461 = 0; _i461 < _size457; ++_i461)
             {
-              std::string _key451;
-              xfer += iprot->readString(_key451);
-               ::apache::airavata::model::group::ResourcePermissionType::type& 
_val452 = this->userPermissionList[_key451];
-              int32_t ecast453;
-              xfer += iprot->readI32(ecast453);
-              _val452 = ( 
::apache::airavata::model::group::ResourcePermissionType::type)ecast453;
+              std::string _key462;
+              xfer += iprot->readString(_key462);
+               ::apache::airavata::model::group::ResourcePermissionType::type& 
_val463 = this->userPermissionList[_key462];
+              int32_t ecast464;
+              xfer += iprot->readI32(ecast464);
+              _val463 = ( 
::apache::airavata::model::group::ResourcePermissionType::type)ecast464;
             }
             xfer += iprot->readMapEnd();
           }
@@ -49582,11 +49884,11 @@ uint32_t 
Airavata_shareResourceWithUsers_args::write(::apache::thrift::protocol:
   xfer += oprot->writeFieldBegin("userPermissionList", 
::apache::thrift::protocol::T_MAP, 4);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, 
::apache::thrift::protocol::T_I32, 
static_cast<uint32_t>(this->userPermissionList.size()));
-    std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> 
::const_iterator _iter454;
-    for (_iter454 = this->userPermissionList.begin(); _iter454 != 
this->userPermissionList.end(); ++_iter454)
+    std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> 
::const_iterator _iter465;
+    for (_iter465 = this->userPermissionList.begin(); _iter465 != 
this->userPermissionList.end(); ++_iter465)
     {
-      xfer += oprot->writeString(_iter454->first);
-      xfer += oprot->writeI32((int32_t)_iter454->second);
+      xfer += oprot->writeString(_iter465->first);
+      xfer += oprot->writeI32((int32_t)_iter465->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -49622,11 +49924,11 @@ uint32_t 
Airavata_shareResourceWithUsers_pargs::write(::apache::thrift::protocol
   xfer += oprot->writeFieldBegin("userPermissionList", 
::apache::thrift::protocol::T_MAP, 4);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, 
::apache::thrift::protocol::T_I32, 
static_cast<uint32_t>((*(this->userPermissionList)).size()));
-    std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> 
::const_iterator _iter455;
-    for (_iter455 = (*(this->userPermissionList)).begin(); _iter455 != 
(*(this->userPermissionList)).end(); ++_iter455)
+    std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> 
::const_iterator _iter466;
+    for (_iter466 = (*(this->userPermissionList)).begin(); _iter466 != 
(*(this->userPermissionList)).end(); ++_iter466)
     {
-      xfer += oprot->writeString(_iter455->first);
-      xfer += oprot->writeI32((int32_t)_iter455->second);
+      xfer += oprot->writeString(_iter466->first);
+      xfer += oprot->writeI32((int32_t)_iter466->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -49872,9 +50174,9 @@ uint32_t 
Airavata_revokeSharingOfResourceFromUsers_args::read(::apache::thrift::
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast456;
-          xfer += iprot->readI32(ecast456);
-          this->resourceType = ( 
::apache::airavata::model::group::ResourceType::type)ecast456;
+          int32_t ecast467;
+          xfer += iprot->readI32(ecast467);
+          this->resourceType = ( 
::apache::airavata::model::group::ResourceType::type)ecast467;
           isset_resourceType = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -49884,19 +50186,19 @@ uint32_t 
Airavata_revokeSharingOfResourceFromUsers_args::read(::apache::thrift::
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->userPermissionList.clear();
-            uint32_t _size457;
-            ::apache::thrift::protocol::TType _ktype458;
-            ::apache::thrift::protocol::TType _vtype459;
-            xfer += iprot->readMapBegin(_ktype458, _vtype459, _size457);
-            uint32_t _i461;
-            for (_i461 = 0; _i461 < _size457; ++_i461)
+            uint32_t _size468;
+            ::apache::thrift::protocol::TType _ktype469;
+            ::apache::thrift::protocol::TType _vtype470;
+            xfer += iprot->readMapBegin(_ktype469, _vtype470, _size468);
+            uint32_t _i472;
+            for (_i472 = 0; _i472 < _size468; ++_i472)
             {
-              std::string _key462;
-              xfer += iprot->readString(_key462);
-               ::apache::airavata::model::group::ResourcePermissionType::type& 
_val463 = this->userPermissionList[_key462];
-              int32_t ecast464;
-              xfer += iprot->readI32(ecast464);
-              _val463 = ( 
::apache::airavata::model::group::ResourcePermissionType::type)ecast464;
+              std::string _key473;
+              xfer += iprot->readString(_key473);
+               ::apache::airavata::model::group::ResourcePermissionType::type& 
_val474 = this->userPermissionList[_key473];
+              int32_t ecast475;
+              xfer += iprot->readI32(ecast475);
+              _val474 = ( 
::apache::airavata::model::group::ResourcePermissionType::type)ecast475;
             }
             xfer += iprot->readMapEnd();
           }
@@ -49943,11 +50245,11 @@ uint32_t 
Airavata_revokeSharingOfResourceFromUsers_args::write(::apache::thrift:
   xfer += oprot->writeFieldBegin("userPermissionList", 
::apache::thrift::protocol::T_MAP, 4);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, 
::apache::thrift::protocol::T_I32, 
static_cast<uint32_t>(this->userPermissionList.size()));
-    std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> 
::const_iterator _iter465;
-    for (_iter465 = this->userPermissionList.begin(); _iter465 != 
this->userPermissionList.end(); ++_iter465)
+    std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> 
::const_iterator _iter476;
+    for (_iter476 = this->userPermissionList.begin(); _iter476 != 
this->userPermissionList.end(); ++_iter476)
     {
-      xfer += oprot->writeString(_iter465->first);
-      xfer += oprot->writeI32((int32_t)_iter465->second);
+      xfer += oprot->writeString(_iter476->first);
+      xfer += oprot->writeI32((int32_t)_iter476->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -49983,11 +50285,11 @@ uint32_t 
Airavata_revokeSharingOfResourceFromUsers_pargs::write(::apache::thrift
   xfer += oprot->writeFieldBegin("userPermissionList", 
::apache::thrift::protocol::T_MAP, 4);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, 
::apache::thrift::protocol::T_I32, 
static_cast<uint32_t>((*(this->userPermissionList)).size()));
-    std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> 
::const_iterator _iter466;
-    for (_iter466 = (*(this->userPermissionList)).begin(); _iter466 != 
(*(this->userPermissionList)).end(); ++_iter466)
+    std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> 
::const_iterator _iter477;
+    for (_iter477 = (*(this->userPermissionList)).begin(); _iter477 != 
(*(this->userPermissionList)).end(); ++_iter477)
     {
-      xfer += oprot->writeString(_iter466->first);
-      xfer += oprot->writeI32((int32_t)_iter466->second);
+      xfer += oprot->writeString(_iter477->first);
+      xfer += oprot->writeI32((int32_t)_iter477->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -50234,9 +50536,9 @@ uint32_t 
Airavata_getAllAccessibleUsers_args::read(::apache::thrift::protocol::T
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast467;
-          xfer += iprot->readI32(ecast467);
-          this->resourceType = ( 
::apache::airavata::model::group::ResourceType::type)ecast467;
+          int32_t ecast478;
+          xfer += iprot->readI32(ecast478);
+          this->resourceType = ( 
::apache::airavata::model::group::ResourceType::type)ecast478;
           isset_resourceType = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -50244,9 +50546,9 @@ uint32_t 
Airavata_getAllAccessibleUsers_args::read(::apache::thrift::protocol::T
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast468;
-          xfer += iprot->readI32(ecast468);
-          this->permissionType = ( 
::apache::airavata::model::group::ResourcePermissionType::type)ecast468;
+          int32_t ecast479;
+          xfer += iprot->readI32(ecast479);
+          this->permissionType = ( 
::apache::airavata::model::group::ResourcePermissionType::type)ecast479;
           isset_permissionType = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -50359,14 +50661,14 @@ uint32_t 
Airavata_getAllAccessibleUsers_result::read(::apache::thrift::protocol:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size469;
-            ::apache::thrift::protocol::TType _etype472;
-            xfer += iprot->readListBegin(_etype472, _size469);
-            this->success.resize(_size469);
-            uint32_t _i473;
-            for (_i473 = 0; _i473 < _size469; ++_i473)
+            uint32_t _size480;
+            ::apache::thrift::protocol::TType _etype483;
+            xfer += iprot->readListBegin(_etype483, _size480);
+            this->success.resize(_size480);
+            uint32_t _i484;
+            for (_i484 = 0; _i484 < _size480; ++_i484)
             {
-              xfer += iprot->readString(this->success[_i473]);
+              xfer += iprot->readString(this->success[_i484]);
             }
             xfer += iprot->readListEnd();
           }
@@ -50429,10 +50731,10 @@ uint32_t 
Airavata_getAllAccessibleUsers_result::write(::apache::thrift::protocol
     xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, 
static_cast<uint32_t>(this->success.size()));
-      std::vector<std::string> ::const_iterator _iter474;
-      for (_iter474 = this->success.begin(); _iter474 != this->success.end(); 
++_iter474)
+      std::vector<std::string> ::const_iterator _iter485;
+      for (_iter485 = this->success.begin(); _iter485 != this->success.end(); 
++_iter485)
       {
-        xfer += oprot->writeString((*_iter474));
+        xfer += oprot->writeString((*_iter485));
       }
       xfer += oprot->writeListEnd();
     }
@@ -50489,14 +50791,14 @@ uint32_t 
Airavata_getAllAccessibleUsers_presult::read(::apache::thrift::protocol
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size475;
-            ::apache::thrift::protocol::TType _etype478;
-            xfer += iprot->readListBegin(_etype478, _size475);
-            (*(this->success)).resize(_size475);
-            uint32_t _i479;
-            for (_i479 = 0; _i479 < _size475; ++_i479)
+            uint32_t _size486;
+            ::apache::thrift::protocol::TType _etype489;
+            xfer += iprot->readListBegin(_etype489, _size486);
+            (*(this->success)).resize(_size486);
+            uint32_t _i490;
+            for (_i490 = 0; _i490 < _size486; ++_i490)
             {
-              xfer += iprot->readString((*(this->success))[_i479]);
+              xfer += iprot->readString((*(this->success))[_i490]);
             }
             xfer += iprot->readListEnd();
           }
@@ -51893,14 +52195,14 @@ uint32_t 
Airavata_getAllGroupsUserBelongs_result::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size480;
-            ::apache::thrift::protocol::TType _etype483;
-            xfer += iprot->readListBegin(_etype483, _size480);
-            this->success.resize(_size480);
-            uint32_t _i484;
-            for (_i484 = 0; _i484 < _size480; ++_i484)
+            uint32_t _size491;
+            ::apache::thrift::protocol::TType _etype494;
+            xfer += iprot->readListBegin(_etype494, _size491);
+            this->success.resize(_size491);
+            uint32_t _i495;
+            for (_i495 = 0; _i495 < _size491; ++_i495)
             {
-              xfer += this->success[_i484].read(iprot);
+              xfer += this->success[_i495].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -51963,10 +52265,10 @@ uint32_t 
Airavata_getAllGroupsUserBelongs_result::write(::apache::thrift::protoc
     xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, 
static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::group::GroupModel> 
::const_iterator _iter485;
-      for (_iter485 = this->success.begin(); _iter485 != this->success.end(); 
++_iter485)
+      std::vector< ::apache::airavata::model::group::GroupModel> 
::const_iterator _iter496;
+      for (_iter496 = this->success.begin(); _iter496 != this->success.end(); 
++_iter496)
       {
-        xfer += (*_iter485).write(oprot);
+        xfer += (*_iter496).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -52023,14 +52325,14 @@ uint32_t 
Airavata_getAllGroupsUserBelongs_presult::read(::apache::thrift::protoc
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size486;
-            ::apache::thrift::protocol::TType _etype489;
-            xfer += iprot->readListBegin(_etype489, _size486);
-            (*(this->success)).resize(_size486);
-            uint32_t _i490;
-            for (_i490 = 0; _i490 < _size486; ++_i490)
+            uint32_t _size497;
+            ::apache::thrift::protocol::TType _etype500;
+            xfer += iprot->readListBegin(_etype500, _size497);
+            (*(this->success)).resize(_size497);
+            uint32_t _i501;
+            for (_i501 = 0; _i501 < _size497; ++_i501)
             {
-              xfer += (*(this->success))[_i490].read(iprot);
+              xfer += (*(this->success))[_i501].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -62687,6 +62989,76 @@ void 
AiravataClient::recv_getAllWorkflows(std::vector<std::string> & _return)
   throw 
::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT,
 "getAllWorkflows failed: unknown result");
 }
 
+void AiravataClient::getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken)
+{
+  send_getLatestQueueStatuses(authzToken);
+  recv_getLatestQueueStatuses(_return);
+}
+
+void AiravataClient::send_getLatestQueueStatuses(const  
::apache::airavata::model::security::AuthzToken& authzToken)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("getLatestQueueStatuses", 
::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getLatestQueueStatuses_pargs args;
+  args.authzToken = &authzToken;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("getLatestQueueStatuses") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_getLatestQueueStatuses_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  throw 
::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT,
 "getLatestQueueStatuses failed: unknown result");
+}
+
 void AiravataClient::getWorkflow( ::WorkflowModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
workflowTemplateId)
 {
   send_getWorkflow(authzToken, workflowTemplateId);
@@ -73821,6 +74193,72 @@ void 
AiravataProcessor::process_getAllWorkflows(int32_t seqid, ::apache::thrift:
   }
 }
 
+void AiravataProcessor::process_getLatestQueueStatuses(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext)
+{
+  void* ctx = NULL;
+  if (this->eventHandler_.get() != NULL) {
+    ctx = this->eventHandler_->getContext("Airavata.getLatestQueueStatuses", 
callContext);
+  }
+  ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), 
ctx, "Airavata.getLatestQueueStatuses");
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preRead(ctx, "Airavata.getLatestQueueStatuses");
+  }
+
+  Airavata_getLatestQueueStatuses_args args;
+  args.read(iprot);
+  iprot->readMessageEnd();
+  uint32_t bytes = iprot->getTransport()->readEnd();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postRead(ctx, "Airavata.getLatestQueueStatuses", 
bytes);
+  }
+
+  Airavata_getLatestQueueStatuses_result result;
+  try {
+    iface_->getLatestQueueStatuses(result.success, args.authzToken);
+    result.__isset.success = true;
+  } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
+    result.ire = ire;
+    result.__isset.ire = true;
+  } catch ( ::apache::airavata::api::error::AiravataClientException &ace) {
+    result.ace = ace;
+    result.__isset.ace = true;
+  } 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.getLatestQueueStatuses");
+    }
+
+    ::apache::thrift::TApplicationException x(e.what());
+    oprot->writeMessageBegin("getLatestQueueStatuses", 
::apache::thrift::protocol::T_EXCEPTION, seqid);
+    x.write(oprot);
+    oprot->writeMessageEnd();
+    oprot->getTransport()->writeEnd();
+    oprot->getTransport()->flush();
+    return;
+  }
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preWrite(ctx, "Airavata.getLatestQueueStatuses");
+  }
+
+  oprot->writeMessageBegin("getLatestQueueStatuses", 
::apache::thrift::protocol::T_REPLY, seqid);
+  result.write(oprot);
+  oprot->writeMessageEnd();
+  bytes = oprot->getTransport()->writeEnd();
+  oprot->getTransport()->flush();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postWrite(ctx, "Airavata.getLatestQueueStatuses", 
bytes);
+  }
+}
+
 void AiravataProcessor::process_getWorkflow(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext)
 {
   void* ctx = NULL;
@@ -90119,6 +90557,106 @@ void 
AiravataConcurrentClient::recv_getAllWorkflows(std::vector<std::string> & _
   } // end while(true)
 }
 
+void AiravataConcurrentClient::getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken)
+{
+  int32_t seqid = send_getLatestQueueStatuses(authzToken);
+  recv_getLatestQueueStatuses(_return, seqid);
+}
+
+int32_t AiravataConcurrentClient::send_getLatestQueueStatuses(const  
::apache::airavata::model::security::AuthzToken& authzToken)
+{
+  int32_t cseqid = this->sync_.generateSeqId();
+  ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
+  oprot_->writeMessageBegin("getLatestQueueStatuses", 
::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getLatestQueueStatuses_pargs args;
+  args.authzToken = &authzToken;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+
+  sentry.commit();
+  return cseqid;
+}
+
+void AiravataConcurrentClient::recv_getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return, const int32_t 
seqid)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  // the read mutex gets dropped and reacquired as part of waitForWork()
+  // The destructor of this sentry wakes up other clients
+  ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
+
+  while(true) {
+    if(!this->sync_.getPending(fname, mtype, rseqid)) {
+      iprot_->readMessageBegin(fname, mtype, rseqid);
+    }
+    if(seqid == rseqid) {
+      if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+        ::apache::thrift::TApplicationException x;
+        x.read(iprot_);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+        sentry.commit();
+        throw x;
+      }
+      if (mtype != ::apache::thrift::protocol::T_REPLY) {
+        iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+      }
+      if (fname.compare("getLatestQueueStatuses") != 0) {
+        iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+
+        // in a bad state, don't commit
+        using ::apache::thrift::protocol::TProtocolException;
+        throw TProtocolException(TProtocolException::INVALID_DATA);
+      }
+      Airavata_getLatestQueueStatuses_presult result;
+      result.success = &_return;
+      result.read(iprot_);
+      iprot_->readMessageEnd();
+      iprot_->getTransport()->readEnd();
+
+      if (result.__isset.success) {
+        // _return pointer has now been filled
+        sentry.commit();
+        return;
+      }
+      if (result.__isset.ire) {
+        sentry.commit();
+        throw result.ire;
+      }
+      if (result.__isset.ace) {
+        sentry.commit();
+        throw result.ace;
+      }
+      if (result.__isset.ase) {
+        sentry.commit();
+        throw result.ase;
+      }
+      if (result.__isset.ae) {
+        sentry.commit();
+        throw result.ae;
+      }
+      // in a bad state, don't commit
+      throw 
::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT,
 "getLatestQueueStatuses failed: unknown result");
+    }
+    // seqid != rseqid
+    this->sync_.updatePending(fname, mtype, rseqid);
+
+    // this will temporarily unlock the readMutex, and let other clients get 
work done
+    this->sync_.waitForWork(seqid);
+  } // end while(true)
+}
+
 void AiravataConcurrentClient::getWorkflow( ::WorkflowModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
workflowTemplateId)
 {
   int32_t seqid = send_getWorkflow(authzToken, workflowTemplateId);

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/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 9eb38ef..fb83b87 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
@@ -2831,6 +2831,7 @@ class AiravataIf {
    */
   virtual bool deleteUserStoragePreference(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
userId, const std::string& gatewayID, const std::string& userStorageId) = 0;
   virtual void getAllWorkflows(std::vector<std::string> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId) = 0;
+  virtual void getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken) = 0;
 
   /**
    * 
@@ -3404,6 +3405,9 @@ class AiravataNull : virtual public AiravataIf {
   void getAllWorkflows(std::vector<std::string> & /* _return */, const  
::apache::airavata::model::security::AuthzToken& /* authzToken */, const 
std::string& /* gatewayId */) {
     return;
   }
+  void getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & /* _return */, const  
::apache::airavata::model::security::AuthzToken& /* authzToken */) {
+    return;
+  }
   void getWorkflow( ::WorkflowModel& /* _return */, const  
::apache::airavata::model::security::AuthzToken& /* authzToken */, const 
std::string& /* workflowTemplateId */) {
     return;
   }
@@ -24331,6 +24335,136 @@ class Airavata_getAllWorkflows_presult {
 };
 
 
+class Airavata_getLatestQueueStatuses_args {
+ public:
+
+  Airavata_getLatestQueueStatuses_args(const 
Airavata_getLatestQueueStatuses_args&);
+  Airavata_getLatestQueueStatuses_args& operator=(const 
Airavata_getLatestQueueStatuses_args&);
+  Airavata_getLatestQueueStatuses_args() {
+  }
+
+  virtual ~Airavata_getLatestQueueStatuses_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+
+  void __set_authzToken(const  
::apache::airavata::model::security::AuthzToken& val);
+
+  bool operator == (const Airavata_getLatestQueueStatuses_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getLatestQueueStatuses_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getLatestQueueStatuses_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getLatestQueueStatuses_pargs {
+ public:
+
+
+  virtual ~Airavata_getLatestQueueStatuses_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getLatestQueueStatuses_result__isset {
+  _Airavata_getLatestQueueStatuses_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_getLatestQueueStatuses_result__isset;
+
+class Airavata_getLatestQueueStatuses_result {
+ public:
+
+  Airavata_getLatestQueueStatuses_result(const 
Airavata_getLatestQueueStatuses_result&);
+  Airavata_getLatestQueueStatuses_result& operator=(const 
Airavata_getLatestQueueStatuses_result&);
+  Airavata_getLatestQueueStatuses_result() {
+  }
+
+  virtual ~Airavata_getLatestQueueStatuses_result() throw();
+  std::vector< ::apache::airavata::model::status::QueueStatusModel>  success;
+   ::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_getLatestQueueStatuses_result__isset __isset;
+
+  void __set_success(const std::vector< 
::apache::airavata::model::status::QueueStatusModel> & val);
+
+  void __set_ire(const  
::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  
::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  
::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& 
val);
+
+  bool operator == (const Airavata_getLatestQueueStatuses_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getLatestQueueStatuses_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getLatestQueueStatuses_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getLatestQueueStatuses_presult__isset {
+  _Airavata_getLatestQueueStatuses_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_getLatestQueueStatuses_presult__isset;
+
+class Airavata_getLatestQueueStatuses_presult {
+ public:
+
+
+  virtual ~Airavata_getLatestQueueStatuses_presult() throw();
+  std::vector< ::apache::airavata::model::status::QueueStatusModel> * success;
+   ::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_getLatestQueueStatuses_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
 class Airavata_getWorkflow_args {
  public:
 
@@ -27445,6 +27579,9 @@ class AiravataClient : virtual public AiravataIf {
   void getAllWorkflows(std::vector<std::string> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
   void send_getAllWorkflows(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
   void recv_getAllWorkflows(std::vector<std::string> & _return);
+  void getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken);
+  void send_getLatestQueueStatuses(const  
::apache::airavata::model::security::AuthzToken& authzToken);
+  void recv_getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return);
   void getWorkflow( ::WorkflowModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
workflowTemplateId);
   void send_getWorkflow(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
workflowTemplateId);
   void recv_getWorkflow( ::WorkflowModel& _return);
@@ -27665,6 +27802,7 @@ class AiravataProcessor : public 
::apache::thrift::TDispatchProcessor {
   void process_deleteUserComputeResourcePreference(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_deleteUserStoragePreference(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getAllWorkflows(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getLatestQueueStatuses(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getWorkflow(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_deleteWorkflow(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_registerWorkflow(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
@@ -27835,6 +27973,7 @@ class AiravataProcessor : public 
::apache::thrift::TDispatchProcessor {
     processMap_["deleteUserComputeResourcePreference"] = 
&AiravataProcessor::process_deleteUserComputeResourcePreference;
     processMap_["deleteUserStoragePreference"] = 
&AiravataProcessor::process_deleteUserStoragePreference;
     processMap_["getAllWorkflows"] = 
&AiravataProcessor::process_getAllWorkflows;
+    processMap_["getLatestQueueStatuses"] = 
&AiravataProcessor::process_getLatestQueueStatuses;
     processMap_["getWorkflow"] = &AiravataProcessor::process_getWorkflow;
     processMap_["deleteWorkflow"] = &AiravataProcessor::process_deleteWorkflow;
     processMap_["registerWorkflow"] = 
&AiravataProcessor::process_registerWorkflow;
@@ -29302,6 +29441,16 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
+  void getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getLatestQueueStatuses(_return, authzToken);
+    }
+    ifaces_[i]->getLatestQueueStatuses(_return, authzToken);
+    return;
+  }
+
   void getWorkflow( ::WorkflowModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
workflowTemplateId) {
     size_t sz = ifaces_.size();
     size_t i = 0;
@@ -29958,6 +30107,9 @@ class AiravataConcurrentClient : virtual public 
AiravataIf {
   void getAllWorkflows(std::vector<std::string> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
   int32_t send_getAllWorkflows(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
   void recv_getAllWorkflows(std::vector<std::string> & _return, const int32_t 
seqid);
+  void getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken);
+  int32_t send_getLatestQueueStatuses(const  
::apache::airavata::model::security::AuthzToken& authzToken);
+  void recv_getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return, const int32_t 
seqid);
   void getWorkflow( ::WorkflowModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
workflowTemplateId);
   int32_t send_getWorkflow(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
workflowTemplateId);
   void recv_getWorkflow( ::WorkflowModel& _return, const int32_t seqid);

http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/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 7e696db..2a0bec1 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
@@ -3289,6 +3289,11 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getAllWorkflows\n");
   }
 
+  void getLatestQueueStatuses(std::vector< 
::apache::airavata::model::status::QueueStatusModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken) {
+    // Your implementation goes here
+    printf("getLatestQueueStatuses\n");
+  }
+
   /**
    * 
    * API Methods Related for Work-Flow Submission Features.

Reply via email to