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 2014/07/07 07:25:17 UTC

[1/4] API Methods required by PHP Gateway - AIRAVATA-1296

Repository: airavata
Updated Branches:
  refs/heads/master 5328757d6 -> 2d5d054bc


http://git-wip-us.apache.org/repos/asf/airavata/blob/2d5d054b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index e84e0ed..9646024 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -56,8 +56,10 @@ interface AiravataIf {
   public function deleteApplicationInterface($appInterfaceId);
   public function getApplicationInputs($appInterfaceId);
   public function getApplicationOutputs($appInterfaceId);
+  public function getAvailableAppInterfaceComputeResources($appInterfaceId);
   public function registerComputeResource(\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription);
   public function getComputeResource($computeResourceId);
+  public function getAllComputeResourceNames();
   public function updateComputeResource($computeResourceId, \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription);
   public function deleteComputeResource($computeResourceId);
   public function addLocalSubmissionDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\LOCALSubmission $localSubmission);
@@ -2430,6 +2432,66 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("getApplicationOutputs failed: unknown result");
   }
 
+  public function getAvailableAppInterfaceComputeResources($appInterfaceId)
+  {
+    $this->send_getAvailableAppInterfaceComputeResources($appInterfaceId);
+    return $this->recv_getAvailableAppInterfaceComputeResources();
+  }
+
+  public function send_getAvailableAppInterfaceComputeResources($appInterfaceId)
+  {
+    $args = new \Airavata\API\Airavata_getAvailableAppInterfaceComputeResources_args();
+    $args->appInterfaceId = $appInterfaceId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getAvailableAppInterfaceComputeResources', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getAvailableAppInterfaceComputeResources', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getAvailableAppInterfaceComputeResources()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAvailableAppInterfaceComputeResources_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_getAvailableAppInterfaceComputeResources_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    throw new \Exception("getAvailableAppInterfaceComputeResources failed: unknown result");
+  }
+
   public function registerComputeResource(\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription)
   {
     $this->send_registerComputeResource($computeResourceDescription);
@@ -2550,6 +2612,65 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("getComputeResource failed: unknown result");
   }
 
+  public function getAllComputeResourceNames()
+  {
+    $this->send_getAllComputeResourceNames();
+    return $this->recv_getAllComputeResourceNames();
+  }
+
+  public function send_getAllComputeResourceNames()
+  {
+    $args = new \Airavata\API\Airavata_getAllComputeResourceNames_args();
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getAllComputeResourceNames', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getAllComputeResourceNames', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getAllComputeResourceNames()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllComputeResourceNames_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_getAllComputeResourceNames_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    throw new \Exception("getAllComputeResourceNames failed: unknown result");
+  }
+
   public function updateComputeResource($computeResourceId, \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription)
   {
     $this->send_updateComputeResource($computeResourceId, $computeResourceDescription);
@@ -12961,30 +13082,29 @@ class Airavata_getApplicationOutputs_result {
 
 }
 
-class Airavata_registerComputeResource_args {
+class Airavata_getAvailableAppInterfaceComputeResources_args {
   static $_TSPEC;
 
-  public $computeResourceDescription = null;
+  public $appInterfaceId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'computeResourceDescription',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription',
+          'var' => 'appInterfaceId',
+          'type' => TType::STRING,
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['computeResourceDescription'])) {
-        $this->computeResourceDescription = $vals['computeResourceDescription'];
+      if (isset($vals['appInterfaceId'])) {
+        $this->appInterfaceId = $vals['appInterfaceId'];
       }
     }
   }
 
   public function getName() {
-    return 'Airavata_registerComputeResource_args';
+    return 'Airavata_getAvailableAppInterfaceComputeResources_args';
   }
 
   public function read($input)
@@ -13003,9 +13123,8 @@ class Airavata_registerComputeResource_args {
       switch ($fid)
       {
         case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->computeResourceDescription = new \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription();
-            $xfer += $this->computeResourceDescription->read($input);
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->appInterfaceId);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13022,13 +13141,10 @@ class Airavata_registerComputeResource_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_registerComputeResource_args');
-    if ($this->computeResourceDescription !== null) {
-      if (!is_object($this->computeResourceDescription)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('computeResourceDescription', TType::STRUCT, 1);
-      $xfer += $this->computeResourceDescription->write($output);
+    $xfer += $output->writeStructBegin('Airavata_getAvailableAppInterfaceComputeResources_args');
+    if ($this->appInterfaceId !== null) {
+      $xfer += $output->writeFieldBegin('appInterfaceId', TType::STRING, 1);
+      $xfer += $output->writeString($this->appInterfaceId);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -13038,7 +13154,7 @@ class Airavata_registerComputeResource_args {
 
 }
 
-class Airavata_registerComputeResource_result {
+class Airavata_getAvailableAppInterfaceComputeResources_result {
   static $_TSPEC;
 
   public $success = null;
@@ -13051,7 +13167,11 @@ class Airavata_registerComputeResource_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::STRING,
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
           ),
         1 => array(
           'var' => 'ire',
@@ -13087,7 +13207,7 @@ class Airavata_registerComputeResource_result {
   }
 
   public function getName() {
-    return 'Airavata_registerComputeResource_result';
+    return 'Airavata_getAvailableAppInterfaceComputeResources_result';
   }
 
   public function read($input)
@@ -13106,8 +13226,18 @@ class Airavata_registerComputeResource_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->success);
+          if ($ftype == TType::LST) {
+            $this->success = array();
+            $_size93 = 0;
+            $_etype96 = 0;
+            $xfer += $input->readListBegin($_etype96, $_size93);
+            for ($_i97 = 0; $_i97 < $_size93; ++$_i97)
+            {
+              $elem98 = null;
+              $xfer += $input->readString($elem98);
+              $this->success []= $elem98;
+            }
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13148,10 +13278,22 @@ class Airavata_registerComputeResource_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_registerComputeResource_result');
+    $xfer += $output->writeStructBegin('Airavata_getAvailableAppInterfaceComputeResources_result');
     if ($this->success !== null) {
-      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
-      $xfer += $output->writeString($this->success);
+      if (!is_array($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
+      {
+        $output->writeListBegin(TType::STRING, count($this->success));
+        {
+          foreach ($this->success as $iter99)
+          {
+            $xfer += $output->writeString($iter99);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -13176,29 +13318,30 @@ class Airavata_registerComputeResource_result {
 
 }
 
-class Airavata_getComputeResource_args {
+class Airavata_registerComputeResource_args {
   static $_TSPEC;
 
-  public $computeResourceId = null;
+  public $computeResourceDescription = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'computeResourceId',
-          'type' => TType::STRING,
+          'var' => 'computeResourceDescription',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription',
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['computeResourceId'])) {
-        $this->computeResourceId = $vals['computeResourceId'];
+      if (isset($vals['computeResourceDescription'])) {
+        $this->computeResourceDescription = $vals['computeResourceDescription'];
       }
     }
   }
 
   public function getName() {
-    return 'Airavata_getComputeResource_args';
+    return 'Airavata_registerComputeResource_args';
   }
 
   public function read($input)
@@ -13217,8 +13360,9 @@ class Airavata_getComputeResource_args {
       switch ($fid)
       {
         case 1:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->computeResourceId);
+          if ($ftype == TType::STRUCT) {
+            $this->computeResourceDescription = new \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription();
+            $xfer += $this->computeResourceDescription->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13235,10 +13379,13 @@ class Airavata_getComputeResource_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getComputeResource_args');
-    if ($this->computeResourceId !== null) {
-      $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 1);
-      $xfer += $output->writeString($this->computeResourceId);
+    $xfer += $output->writeStructBegin('Airavata_registerComputeResource_args');
+    if ($this->computeResourceDescription !== null) {
+      if (!is_object($this->computeResourceDescription)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('computeResourceDescription', TType::STRUCT, 1);
+      $xfer += $this->computeResourceDescription->write($output);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -13248,7 +13395,7 @@ class Airavata_getComputeResource_args {
 
 }
 
-class Airavata_getComputeResource_result {
+class Airavata_registerComputeResource_result {
   static $_TSPEC;
 
   public $success = null;
@@ -13261,8 +13408,7 @@ class Airavata_getComputeResource_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription',
+          'type' => TType::STRING,
           ),
         1 => array(
           'var' => 'ire',
@@ -13298,7 +13444,7 @@ class Airavata_getComputeResource_result {
   }
 
   public function getName() {
-    return 'Airavata_getComputeResource_result';
+    return 'Airavata_registerComputeResource_result';
   }
 
   public function read($input)
@@ -13317,9 +13463,8 @@ class Airavata_getComputeResource_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription();
-            $xfer += $this->success->read($input);
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->success);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13360,13 +13505,10 @@ class Airavata_getComputeResource_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getComputeResource_result');
+    $xfer += $output->writeStructBegin('Airavata_registerComputeResource_result');
     if ($this->success !== null) {
-      if (!is_object($this->success)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
-      $xfer += $this->success->write($output);
+      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
+      $xfer += $output->writeString($this->success);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -13391,11 +13533,10 @@ class Airavata_getComputeResource_result {
 
 }
 
-class Airavata_updateComputeResource_args {
+class Airavata_getComputeResource_args {
   static $_TSPEC;
 
   public $computeResourceId = null;
-  public $computeResourceDescription = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -13404,25 +13545,17 @@ class Airavata_updateComputeResource_args {
           'var' => 'computeResourceId',
           'type' => TType::STRING,
           ),
-        2 => array(
-          'var' => 'computeResourceDescription',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription',
-          ),
         );
     }
     if (is_array($vals)) {
       if (isset($vals['computeResourceId'])) {
         $this->computeResourceId = $vals['computeResourceId'];
       }
-      if (isset($vals['computeResourceDescription'])) {
-        $this->computeResourceDescription = $vals['computeResourceDescription'];
-      }
     }
   }
 
   public function getName() {
-    return 'Airavata_updateComputeResource_args';
+    return 'Airavata_getComputeResource_args';
   }
 
   public function read($input)
@@ -13447,14 +13580,6 @@ class Airavata_updateComputeResource_args {
             $xfer += $input->skip($ftype);
           }
           break;
-        case 2:
-          if ($ftype == TType::STRUCT) {
-            $this->computeResourceDescription = new \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription();
-            $xfer += $this->computeResourceDescription->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -13467,20 +13592,12 @@ class Airavata_updateComputeResource_args {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_updateComputeResource_args');
+    $xfer += $output->writeStructBegin('Airavata_getComputeResource_args');
     if ($this->computeResourceId !== null) {
       $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 1);
       $xfer += $output->writeString($this->computeResourceId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->computeResourceDescription !== null) {
-      if (!is_object($this->computeResourceDescription)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('computeResourceDescription', TType::STRUCT, 2);
-      $xfer += $this->computeResourceDescription->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -13488,7 +13605,7 @@ class Airavata_updateComputeResource_args {
 
 }
 
-class Airavata_updateComputeResource_result {
+class Airavata_getComputeResource_result {
   static $_TSPEC;
 
   public $success = null;
@@ -13501,7 +13618,8 @@ class Airavata_updateComputeResource_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::BOOL,
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription',
           ),
         1 => array(
           'var' => 'ire',
@@ -13537,7 +13655,7 @@ class Airavata_updateComputeResource_result {
   }
 
   public function getName() {
-    return 'Airavata_updateComputeResource_result';
+    return 'Airavata_getComputeResource_result';
   }
 
   public function read($input)
@@ -13556,8 +13674,9 @@ class Airavata_updateComputeResource_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::BOOL) {
-            $xfer += $input->readBool($this->success);
+          if ($ftype == TType::STRUCT) {
+            $this->success = new \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription();
+            $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -13598,10 +13717,470 @@ class Airavata_updateComputeResource_result {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_updateComputeResource_result');
+    $xfer += $output->writeStructBegin('Airavata_getComputeResource_result');
     if ($this->success !== null) {
-      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
-      $xfer += $output->writeBool($this->success);
+      if (!is_object($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+      $xfer += $this->success->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllComputeResourceNames_args {
+  static $_TSPEC;
+
+
+  public function __construct() {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        );
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllComputeResourceNames_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllComputeResourceNames_args');
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllComputeResourceNames_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::MAP,
+          'ktype' => TType::STRING,
+          'vtype' => TType::STRING,
+          'key' => array(
+            'type' => TType::STRING,
+          ),
+          'val' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllComputeResourceNames_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::MAP) {
+            $this->success = array();
+            $_size100 = 0;
+            $_ktype101 = 0;
+            $_vtype102 = 0;
+            $xfer += $input->readMapBegin($_ktype101, $_vtype102, $_size100);
+            for ($_i104 = 0; $_i104 < $_size100; ++$_i104)
+            {
+              $key105 = '';
+              $val106 = '';
+              $xfer += $input->readString($key105);
+              $xfer += $input->readString($val106);
+              $this->success[$key105] = $val106;
+            }
+            $xfer += $input->readMapEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllComputeResourceNames_result');
+    if ($this->success !== null) {
+      if (!is_array($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::MAP, 0);
+      {
+        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
+        {
+          foreach ($this->success as $kiter107 => $viter108)
+          {
+            $xfer += $output->writeString($kiter107);
+            $xfer += $output->writeString($viter108);
+          }
+        }
+        $output->writeMapEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_updateComputeResource_args {
+  static $_TSPEC;
+
+  public $computeResourceId = null;
+  public $computeResourceDescription = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'computeResourceId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'computeResourceDescription',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['computeResourceId'])) {
+        $this->computeResourceId = $vals['computeResourceId'];
+      }
+      if (isset($vals['computeResourceDescription'])) {
+        $this->computeResourceDescription = $vals['computeResourceDescription'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_updateComputeResource_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->computeResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->computeResourceDescription = new \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription();
+            $xfer += $this->computeResourceDescription->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_updateComputeResource_args');
+    if ($this->computeResourceId !== null) {
+      $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 1);
+      $xfer += $output->writeString($this->computeResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->computeResourceDescription !== null) {
+      if (!is_object($this->computeResourceDescription)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('computeResourceDescription', TType::STRUCT, 2);
+      $xfer += $this->computeResourceDescription->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_updateComputeResource_result {
+  static $_TSPEC;
+
+  public $success = null;
+  public $ire = null;
+  public $ace = null;
+  public $ase = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_updateComputeResource_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_updateComputeResource_result');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -16797,17 +17376,17 @@ class Airavata_changeJobSubmissionPriorities_args {
         case 1:
           if ($ftype == TType::MAP) {
             $this->jobSubmissionPriorityMap = array();
-            $_size93 = 0;
-            $_ktype94 = 0;
-            $_vtype95 = 0;
-            $xfer += $input->readMapBegin($_ktype94, $_vtype95, $_size93);
-            for ($_i97 = 0; $_i97 < $_size93; ++$_i97)
+            $_size109 = 0;
+            $_ktype110 = 0;
+            $_vtype111 = 0;
+            $xfer += $input->readMapBegin($_ktype110, $_vtype111, $_size109);
+            for ($_i113 = 0; $_i113 < $_size109; ++$_i113)
             {
-              $key98 = '';
-              $val99 = 0;
-              $xfer += $input->readString($key98);
-              $xfer += $input->readI32($val99);
-              $this->jobSubmissionPriorityMap[$key98] = $val99;
+              $key114 = '';
+              $val115 = 0;
+              $xfer += $input->readString($key114);
+              $xfer += $input->readI32($val115);
+              $this->jobSubmissionPriorityMap[$key114] = $val115;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -16835,10 +17414,10 @@ class Airavata_changeJobSubmissionPriorities_args {
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->jobSubmissionPriorityMap));
         {
-          foreach ($this->jobSubmissionPriorityMap as $kiter100 => $viter101)
+          foreach ($this->jobSubmissionPriorityMap as $kiter116 => $viter117)
           {
-            $xfer += $output->writeString($kiter100);
-            $xfer += $output->writeI32($viter101);
+            $xfer += $output->writeString($kiter116);
+            $xfer += $output->writeI32($viter117);
           }
         }
         $output->writeMapEnd();
@@ -17041,17 +17620,17 @@ class Airavata_changeDataMovementPriorities_args {
         case 1:
           if ($ftype == TType::MAP) {
             $this->dataMovementPriorityMap = array();
-            $_size102 = 0;
-            $_ktype103 = 0;
-            $_vtype104 = 0;
-            $xfer += $input->readMapBegin($_ktype103, $_vtype104, $_size102);
-            for ($_i106 = 0; $_i106 < $_size102; ++$_i106)
+            $_size118 = 0;
+            $_ktype119 = 0;
+            $_vtype120 = 0;
+            $xfer += $input->readMapBegin($_ktype119, $_vtype120, $_size118);
+            for ($_i122 = 0; $_i122 < $_size118; ++$_i122)
             {
-              $key107 = '';
-              $val108 = 0;
-              $xfer += $input->readString($key107);
-              $xfer += $input->readI32($val108);
-              $this->dataMovementPriorityMap[$key107] = $val108;
+              $key123 = '';
+              $val124 = 0;
+              $xfer += $input->readString($key123);
+              $xfer += $input->readI32($val124);
+              $this->dataMovementPriorityMap[$key123] = $val124;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -17079,10 +17658,10 @@ class Airavata_changeDataMovementPriorities_args {
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->dataMovementPriorityMap));
         {
-          foreach ($this->dataMovementPriorityMap as $kiter109 => $viter110)
+          foreach ($this->dataMovementPriorityMap as $kiter125 => $viter126)
           {
-            $xfer += $output->writeString($kiter109);
-            $xfer += $output->writeI32($viter110);
+            $xfer += $output->writeString($kiter125);
+            $xfer += $output->writeI32($viter126);
           }
         }
         $output->writeMapEnd();
@@ -17744,7 +18323,7 @@ class Airavata_registerGatewayResourceProfile_result {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::STRING,
+          'type' => TType::BOOL,
           ),
         1 => array(
           'var' => 'ire',
@@ -17799,8 +18378,8 @@ class Airavata_registerGatewayResourceProfile_result {
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->success);
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -17843,8 +18422,8 @@ class Airavata_registerGatewayResourceProfile_result {
     $xfer = 0;
     $xfer += $output->writeStructBegin('Airavata_registerGatewayResourceProfile_result');
     if ($this->success !== null) {
-      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
-      $xfer += $output->writeString($this->success);
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
+      $xfer += $output->writeBool($this->success);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->ire !== null) {
@@ -19166,15 +19745,15 @@ class Airavata_getAllGatewayComputeResourcePreferences_result {
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size111 = 0;
-            $_etype114 = 0;
-            $xfer += $input->readListBegin($_etype114, $_size111);
-            for ($_i115 = 0; $_i115 < $_size111; ++$_i115)
+            $_size127 = 0;
+            $_etype130 = 0;
+            $xfer += $input->readListBegin($_etype130, $_size127);
+            for ($_i131 = 0; $_i131 < $_size127; ++$_i131)
             {
-              $elem116 = null;
-              $elem116 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
-              $xfer += $elem116->read($input);
-              $this->success []= $elem116;
+              $elem132 = null;
+              $elem132 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
+              $xfer += $elem132->read($input);
+              $this->success []= $elem132;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -19226,9 +19805,9 @@ class Airavata_getAllGatewayComputeResourcePreferences_result {
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter117)
+          foreach ($this->success as $iter133)
           {
-            $xfer += $iter117->write($output);
+            $xfer += $iter133->write($output);
           }
         }
         $output->writeListEnd();

http://git-wip-us.apache.org/repos/asf/airavata/blob/2d5d054b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
index 7ab498d..b5cd0cd 100644
--- a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
@@ -732,6 +732,21 @@ service Airavata {
                 2: airavataErrors.AiravataClientException ace,
                 3: airavataErrors.AiravataSystemException ase)
 
+  /**
+   * Fetch a list of all deployed Compute Hosts for a given application interfaces.
+   *
+   * @param appInterfaceId
+   *   The identifier for the requested application interface
+   *
+   * @return list<string>
+   *   Returns a list of available Resources. Deployments of each modules listed within the interfaces will be listed.
+   *
+  */
+  list<string> getAvailableAppInterfaceComputeResources(1: required string appInterfaceId)
+      	throws (1: airavataErrors.InvalidRequestException ire,
+                2: airavataErrors.AiravataClientException ace,
+                3: airavataErrors.AiravataSystemException ase)
+
 /*
  * Compute Resource
  *
@@ -769,6 +784,18 @@ service Airavata {
                 3: airavataErrors.AiravataSystemException ase)
 
   /**
+   * Fetch all registered Compute Resources.
+   *
+   * @return A map of registered compute resource id's and thier corresponding hostnames.
+   *    Compute Resource Object created from the datamodel..
+   *
+  */
+  map<string, string> getAllComputeResourceNames()
+      	throws (1: airavataErrors.InvalidRequestException ire,
+                2: airavataErrors.AiravataClientException ace,
+                3: airavataErrors.AiravataSystemException ase)
+
+  /**
    * Update a Compute Resource.
    *
    * @param computeResourceId
@@ -1128,12 +1155,14 @@ service Airavata {
    *
    * @param gatewayResourceProfile
    *    Gateway Resource Profile Object.
+   *    The GatewayID should be obtained from Airavata gateway registration and passed to register a corresponding
+   *      resource profile.
    *
-   * @return gatewayID
-   *   Returns a server-side generated airavata compute resource globally unique identifier.
+   * @return status
+   *   Returns a success/failure of the update.
    *
   */
-  string registerGatewayResourceProfile(
+  bool registerGatewayResourceProfile(
                     1: required gatewayResourceProfileModel.GatewayResourceProfile gatewayResourceProfile)
     	throws (1: airavataErrors.InvalidRequestException ire,
               2: airavataErrors.AiravataClientException ace,


[2/4] API Methods required by PHP Gateway - AIRAVATA-1296

Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/2d5d054b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
index 9d6a6fd..d9743be 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
@@ -9277,6 +9277,263 @@ uint32_t Airavata_getApplicationOutputs_presult::read(::apache::thrift::protocol
   return xfer;
 }
 
+uint32_t Airavata_getAvailableAppInterfaceComputeResources_args::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_appInterfaceId = 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->appInterfaceId);
+          isset_appInterfaceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_appInterfaceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_getAvailableAppInterfaceComputeResources_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getAvailableAppInterfaceComputeResources_args");
+
+  xfer += oprot->writeFieldBegin("appInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->appInterfaceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAvailableAppInterfaceComputeResources_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getAvailableAppInterfaceComputeResources_pargs");
+
+  xfer += oprot->writeFieldBegin("appInterfaceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->appInterfaceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAvailableAppInterfaceComputeResources_result::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;
+
+
+  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_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size147;
+            ::apache::thrift::protocol::TType _etype150;
+            xfer += iprot->readListBegin(_etype150, _size147);
+            this->success.resize(_size147);
+            uint32_t _i151;
+            for (_i151 = 0; _i151 < _size147; ++_i151)
+            {
+              xfer += iprot->readString(this->success[_i151]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          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;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAvailableAppInterfaceComputeResources_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getAvailableAppInterfaceComputeResources_result");
+
+  if (this->__isset.success) {
+    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 _iter152;
+      for (_iter152 = this->success.begin(); _iter152 != this->success.end(); ++_iter152)
+      {
+        xfer += oprot->writeString((*_iter152));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    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();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAvailableAppInterfaceComputeResources_presult::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;
+
+
+  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_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size153;
+            ::apache::thrift::protocol::TType _etype156;
+            xfer += iprot->readListBegin(_etype156, _size153);
+            (*(this->success)).resize(_size153);
+            uint32_t _i157;
+            for (_i157 = 0; _i157 < _size153; ++_i157)
+            {
+              xfer += iprot->readString((*(this->success))[_i157]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          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;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
 uint32_t Airavata_registerComputeResource_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
@@ -9635,15 +9892,240 @@ uint32_t Airavata_getComputeResource_result::read(::apache::thrift::protocol::TP
   return xfer;
 }
 
-uint32_t Airavata_getComputeResource_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getComputeResource_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getComputeResource_result");
+
+  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();
+  } 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();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getComputeResource_presult::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;
+
+
+  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_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);
+          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;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAllComputeResourceNames_args::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;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    xfer += iprot->skip(ftype);
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAllComputeResourceNames_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getAllComputeResourceNames_args");
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAllComputeResourceNames_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getAllComputeResourceNames_pargs");
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAllComputeResourceNames_result::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;
+
+
+  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_MAP) {
+          {
+            this->success.clear();
+            uint32_t _size158;
+            ::apache::thrift::protocol::TType _ktype159;
+            ::apache::thrift::protocol::TType _vtype160;
+            xfer += iprot->readMapBegin(_ktype159, _vtype160, _size158);
+            uint32_t _i162;
+            for (_i162 = 0; _i162 < _size158; ++_i162)
+            {
+              std::string _key163;
+              xfer += iprot->readString(_key163);
+              std::string& _val164 = this->success[_key163];
+              xfer += iprot->readString(_val164);
+            }
+            xfer += iprot->readMapEnd();
+          }
+          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;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAllComputeResourceNames_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getComputeResource_result");
+  xfer += oprot->writeStructBegin("Airavata_getAllComputeResourceNames_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_MAP, 0);
+    {
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+      std::map<std::string, std::string> ::const_iterator _iter165;
+      for (_iter165 = this->success.begin(); _iter165 != this->success.end(); ++_iter165)
+      {
+        xfer += oprot->writeString(_iter165->first);
+        xfer += oprot->writeString(_iter165->second);
+      }
+      xfer += oprot->writeMapEnd();
+    }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -9663,7 +10145,7 @@ uint32_t Airavata_getComputeResource_result::write(::apache::thrift::protocol::T
   return xfer;
 }
 
-uint32_t Airavata_getComputeResource_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllComputeResourceNames_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -9684,8 +10166,23 @@ uint32_t Airavata_getComputeResource_presult::read(::apache::thrift::protocol::T
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += (*(this->success)).read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size166;
+            ::apache::thrift::protocol::TType _ktype167;
+            ::apache::thrift::protocol::TType _vtype168;
+            xfer += iprot->readMapBegin(_ktype167, _vtype168, _size166);
+            uint32_t _i170;
+            for (_i170 = 0; _i170 < _size166; ++_i170)
+            {
+              std::string _key171;
+              xfer += iprot->readString(_key171);
+              std::string& _val172 = (*(this->success))[_key171];
+              xfer += iprot->readString(_val172);
+            }
+            xfer += iprot->readMapEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -13244,17 +13741,17 @@ uint32_t Airavata_changeJobSubmissionPriorities_args::read(::apache::thrift::pro
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->jobSubmissionPriorityMap.clear();
-            uint32_t _size147;
-            ::apache::thrift::protocol::TType _ktype148;
-            ::apache::thrift::protocol::TType _vtype149;
-            xfer += iprot->readMapBegin(_ktype148, _vtype149, _size147);
-            uint32_t _i151;
-            for (_i151 = 0; _i151 < _size147; ++_i151)
+            uint32_t _size173;
+            ::apache::thrift::protocol::TType _ktype174;
+            ::apache::thrift::protocol::TType _vtype175;
+            xfer += iprot->readMapBegin(_ktype174, _vtype175, _size173);
+            uint32_t _i177;
+            for (_i177 = 0; _i177 < _size173; ++_i177)
             {
-              std::string _key152;
-              xfer += iprot->readString(_key152);
-              int32_t& _val153 = this->jobSubmissionPriorityMap[_key152];
-              xfer += iprot->readI32(_val153);
+              std::string _key178;
+              xfer += iprot->readString(_key178);
+              int32_t& _val179 = this->jobSubmissionPriorityMap[_key178];
+              xfer += iprot->readI32(_val179);
             }
             xfer += iprot->readMapEnd();
           }
@@ -13284,11 +13781,11 @@ uint32_t Airavata_changeJobSubmissionPriorities_args::write(::apache::thrift::pr
   xfer += oprot->writeFieldBegin("jobSubmissionPriorityMap", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->jobSubmissionPriorityMap.size()));
-    std::map<std::string, int32_t> ::const_iterator _iter154;
-    for (_iter154 = this->jobSubmissionPriorityMap.begin(); _iter154 != this->jobSubmissionPriorityMap.end(); ++_iter154)
+    std::map<std::string, int32_t> ::const_iterator _iter180;
+    for (_iter180 = this->jobSubmissionPriorityMap.begin(); _iter180 != this->jobSubmissionPriorityMap.end(); ++_iter180)
     {
-      xfer += oprot->writeString(_iter154->first);
-      xfer += oprot->writeI32(_iter154->second);
+      xfer += oprot->writeString(_iter180->first);
+      xfer += oprot->writeI32(_iter180->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -13306,11 +13803,11 @@ uint32_t Airavata_changeJobSubmissionPriorities_pargs::write(::apache::thrift::p
   xfer += oprot->writeFieldBegin("jobSubmissionPriorityMap", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_I32, static_cast<uint32_t>((*(this->jobSubmissionPriorityMap)).size()));
-    std::map<std::string, int32_t> ::const_iterator _iter155;
-    for (_iter155 = (*(this->jobSubmissionPriorityMap)).begin(); _iter155 != (*(this->jobSubmissionPriorityMap)).end(); ++_iter155)
+    std::map<std::string, int32_t> ::const_iterator _iter181;
+    for (_iter181 = (*(this->jobSubmissionPriorityMap)).begin(); _iter181 != (*(this->jobSubmissionPriorityMap)).end(); ++_iter181)
     {
-      xfer += oprot->writeString(_iter155->first);
-      xfer += oprot->writeI32(_iter155->second);
+      xfer += oprot->writeString(_iter181->first);
+      xfer += oprot->writeI32(_iter181->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -13502,17 +13999,17 @@ uint32_t Airavata_changeDataMovementPriorities_args::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->dataMovementPriorityMap.clear();
-            uint32_t _size156;
-            ::apache::thrift::protocol::TType _ktype157;
-            ::apache::thrift::protocol::TType _vtype158;
-            xfer += iprot->readMapBegin(_ktype157, _vtype158, _size156);
-            uint32_t _i160;
-            for (_i160 = 0; _i160 < _size156; ++_i160)
+            uint32_t _size182;
+            ::apache::thrift::protocol::TType _ktype183;
+            ::apache::thrift::protocol::TType _vtype184;
+            xfer += iprot->readMapBegin(_ktype183, _vtype184, _size182);
+            uint32_t _i186;
+            for (_i186 = 0; _i186 < _size182; ++_i186)
             {
-              std::string _key161;
-              xfer += iprot->readString(_key161);
-              int32_t& _val162 = this->dataMovementPriorityMap[_key161];
-              xfer += iprot->readI32(_val162);
+              std::string _key187;
+              xfer += iprot->readString(_key187);
+              int32_t& _val188 = this->dataMovementPriorityMap[_key187];
+              xfer += iprot->readI32(_val188);
             }
             xfer += iprot->readMapEnd();
           }
@@ -13542,11 +14039,11 @@ uint32_t Airavata_changeDataMovementPriorities_args::write(::apache::thrift::pro
   xfer += oprot->writeFieldBegin("dataMovementPriorityMap", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_I32, static_cast<uint32_t>(this->dataMovementPriorityMap.size()));
-    std::map<std::string, int32_t> ::const_iterator _iter163;
-    for (_iter163 = this->dataMovementPriorityMap.begin(); _iter163 != this->dataMovementPriorityMap.end(); ++_iter163)
+    std::map<std::string, int32_t> ::const_iterator _iter189;
+    for (_iter189 = this->dataMovementPriorityMap.begin(); _iter189 != this->dataMovementPriorityMap.end(); ++_iter189)
     {
-      xfer += oprot->writeString(_iter163->first);
-      xfer += oprot->writeI32(_iter163->second);
+      xfer += oprot->writeString(_iter189->first);
+      xfer += oprot->writeI32(_iter189->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -13564,11 +14061,11 @@ uint32_t Airavata_changeDataMovementPriorities_pargs::write(::apache::thrift::pr
   xfer += oprot->writeFieldBegin("dataMovementPriorityMap", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_I32, static_cast<uint32_t>((*(this->dataMovementPriorityMap)).size()));
-    std::map<std::string, int32_t> ::const_iterator _iter164;
-    for (_iter164 = (*(this->dataMovementPriorityMap)).begin(); _iter164 != (*(this->dataMovementPriorityMap)).end(); ++_iter164)
+    std::map<std::string, int32_t> ::const_iterator _iter190;
+    for (_iter190 = (*(this->dataMovementPriorityMap)).begin(); _iter190 != (*(this->dataMovementPriorityMap)).end(); ++_iter190)
     {
-      xfer += oprot->writeString(_iter164->first);
-      xfer += oprot->writeI32(_iter164->second);
+      xfer += oprot->writeString(_iter190->first);
+      xfer += oprot->writeI32(_iter190->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -14275,8 +14772,8 @@ uint32_t Airavata_registerGatewayResourceProfile_result::read(::apache::thrift::
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->success);
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -14325,8 +14822,8 @@ uint32_t Airavata_registerGatewayResourceProfile_result::write(::apache::thrift:
   xfer += oprot->writeStructBegin("Airavata_registerGatewayResourceProfile_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
-    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -14367,8 +14864,8 @@ uint32_t Airavata_registerGatewayResourceProfile_presult::read(::apache::thrift:
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -15704,14 +16201,14 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_result::read(::apache:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size165;
-            ::apache::thrift::protocol::TType _etype168;
-            xfer += iprot->readListBegin(_etype168, _size165);
-            this->success.resize(_size165);
-            uint32_t _i169;
-            for (_i169 = 0; _i169 < _size165; ++_i169)
+            uint32_t _size191;
+            ::apache::thrift::protocol::TType _etype194;
+            xfer += iprot->readListBegin(_etype194, _size191);
+            this->success.resize(_size191);
+            uint32_t _i195;
+            for (_i195 = 0; _i195 < _size191; ++_i195)
             {
-              xfer += this->success[_i169].read(iprot);
+              xfer += this->success[_i195].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -15766,10 +16263,10 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_result::write(::apache
     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< ::ComputeResourcePreference> ::const_iterator _iter170;
-      for (_iter170 = this->success.begin(); _iter170 != this->success.end(); ++_iter170)
+      std::vector< ::ComputeResourcePreference> ::const_iterator _iter196;
+      for (_iter196 = this->success.begin(); _iter196 != this->success.end(); ++_iter196)
       {
-        xfer += (*_iter170).write(oprot);
+        xfer += (*_iter196).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -15816,14 +16313,14 @@ uint32_t Airavata_getAllGatewayComputeResourcePreferences_presult::read(::apache
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size171;
-            ::apache::thrift::protocol::TType _etype174;
-            xfer += iprot->readListBegin(_etype174, _size171);
-            (*(this->success)).resize(_size171);
-            uint32_t _i175;
-            for (_i175 = 0; _i175 < _size171; ++_i175)
+            uint32_t _size197;
+            ::apache::thrift::protocol::TType _etype200;
+            xfer += iprot->readListBegin(_etype200, _size197);
+            (*(this->success)).resize(_size197);
+            uint32_t _i201;
+            for (_i201 = 0; _i201 < _size197; ++_i201)
             {
-              xfer += (*(this->success))[_i175].read(iprot);
+              xfer += (*(this->success))[_i201].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -18968,6 +19465,73 @@ void AiravataClient::recv_getApplicationOutputs(std::vector< ::OutputDataObjectT
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getApplicationOutputs failed: unknown result");
 }
 
+void AiravataClient::getAvailableAppInterfaceComputeResources(std::vector<std::string> & _return, const std::string& appInterfaceId)
+{
+  send_getAvailableAppInterfaceComputeResources(appInterfaceId);
+  recv_getAvailableAppInterfaceComputeResources(_return);
+}
+
+void AiravataClient::send_getAvailableAppInterfaceComputeResources(const std::string& appInterfaceId)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("getAvailableAppInterfaceComputeResources", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getAvailableAppInterfaceComputeResources_pargs args;
+  args.appInterfaceId = &appInterfaceId;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_getAvailableAppInterfaceComputeResources(std::vector<std::string> & _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("getAvailableAppInterfaceComputeResources") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_getAvailableAppInterfaceComputeResources_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;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAvailableAppInterfaceComputeResources failed: unknown result");
+}
+
 void AiravataClient::registerComputeResource(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription)
 {
   send_registerComputeResource(computeResourceDescription);
@@ -19102,6 +19666,72 @@ void AiravataClient::recv_getComputeResource( ::ComputeResourceDescription& _ret
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getComputeResource failed: unknown result");
 }
 
+void AiravataClient::getAllComputeResourceNames(std::map<std::string, std::string> & _return)
+{
+  send_getAllComputeResourceNames();
+  recv_getAllComputeResourceNames(_return);
+}
+
+void AiravataClient::send_getAllComputeResourceNames()
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("getAllComputeResourceNames", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getAllComputeResourceNames_pargs args;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_getAllComputeResourceNames(std::map<std::string, std::string> & _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("getAllComputeResourceNames") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_getAllComputeResourceNames_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;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllComputeResourceNames failed: unknown result");
+}
+
 bool AiravataClient::updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription)
 {
   send_updateComputeResource(computeResourceId, computeResourceDescription);
@@ -20326,10 +20956,10 @@ bool AiravataClient::recv_deleteDataMovementInterface()
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deleteDataMovementInterface failed: unknown result");
 }
 
-void AiravataClient::registerGatewayResourceProfile(std::string& _return, const  ::GatewayResourceProfile& gatewayResourceProfile)
+bool AiravataClient::registerGatewayResourceProfile(const  ::GatewayResourceProfile& gatewayResourceProfile)
 {
   send_registerGatewayResourceProfile(gatewayResourceProfile);
-  recv_registerGatewayResourceProfile(_return);
+  return recv_registerGatewayResourceProfile();
 }
 
 void AiravataClient::send_registerGatewayResourceProfile(const  ::GatewayResourceProfile& gatewayResourceProfile)
@@ -20346,7 +20976,7 @@ void AiravataClient::send_registerGatewayResourceProfile(const  ::GatewayResourc
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_registerGatewayResourceProfile(std::string& _return)
+bool AiravataClient::recv_registerGatewayResourceProfile()
 {
 
   int32_t rseqid = 0;
@@ -20371,6 +21001,7 @@ void AiravataClient::recv_registerGatewayResourceProfile(std::string& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
+  bool _return;
   Airavata_registerGatewayResourceProfile_presult result;
   result.success = &_return;
   result.read(iprot_);
@@ -20378,8 +21009,7 @@ void AiravataClient::recv_registerGatewayResourceProfile(std::string& _return)
   iprot_->getTransport()->readEnd();
 
   if (result.__isset.success) {
-    // _return pointer has now been filled
-    return;
+    return _return;
   }
   if (result.__isset.ire) {
     throw result.ire;
@@ -23403,6 +24033,69 @@ void AiravataProcessor::process_getApplicationOutputs(int32_t seqid, ::apache::t
   }
 }
 
+void AiravataProcessor::process_getAvailableAppInterfaceComputeResources(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.getAvailableAppInterfaceComputeResources", callContext);
+  }
+  ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "Airavata.getAvailableAppInterfaceComputeResources");
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preRead(ctx, "Airavata.getAvailableAppInterfaceComputeResources");
+  }
+
+  Airavata_getAvailableAppInterfaceComputeResources_args args;
+  args.read(iprot);
+  iprot->readMessageEnd();
+  uint32_t bytes = iprot->getTransport()->readEnd();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postRead(ctx, "Airavata.getAvailableAppInterfaceComputeResources", bytes);
+  }
+
+  Airavata_getAvailableAppInterfaceComputeResources_result result;
+  try {
+    iface_->getAvailableAppInterfaceComputeResources(result.success, args.appInterfaceId);
+    result.__isset.success = true;
+  } catch ( ::airavata::api::error::InvalidRequestException &ire) {
+    result.ire = ire;
+    result.__isset.ire = true;
+  } catch ( ::airavata::api::error::AiravataClientException &ace) {
+    result.ace = ace;
+    result.__isset.ace = true;
+  } catch ( ::airavata::api::error::AiravataSystemException &ase) {
+    result.ase = ase;
+    result.__isset.ase = true;
+  } catch (const std::exception& e) {
+    if (this->eventHandler_.get() != NULL) {
+      this->eventHandler_->handlerError(ctx, "Airavata.getAvailableAppInterfaceComputeResources");
+    }
+
+    ::apache::thrift::TApplicationException x(e.what());
+    oprot->writeMessageBegin("getAvailableAppInterfaceComputeResources", ::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.getAvailableAppInterfaceComputeResources");
+  }
+
+  oprot->writeMessageBegin("getAvailableAppInterfaceComputeResources", ::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.getAvailableAppInterfaceComputeResources", bytes);
+  }
+}
+
 void AiravataProcessor::process_registerComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
 {
   void* ctx = NULL;
@@ -23529,6 +24222,69 @@ void AiravataProcessor::process_getComputeResource(int32_t seqid, ::apache::thri
   }
 }
 
+void AiravataProcessor::process_getAllComputeResourceNames(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.getAllComputeResourceNames", callContext);
+  }
+  ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "Airavata.getAllComputeResourceNames");
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preRead(ctx, "Airavata.getAllComputeResourceNames");
+  }
+
+  Airavata_getAllComputeResourceNames_args args;
+  args.read(iprot);
+  iprot->readMessageEnd();
+  uint32_t bytes = iprot->getTransport()->readEnd();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postRead(ctx, "Airavata.getAllComputeResourceNames", bytes);
+  }
+
+  Airavata_getAllComputeResourceNames_result result;
+  try {
+    iface_->getAllComputeResourceNames(result.success);
+    result.__isset.success = true;
+  } catch ( ::airavata::api::error::InvalidRequestException &ire) {
+    result.ire = ire;
+    result.__isset.ire = true;
+  } catch ( ::airavata::api::error::AiravataClientException &ace) {
+    result.ace = ace;
+    result.__isset.ace = true;
+  } catch ( ::airavata::api::error::AiravataSystemException &ase) {
+    result.ase = ase;
+    result.__isset.ase = true;
+  } catch (const std::exception& e) {
+    if (this->eventHandler_.get() != NULL) {
+      this->eventHandler_->handlerError(ctx, "Airavata.getAllComputeResourceNames");
+    }
+
+    ::apache::thrift::TApplicationException x(e.what());
+    oprot->writeMessageBegin("getAllComputeResourceNames", ::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.getAllComputeResourceNames");
+  }
+
+  oprot->writeMessageBegin("getAllComputeResourceNames", ::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.getAllComputeResourceNames", bytes);
+  }
+}
+
 void AiravataProcessor::process_updateComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
 {
   void* ctx = NULL;
@@ -24686,7 +25442,7 @@ void AiravataProcessor::process_registerGatewayResourceProfile(int32_t seqid, ::
 
   Airavata_registerGatewayResourceProfile_result result;
   try {
-    iface_->registerGatewayResourceProfile(result.success, args.gatewayResourceProfile);
+    result.success = iface_->registerGatewayResourceProfile(args.gatewayResourceProfile);
     result.__isset.success = true;
   } catch ( ::airavata::api::error::InvalidRequestException &ire) {
     result.ire = ire;

http://git-wip-us.apache.org/repos/asf/airavata/blob/2d5d054b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
index 30b1818..9c76171 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
@@ -54,8 +54,10 @@ class AiravataIf {
   virtual bool deleteApplicationInterface(const std::string& appInterfaceId) = 0;
   virtual void getApplicationInputs(std::vector< ::InputDataObjectType> & _return, const std::string& appInterfaceId) = 0;
   virtual void getApplicationOutputs(std::vector< ::OutputDataObjectType> & _return, const std::string& appInterfaceId) = 0;
+  virtual void getAvailableAppInterfaceComputeResources(std::vector<std::string> & _return, const std::string& appInterfaceId) = 0;
   virtual void registerComputeResource(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription) = 0;
   virtual void getComputeResource( ::ComputeResourceDescription& _return, const std::string& computeResourceId) = 0;
+  virtual void getAllComputeResourceNames(std::map<std::string, std::string> & _return) = 0;
   virtual bool updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription) = 0;
   virtual bool deleteComputeResource(const std::string& computeResourceId) = 0;
   virtual bool addLocalSubmissionDetails(const std::string& computeResourceId, const int32_t priorityOrder, const  ::LOCALSubmission& localSubmission) = 0;
@@ -74,7 +76,7 @@ class AiravataIf {
   virtual bool changeDataMovementPriorities(const std::map<std::string, int32_t> & dataMovementPriorityMap) = 0;
   virtual bool deleteJobSubmissionInterface(const std::string& jobSubmissionInterfaceId) = 0;
   virtual bool deleteDataMovementInterface(const std::string& dataMovementInterfaceId) = 0;
-  virtual void registerGatewayResourceProfile(std::string& _return, const  ::GatewayResourceProfile& gatewayResourceProfile) = 0;
+  virtual bool registerGatewayResourceProfile(const  ::GatewayResourceProfile& gatewayResourceProfile) = 0;
   virtual void getGatewayResourceProfile( ::GatewayResourceProfile& _return, const std::string& gatewayID) = 0;
   virtual bool updateGatewayResourceProfile(const std::string& gatewayID, const  ::GatewayResourceProfile& gatewayResourceProfile) = 0;
   virtual bool deleteGatewayResourceProfile(const std::string& gatewayID) = 0;
@@ -236,12 +238,18 @@ class AiravataNull : virtual public AiravataIf {
   void getApplicationOutputs(std::vector< ::OutputDataObjectType> & /* _return */, const std::string& /* appInterfaceId */) {
     return;
   }
+  void getAvailableAppInterfaceComputeResources(std::vector<std::string> & /* _return */, const std::string& /* appInterfaceId */) {
+    return;
+  }
   void registerComputeResource(std::string& /* _return */, const  ::ComputeResourceDescription& /* computeResourceDescription */) {
     return;
   }
   void getComputeResource( ::ComputeResourceDescription& /* _return */, const std::string& /* computeResourceId */) {
     return;
   }
+  void getAllComputeResourceNames(std::map<std::string, std::string> & /* _return */) {
+    return;
+  }
   bool updateComputeResource(const std::string& /* computeResourceId */, const  ::ComputeResourceDescription& /* computeResourceDescription */) {
     bool _return = false;
     return _return;
@@ -314,8 +322,9 @@ class AiravataNull : virtual public AiravataIf {
     bool _return = false;
     return _return;
   }
-  void registerGatewayResourceProfile(std::string& /* _return */, const  ::GatewayResourceProfile& /* gatewayResourceProfile */) {
-    return;
+  bool registerGatewayResourceProfile(const  ::GatewayResourceProfile& /* gatewayResourceProfile */) {
+    bool _return = false;
+    return _return;
   }
   void getGatewayResourceProfile( ::GatewayResourceProfile& /* _return */, const std::string& /* gatewayID */) {
     return;
@@ -5524,6 +5533,138 @@ class Airavata_getApplicationOutputs_presult {
 };
 
 
+class Airavata_getAvailableAppInterfaceComputeResources_args {
+ public:
+
+  Airavata_getAvailableAppInterfaceComputeResources_args() : appInterfaceId() {
+  }
+
+  virtual ~Airavata_getAvailableAppInterfaceComputeResources_args() throw() {}
+
+  std::string appInterfaceId;
+
+  void __set_appInterfaceId(const std::string& val) {
+    appInterfaceId = val;
+  }
+
+  bool operator == (const Airavata_getAvailableAppInterfaceComputeResources_args & rhs) const
+  {
+    if (!(appInterfaceId == rhs.appInterfaceId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAvailableAppInterfaceComputeResources_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAvailableAppInterfaceComputeResources_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getAvailableAppInterfaceComputeResources_pargs {
+ public:
+
+
+  virtual ~Airavata_getAvailableAppInterfaceComputeResources_pargs() throw() {}
+
+  const std::string* appInterfaceId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAvailableAppInterfaceComputeResources_result__isset {
+  _Airavata_getAvailableAppInterfaceComputeResources_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getAvailableAppInterfaceComputeResources_result__isset;
+
+class Airavata_getAvailableAppInterfaceComputeResources_result {
+ public:
+
+  Airavata_getAvailableAppInterfaceComputeResources_result() {
+  }
+
+  virtual ~Airavata_getAvailableAppInterfaceComputeResources_result() throw() {}
+
+  std::vector<std::string>  success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getAvailableAppInterfaceComputeResources_result__isset __isset;
+
+  void __set_success(const std::vector<std::string> & val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_getAvailableAppInterfaceComputeResources_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;
+    return true;
+  }
+  bool operator != (const Airavata_getAvailableAppInterfaceComputeResources_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAvailableAppInterfaceComputeResources_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAvailableAppInterfaceComputeResources_presult__isset {
+  _Airavata_getAvailableAppInterfaceComputeResources_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getAvailableAppInterfaceComputeResources_presult__isset;
+
+class Airavata_getAvailableAppInterfaceComputeResources_presult {
+ public:
+
+
+  virtual ~Airavata_getAvailableAppInterfaceComputeResources_presult() throw() {}
+
+  std::vector<std::string> * success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getAvailableAppInterfaceComputeResources_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
 class Airavata_registerComputeResource_args {
  public:
 
@@ -5788,6 +5929,130 @@ class Airavata_getComputeResource_presult {
 };
 
 
+class Airavata_getAllComputeResourceNames_args {
+ public:
+
+  Airavata_getAllComputeResourceNames_args() {
+  }
+
+  virtual ~Airavata_getAllComputeResourceNames_args() throw() {}
+
+
+  bool operator == (const Airavata_getAllComputeResourceNames_args & /* rhs */) const
+  {
+    return true;
+  }
+  bool operator != (const Airavata_getAllComputeResourceNames_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllComputeResourceNames_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getAllComputeResourceNames_pargs {
+ public:
+
+
+  virtual ~Airavata_getAllComputeResourceNames_pargs() throw() {}
+
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllComputeResourceNames_result__isset {
+  _Airavata_getAllComputeResourceNames_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getAllComputeResourceNames_result__isset;
+
+class Airavata_getAllComputeResourceNames_result {
+ public:
+
+  Airavata_getAllComputeResourceNames_result() {
+  }
+
+  virtual ~Airavata_getAllComputeResourceNames_result() throw() {}
+
+  std::map<std::string, std::string>  success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getAllComputeResourceNames_result__isset __isset;
+
+  void __set_success(const std::map<std::string, std::string> & val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_getAllComputeResourceNames_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;
+    return true;
+  }
+  bool operator != (const Airavata_getAllComputeResourceNames_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllComputeResourceNames_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllComputeResourceNames_presult__isset {
+  _Airavata_getAllComputeResourceNames_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getAllComputeResourceNames_presult__isset;
+
+class Airavata_getAllComputeResourceNames_presult {
+ public:
+
+
+  virtual ~Airavata_getAllComputeResourceNames_presult() throw() {}
+
+  std::map<std::string, std::string> * success;
+   ::airavata::api::error::InvalidRequestException ire;
+   ::airavata::api::error::AiravataClientException ace;
+   ::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getAllComputeResourceNames_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
 class Airavata_updateComputeResource_args {
  public:
 
@@ -8363,19 +8628,19 @@ typedef struct _Airavata_registerGatewayResourceProfile_result__isset {
 class Airavata_registerGatewayResourceProfile_result {
  public:
 
-  Airavata_registerGatewayResourceProfile_result() : success() {
+  Airavata_registerGatewayResourceProfile_result() : success(0) {
   }
 
   virtual ~Airavata_registerGatewayResourceProfile_result() throw() {}
 
-  std::string success;
+  bool success;
    ::airavata::api::error::InvalidRequestException ire;
    ::airavata::api::error::AiravataClientException ace;
    ::airavata::api::error::AiravataSystemException ase;
 
   _Airavata_registerGatewayResourceProfile_result__isset __isset;
 
-  void __set_success(const std::string& val) {
+  void __set_success(const bool val) {
     success = val;
   }
 
@@ -8428,7 +8693,7 @@ class Airavata_registerGatewayResourceProfile_presult {
 
   virtual ~Airavata_registerGatewayResourceProfile_presult() throw() {}
 
-  std::string* success;
+  bool* success;
    ::airavata::api::error::InvalidRequestException ire;
    ::airavata::api::error::AiravataClientException ace;
    ::airavata::api::error::AiravataSystemException ase;
@@ -9688,12 +9953,18 @@ class AiravataClient : virtual public AiravataIf {
   void getApplicationOutputs(std::vector< ::OutputDataObjectType> & _return, const std::string& appInterfaceId);
   void send_getApplicationOutputs(const std::string& appInterfaceId);
   void recv_getApplicationOutputs(std::vector< ::OutputDataObjectType> & _return);
+  void getAvailableAppInterfaceComputeResources(std::vector<std::string> & _return, const std::string& appInterfaceId);
+  void send_getAvailableAppInterfaceComputeResources(const std::string& appInterfaceId);
+  void recv_getAvailableAppInterfaceComputeResources(std::vector<std::string> & _return);
   void registerComputeResource(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription);
   void send_registerComputeResource(const  ::ComputeResourceDescription& computeResourceDescription);
   void recv_registerComputeResource(std::string& _return);
   void getComputeResource( ::ComputeResourceDescription& _return, const std::string& computeResourceId);
   void send_getComputeResource(const std::string& computeResourceId);
   void recv_getComputeResource( ::ComputeResourceDescription& _return);
+  void getAllComputeResourceNames(std::map<std::string, std::string> & _return);
+  void send_getAllComputeResourceNames();
+  void recv_getAllComputeResourceNames(std::map<std::string, std::string> & _return);
   bool updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription);
   void send_updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription);
   bool recv_updateComputeResource();
@@ -9748,9 +10019,9 @@ class AiravataClient : virtual public AiravataIf {
   bool deleteDataMovementInterface(const std::string& dataMovementInterfaceId);
   void send_deleteDataMovementInterface(const std::string& dataMovementInterfaceId);
   bool recv_deleteDataMovementInterface();
-  void registerGatewayResourceProfile(std::string& _return, const  ::GatewayResourceProfile& gatewayResourceProfile);
+  bool registerGatewayResourceProfile(const  ::GatewayResourceProfile& gatewayResourceProfile);
   void send_registerGatewayResourceProfile(const  ::GatewayResourceProfile& gatewayResourceProfile);
-  void recv_registerGatewayResourceProfile(std::string& _return);
+  bool recv_registerGatewayResourceProfile();
   void getGatewayResourceProfile( ::GatewayResourceProfile& _return, const std::string& gatewayID);
   void send_getGatewayResourceProfile(const std::string& gatewayID);
   void recv_getGatewayResourceProfile( ::GatewayResourceProfile& _return);
@@ -9829,8 +10100,10 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
   void process_deleteApplicationInterface(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getApplicationInputs(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getApplicationOutputs(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getAvailableAppInterfaceComputeResources(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_registerComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getAllComputeResourceNames(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_updateComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_deleteComputeResource(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_addLocalSubmissionDetails(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
@@ -9900,8 +10173,10 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
     processMap_["deleteApplicationInterface"] = &AiravataProcessor::process_deleteApplicationInterface;
     processMap_["getApplicationInputs"] = &AiravataProcessor::process_getApplicationInputs;
     processMap_["getApplicationOutputs"] = &AiravataProcessor::process_getApplicationOutputs;
+    processMap_["getAvailableAppInterfaceComputeResources"] = &AiravataProcessor::process_getAvailableAppInterfaceComputeResources;
     processMap_["registerComputeResource"] = &AiravataProcessor::process_registerComputeResource;
     processMap_["getComputeResource"] = &AiravataProcessor::process_getComputeResource;
+    processMap_["getAllComputeResourceNames"] = &AiravataProcessor::process_getAllComputeResourceNames;
     processMap_["updateComputeResource"] = &AiravataProcessor::process_updateComputeResource;
     processMap_["deleteComputeResource"] = &AiravataProcessor::process_deleteComputeResource;
     processMap_["addLocalSubmissionDetails"] = &AiravataProcessor::process_addLocalSubmissionDetails;
@@ -10334,6 +10609,16 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
+  void getAvailableAppInterfaceComputeResources(std::vector<std::string> & _return, const std::string& appInterfaceId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getAvailableAppInterfaceComputeResources(_return, appInterfaceId);
+    }
+    ifaces_[i]->getAvailableAppInterfaceComputeResources(_return, appInterfaceId);
+    return;
+  }
+
   void registerComputeResource(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription) {
     size_t sz = ifaces_.size();
     size_t i = 0;
@@ -10354,6 +10639,16 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
+  void getAllComputeResourceNames(std::map<std::string, std::string> & _return) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getAllComputeResourceNames(_return);
+    }
+    ifaces_[i]->getAllComputeResourceNames(_return);
+    return;
+  }
+
   bool updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription) {
     size_t sz = ifaces_.size();
     size_t i = 0;
@@ -10516,14 +10811,13 @@ class AiravataMultiface : virtual public AiravataIf {
     return ifaces_[i]->deleteDataMovementInterface(dataMovementInterfaceId);
   }
 
-  void registerGatewayResourceProfile(std::string& _return, const  ::GatewayResourceProfile& gatewayResourceProfile) {
+  bool registerGatewayResourceProfile(const  ::GatewayResourceProfile& gatewayResourceProfile) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
-      ifaces_[i]->registerGatewayResourceProfile(_return, gatewayResourceProfile);
+      ifaces_[i]->registerGatewayResourceProfile(gatewayResourceProfile);
     }
-    ifaces_[i]->registerGatewayResourceProfile(_return, gatewayResourceProfile);
-    return;
+    return ifaces_[i]->registerGatewayResourceProfile(gatewayResourceProfile);
   }
 
   void getGatewayResourceProfile( ::GatewayResourceProfile& _return, const std::string& gatewayID) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/2d5d054b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
index 901402d..68b9e2a 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
@@ -217,6 +217,11 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getApplicationOutputs\n");
   }
 
+  void getAvailableAppInterfaceComputeResources(std::vector<std::string> & _return, const std::string& appInterfaceId) {
+    // Your implementation goes here
+    printf("getAvailableAppInterfaceComputeResources\n");
+  }
+
   void registerComputeResource(std::string& _return, const  ::ComputeResourceDescription& computeResourceDescription) {
     // Your implementation goes here
     printf("registerComputeResource\n");
@@ -227,6 +232,11 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getComputeResource\n");
   }
 
+  void getAllComputeResourceNames(std::map<std::string, std::string> & _return) {
+    // Your implementation goes here
+    printf("getAllComputeResourceNames\n");
+  }
+
   bool updateComputeResource(const std::string& computeResourceId, const  ::ComputeResourceDescription& computeResourceDescription) {
     // Your implementation goes here
     printf("updateComputeResource\n");
@@ -317,7 +327,7 @@ class AiravataHandler : virtual public AiravataIf {
     printf("deleteDataMovementInterface\n");
   }
 
-  void registerGatewayResourceProfile(std::string& _return, const  ::GatewayResourceProfile& gatewayResourceProfile) {
+  bool registerGatewayResourceProfile(const  ::GatewayResourceProfile& gatewayResourceProfile) {
     // Your implementation goes here
     printf("registerGatewayResourceProfile\n");
   }


[4/4] git commit: API Methods required by PHP Gateway - AIRAVATA-1296

Posted by sm...@apache.org.
API Methods required by PHP Gateway - AIRAVATA-1296


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/2d5d054b
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/2d5d054b
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/2d5d054b

Branch: refs/heads/master
Commit: 2d5d054bcc33f1a2a782ac3aaae79909056dc776
Parents: 5328757
Author: Suresh Marru <sm...@apache.org>
Authored: Mon Jul 7 01:25:10 2014 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Mon Jul 7 01:25:10 2014 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |   33 +-
 .../java/org/apache/airavata/api/Airavata.java  | 8447 +++++++++++-------
 .../src/main/resources/lib/Airavata.cpp         |  900 +-
 .../src/main/resources/lib/Airavata.h           |  320 +-
 .../resources/lib/Airavata_server.skeleton.cpp  |   12 +-
 .../resources/lib/Airavata/API/Airavata.php     |  837 +-
 .../airavataAPI.thrift                          |   35 +-
 7 files changed, 7320 insertions(+), 3264 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/2d5d054b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 3ddfd6e..c19025c 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -1492,6 +1492,18 @@ public class AiravataServerHandler implements Airavata.Iface, Watcher {
     }
 
     /**
+     * Fetch a list of all deployed Compute Hosts for a given application interfaces.
+     *
+     * @param appInterfaceId The identifier for the requested application interface
+     * @return list<string>
+     * Returns a list of available Resources. Deployments of each modules listed within the interfaces will be listed.
+     */
+    @Override
+    public List<String> getAvailableAppInterfaceComputeResources(String appInterfaceId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        return null;
+    }
+
+    /**
      * Register a Compute Resource.
      *
      * @param computeResourceDescription Compute Resource Object created from the datamodel.
@@ -1534,6 +1546,17 @@ public class AiravataServerHandler implements Airavata.Iface, Watcher {
     }
 
     /**
+     * Fetch all registered Compute Resources.
+     *
+     * @return A map of registered compute resource id's and thier corresponding hostnames.
+     * Compute Resource Object created from the datamodel..
+     */
+    @Override
+    public Map<String, String> getAllComputeResourceNames() throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        return null;
+    }
+
+    /**
      * Update a Compute Resource.
      *
      * @param computeResourceId          The identifier for the requested compute resource to be updated.
@@ -1880,12 +1903,14 @@ public class AiravataServerHandler implements Airavata.Iface, Watcher {
      * Register a Gateway Resource Profile.
      *
      * @param gatewayResourceProfile Gateway Resource Profile Object.
-     * @return gatewayID
-     * Returns a server-side generated airavata compute resource globally unique identifier.
+     *   The GatewayID should be obtained from Airavata gateway registration and passed to register a corresponding
+     *      resource profile.
+     * @return status.
+     * Returns a success/failure of the registration.
      */
     @Override
-    public String registerGatewayResourceProfile(GatewayResourceProfile gatewayResourceProfile) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
-        return null;
+    public boolean registerGatewayResourceProfile(GatewayResourceProfile gatewayResourceProfile) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        return false;
     }
 
     /**


[3/4] API Methods required by PHP Gateway - AIRAVATA-1296

Posted by sm...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/2d5d054b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 6bb04dd..c400f27 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -649,6 +649,20 @@ import org.slf4j.LoggerFactory;
     public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getApplicationOutputs(String appInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Fetch a list of all deployed Compute Hosts for a given application interfaces.
+     * 
+     * @param appInterfaceId
+     *   The identifier for the requested application interface
+     * 
+     * @return list<string>
+     *   Returns a list of available Resources. Deployments of each modules listed within the interfaces will be listed.
+     * 
+     * 
+     * @param appInterfaceId
+     */
+    public List<String> getAvailableAppInterfaceComputeResources(String appInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Register a Compute Resource.
      * 
      * @param computeResourceDescription
@@ -677,6 +691,15 @@ import org.slf4j.LoggerFactory;
     public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getComputeResource(String computeResourceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
+     * Fetch all registered Compute Resources.
+     * 
+     * @return A map of registered compute resource id's and thier corresponding hostnames.
+     *    Compute Resource Object created from the datamodel..
+     * 
+     */
+    public Map<String,String> getAllComputeResourceNames() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    /**
      * Update a Compute Resource.
      * 
      * @param computeResourceId
@@ -1012,14 +1035,16 @@ import org.slf4j.LoggerFactory;
      * 
      * @param gatewayResourceProfile
      *    Gateway Resource Profile Object.
+     *    The GatewayID should be obtained from Airavata gateway registration and passed to register a corresponding
+     *      resource profile.
      * 
-     * @return gatewayID
-     *   Returns a server-side generated airavata compute resource globally unique identifier.
+     * @return status
+     *   Returns a success/failure of the update.
      * 
      * 
      * @param gatewayResourceProfile
      */
-    public String registerGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public boolean registerGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     /**
      * Fetch the given Gateway Resource Profile.
@@ -1244,10 +1269,14 @@ import org.slf4j.LoggerFactory;
 
     public void getApplicationOutputs(String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getAvailableAppInterfaceComputeResources(String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void getComputeResource(String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getAllComputeResourceNames(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void deleteComputeResource(String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -2564,6 +2593,38 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getApplicationOutputs failed: unknown result");
     }
 
+    public List<String> getAvailableAppInterfaceComputeResources(String appInterfaceId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getAvailableAppInterfaceComputeResources(appInterfaceId);
+      return recv_getAvailableAppInterfaceComputeResources();
+    }
+
+    public void send_getAvailableAppInterfaceComputeResources(String appInterfaceId) throws org.apache.thrift.TException
+    {
+      getAvailableAppInterfaceComputeResources_args args = new getAvailableAppInterfaceComputeResources_args();
+      args.setAppInterfaceId(appInterfaceId);
+      sendBase("getAvailableAppInterfaceComputeResources", args);
+    }
+
+    public List<String> recv_getAvailableAppInterfaceComputeResources() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+      receiveBase(result, "getAvailableAppInterfaceComputeResources");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAvailableAppInterfaceComputeResources failed: unknown result");
+    }
+
     public String registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_registerComputeResource(computeResourceDescription);
@@ -2628,6 +2689,37 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getComputeResource failed: unknown result");
     }
 
+    public Map<String,String> getAllComputeResourceNames() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getAllComputeResourceNames();
+      return recv_getAllComputeResourceNames();
+    }
+
+    public void send_getAllComputeResourceNames() throws org.apache.thrift.TException
+    {
+      getAllComputeResourceNames_args args = new getAllComputeResourceNames_args();
+      sendBase("getAllComputeResourceNames", args);
+    }
+
+    public Map<String,String> recv_getAllComputeResourceNames() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
+      receiveBase(result, "getAllComputeResourceNames");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllComputeResourceNames failed: unknown result");
+    }
+
     public boolean updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_updateComputeResource(computeResourceId, computeResourceDescription);
@@ -3222,7 +3314,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteDataMovementInterface failed: unknown result");
     }
 
-    public String registerGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public boolean registerGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_registerGatewayResourceProfile(gatewayResourceProfile);
       return recv_registerGatewayResourceProfile();
@@ -3235,7 +3327,7 @@ import org.slf4j.LoggerFactory;
       sendBase("registerGatewayResourceProfile", args);
     }
 
-    public String recv_registerGatewayResourceProfile() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public boolean recv_registerGatewayResourceProfile() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
       receiveBase(result, "registerGatewayResourceProfile");
@@ -4822,6 +4914,38 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void getAvailableAppInterfaceComputeResources(String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAvailableAppInterfaceComputeResources_call method_call = new getAvailableAppInterfaceComputeResources_call(appInterfaceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAvailableAppInterfaceComputeResources_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String appInterfaceId;
+      public getAvailableAppInterfaceComputeResources_call(String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.appInterfaceId = appInterfaceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAvailableAppInterfaceComputeResources", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAvailableAppInterfaceComputeResources_args args = new getAvailableAppInterfaceComputeResources_args();
+        args.setAppInterfaceId(appInterfaceId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<String> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAvailableAppInterfaceComputeResources();
+      }
+    }
+
     public void registerComputeResource(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       registerComputeResource_call method_call = new registerComputeResource_call(computeResourceDescription, resultHandler, this, ___protocolFactory, ___transport);
@@ -4886,6 +5010,35 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void getAllComputeResourceNames(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllComputeResourceNames_call method_call = new getAllComputeResourceNames_call(resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllComputeResourceNames_call extends org.apache.thrift.async.TAsyncMethodCall {
+      public getAllComputeResourceNames_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllComputeResourceNames", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllComputeResourceNames_args args = new getAllComputeResourceNames_args();
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public Map<String,String> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAllComputeResourceNames();
+      }
+    }
+
     public void updateComputeResource(String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       updateComputeResource_call method_call = new updateComputeResource_call(computeResourceId, computeResourceDescription, resultHandler, this, ___protocolFactory, ___transport);
@@ -5538,7 +5691,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public String getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public boolean getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -5877,8 +6030,10 @@ import org.slf4j.LoggerFactory;
       processMap.put("deleteApplicationInterface", new deleteApplicationInterface());
       processMap.put("getApplicationInputs", new getApplicationInputs());
       processMap.put("getApplicationOutputs", new getApplicationOutputs());
+      processMap.put("getAvailableAppInterfaceComputeResources", new getAvailableAppInterfaceComputeResources());
       processMap.put("registerComputeResource", new registerComputeResource());
       processMap.put("getComputeResource", new getComputeResource());
+      processMap.put("getAllComputeResourceNames", new getAllComputeResourceNames());
       processMap.put("updateComputeResource", new updateComputeResource());
       processMap.put("deleteComputeResource", new deleteComputeResource());
       processMap.put("addLocalSubmissionDetails", new addLocalSubmissionDetails());
@@ -6998,6 +7153,34 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class getAvailableAppInterfaceComputeResources<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAvailableAppInterfaceComputeResources_args> {
+      public getAvailableAppInterfaceComputeResources() {
+        super("getAvailableAppInterfaceComputeResources");
+      }
+
+      public getAvailableAppInterfaceComputeResources_args getEmptyArgsInstance() {
+        return new getAvailableAppInterfaceComputeResources_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAvailableAppInterfaceComputeResources_result getResult(I iface, getAvailableAppInterfaceComputeResources_args args) throws org.apache.thrift.TException {
+        getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+        try {
+          result.success = iface.getAvailableAppInterfaceComputeResources(args.appInterfaceId);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
     public static class registerComputeResource<I extends Iface> extends org.apache.thrift.ProcessFunction<I, registerComputeResource_args> {
       public registerComputeResource() {
         super("registerComputeResource");
@@ -7054,6 +7237,34 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class getAllComputeResourceNames<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllComputeResourceNames_args> {
+      public getAllComputeResourceNames() {
+        super("getAllComputeResourceNames");
+      }
+
+      public getAllComputeResourceNames_args getEmptyArgsInstance() {
+        return new getAllComputeResourceNames_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllComputeResourceNames_result getResult(I iface, getAllComputeResourceNames_args args) throws org.apache.thrift.TException {
+        getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
+        try {
+          result.success = iface.getAllComputeResourceNames();
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
     public static class updateComputeResource<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateComputeResource_args> {
       public updateComputeResource() {
         super("updateComputeResource");
@@ -7593,6 +7804,7 @@ import org.slf4j.LoggerFactory;
         registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
         try {
           result.success = iface.registerGatewayResourceProfile(args.gatewayResourceProfile);
+          result.setSuccessIsSet(true);
         } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
           result.ire = ire;
         } catch (org.apache.airavata.model.error.AiravataClientException ace) {
@@ -7885,8 +8097,10 @@ import org.slf4j.LoggerFactory;
       processMap.put("deleteApplicationInterface", new deleteApplicationInterface());
       processMap.put("getApplicationInputs", new getApplicationInputs());
       processMap.put("getApplicationOutputs", new getApplicationOutputs());
+      processMap.put("getAvailableAppInterfaceComputeResources", new getAvailableAppInterfaceComputeResources());
       processMap.put("registerComputeResource", new registerComputeResource());
       processMap.put("getComputeResource", new getComputeResource());
+      processMap.put("getAllComputeResourceNames", new getAllComputeResourceNames());
       processMap.put("updateComputeResource", new updateComputeResource());
       processMap.put("deleteComputeResource", new deleteComputeResource());
       processMap.put("addLocalSubmissionDetails", new addLocalSubmissionDetails());
@@ -10522,6 +10736,73 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class getAvailableAppInterfaceComputeResources<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAvailableAppInterfaceComputeResources_args, List<String>> {
+      public getAvailableAppInterfaceComputeResources() {
+        super("getAvailableAppInterfaceComputeResources");
+      }
+
+      public getAvailableAppInterfaceComputeResources_args getEmptyArgsInstance() {
+        return new getAvailableAppInterfaceComputeResources_args();
+      }
+
+      public AsyncMethodCallback<List<String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<List<String>>() { 
+          public void onComplete(List<String> o) {
+            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            getAvailableAppInterfaceComputeResources_result result = new getAvailableAppInterfaceComputeResources_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getAvailableAppInterfaceComputeResources_args args, org.apache.thrift.async.AsyncMethodCallback<List<String>> resultHandler) throws TException {
+        iface.getAvailableAppInterfaceComputeResources(args.appInterfaceId,resultHandler);
+      }
+    }
+
     public static class registerComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerComputeResource_args, String> {
       public registerComputeResource() {
         super("registerComputeResource");
@@ -10656,22 +10937,21 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class updateComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateComputeResource_args, Boolean> {
-      public updateComputeResource() {
-        super("updateComputeResource");
+    public static class getAllComputeResourceNames<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllComputeResourceNames_args, Map<String,String>> {
+      public getAllComputeResourceNames() {
+        super("getAllComputeResourceNames");
       }
 
-      public updateComputeResource_args getEmptyArgsInstance() {
-        return new updateComputeResource_args();
+      public getAllComputeResourceNames_args getEmptyArgsInstance() {
+        return new getAllComputeResourceNames_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Map<String,String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            updateComputeResource_result result = new updateComputeResource_result();
+        return new AsyncMethodCallback<Map<String,String>>() { 
+          public void onComplete(Map<String,String> o) {
+            getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -10683,7 +10963,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateComputeResource_result result = new updateComputeResource_result();
+            getAllComputeResourceNames_result result = new getAllComputeResourceNames_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -10719,25 +10999,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, updateComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.updateComputeResource(args.computeResourceId, args.computeResourceDescription,resultHandler);
+      public void start(I iface, getAllComputeResourceNames_args args, org.apache.thrift.async.AsyncMethodCallback<Map<String,String>> resultHandler) throws TException {
+        iface.getAllComputeResourceNames(resultHandler);
       }
     }
 
-    public static class deleteComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteComputeResource_args, Boolean> {
-      public deleteComputeResource() {
-        super("deleteComputeResource");
+    public static class updateComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateComputeResource_args, Boolean> {
+      public updateComputeResource() {
+        super("updateComputeResource");
       }
 
-      public deleteComputeResource_args getEmptyArgsInstance() {
-        return new deleteComputeResource_args();
+      public updateComputeResource_args getEmptyArgsInstance() {
+        return new updateComputeResource_args();
       }
 
       public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            deleteComputeResource_result result = new deleteComputeResource_result();
+            updateComputeResource_result result = new updateComputeResource_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -10751,7 +11031,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteComputeResource_result result = new deleteComputeResource_result();
+            updateComputeResource_result result = new updateComputeResource_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -10787,25 +11067,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, deleteComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteComputeResource(args.computeResourceId,resultHandler);
+      public void start(I iface, updateComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.updateComputeResource(args.computeResourceId, args.computeResourceDescription,resultHandler);
       }
     }
 
-    public static class addLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalSubmissionDetails_args, Boolean> {
-      public addLocalSubmissionDetails() {
-        super("addLocalSubmissionDetails");
+    public static class deleteComputeResource<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteComputeResource_args, Boolean> {
+      public deleteComputeResource() {
+        super("deleteComputeResource");
       }
 
-      public addLocalSubmissionDetails_args getEmptyArgsInstance() {
-        return new addLocalSubmissionDetails_args();
+      public deleteComputeResource_args getEmptyArgsInstance() {
+        return new deleteComputeResource_args();
       }
 
       public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
+            deleteComputeResource_result result = new deleteComputeResource_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -10819,7 +11099,75 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
+            deleteComputeResource_result result = new deleteComputeResource_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, deleteComputeResource_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteComputeResource(args.computeResourceId,resultHandler);
+      }
+    }
+
+    public static class addLocalSubmissionDetails<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addLocalSubmissionDetails_args, Boolean> {
+      public addLocalSubmissionDetails() {
+        super("addLocalSubmissionDetails");
+      }
+
+      public addLocalSubmissionDetails_args getEmptyArgsInstance() {
+        return new addLocalSubmissionDetails_args();
+      }
+
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            addLocalSubmissionDetails_result result = new addLocalSubmissionDetails_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -11880,7 +12228,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class registerGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerGatewayResourceProfile_args, String> {
+    public static class registerGatewayResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerGatewayResourceProfile_args, Boolean> {
       public registerGatewayResourceProfile() {
         super("registerGatewayResourceProfile");
       }
@@ -11889,12 +12237,13 @@ import org.slf4j.LoggerFactory;
         return new registerGatewayResourceProfile_args();
       }
 
-      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<String>() { 
-          public void onComplete(String o) {
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
             registerGatewayResourceProfile_result result = new registerGatewayResourceProfile_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -11942,7 +12291,7 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, registerGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+      public void start(I iface, registerGatewayResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
         iface.registerGatewayResourceProfile(args.gatewayResourceProfile,resultHandler);
       }
     }
@@ -53104,22 +53453,22 @@ import org.slf4j.LoggerFactory;
 
   }
 
-  public static class registerComputeResource_args implements org.apache.thrift.TBase<registerComputeResource_args, registerComputeResource_args._Fields>, java.io.Serializable, Cloneable, Comparable<registerComputeResource_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerComputeResource_args");
+  public static class getAvailableAppInterfaceComputeResources_args implements org.apache.thrift.TBase<getAvailableAppInterfaceComputeResources_args, getAvailableAppInterfaceComputeResources_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAvailableAppInterfaceComputeResources_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAvailableAppInterfaceComputeResources_args");
 
-    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceDescription", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField APP_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new registerComputeResource_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new registerComputeResource_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new getAvailableAppInterfaceComputeResources_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new getAvailableAppInterfaceComputeResources_argsTupleSchemeFactory());
     }
 
-    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription; // required
+    public String appInterfaceId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      COMPUTE_RESOURCE_DESCRIPTION((short)1, "computeResourceDescription");
+      APP_INTERFACE_ID((short)1, "appInterfaceId");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -53134,8 +53483,8 @@ import org.slf4j.LoggerFactory;
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // COMPUTE_RESOURCE_DESCRIPTION
-            return COMPUTE_RESOURCE_DESCRIPTION;
+          case 1: // APP_INTERFACE_ID
+            return APP_INTERFACE_ID;
           default:
             return null;
         }
@@ -53179,71 +53528,71 @@ import org.slf4j.LoggerFactory;
     public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.COMPUTE_RESOURCE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("computeResourceDescription", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription.class)));
+      tmpMap.put(_Fields.APP_INTERFACE_ID, new org.apache.thrift.meta_data.FieldMetaData("appInterfaceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerComputeResource_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAvailableAppInterfaceComputeResources_args.class, metaDataMap);
     }
 
-    public registerComputeResource_args() {
+    public getAvailableAppInterfaceComputeResources_args() {
     }
 
-    public registerComputeResource_args(
-      org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription)
+    public getAvailableAppInterfaceComputeResources_args(
+      String appInterfaceId)
     {
       this();
-      this.computeResourceDescription = computeResourceDescription;
+      this.appInterfaceId = appInterfaceId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public registerComputeResource_args(registerComputeResource_args other) {
-      if (other.isSetComputeResourceDescription()) {
-        this.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription(other.computeResourceDescription);
+    public getAvailableAppInterfaceComputeResources_args(getAvailableAppInterfaceComputeResources_args other) {
+      if (other.isSetAppInterfaceId()) {
+        this.appInterfaceId = other.appInterfaceId;
       }
     }
 
-    public registerComputeResource_args deepCopy() {
-      return new registerComputeResource_args(this);
+    public getAvailableAppInterfaceComputeResources_args deepCopy() {
+      return new getAvailableAppInterfaceComputeResources_args(this);
     }
 
     @Override
     public void clear() {
-      this.computeResourceDescription = null;
+      this.appInterfaceId = null;
     }
 
-    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getComputeResourceDescription() {
-      return this.computeResourceDescription;
+    public String getAppInterfaceId() {
+      return this.appInterfaceId;
     }
 
-    public registerComputeResource_args setComputeResourceDescription(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) {
-      this.computeResourceDescription = computeResourceDescription;
+    public getAvailableAppInterfaceComputeResources_args setAppInterfaceId(String appInterfaceId) {
+      this.appInterfaceId = appInterfaceId;
       return this;
     }
 
-    public void unsetComputeResourceDescription() {
-      this.computeResourceDescription = null;
+    public void unsetAppInterfaceId() {
+      this.appInterfaceId = null;
     }
 
-    /** Returns true if field computeResourceDescription is set (has been assigned a value) and false otherwise */
-    public boolean isSetComputeResourceDescription() {
-      return this.computeResourceDescription != null;
+    /** Returns true if field appInterfaceId is set (has been assigned a value) and false otherwise */
+    public boolean isSetAppInterfaceId() {
+      return this.appInterfaceId != null;
     }
 
-    public void setComputeResourceDescriptionIsSet(boolean value) {
+    public void setAppInterfaceIdIsSet(boolean value) {
       if (!value) {
-        this.computeResourceDescription = null;
+        this.appInterfaceId = null;
       }
     }
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case COMPUTE_RESOURCE_DESCRIPTION:
+      case APP_INTERFACE_ID:
         if (value == null) {
-          unsetComputeResourceDescription();
+          unsetAppInterfaceId();
         } else {
-          setComputeResourceDescription((org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription)value);
+          setAppInterfaceId((String)value);
         }
         break;
 
@@ -53252,8 +53601,8 @@ import org.slf4j.LoggerFactory;
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case COMPUTE_RESOURCE_DESCRIPTION:
-        return getComputeResourceDescription();
+      case APP_INTERFACE_ID:
+        return getAppInterfaceId();
 
       }
       throw new IllegalStateException();
@@ -53266,8 +53615,8 @@ import org.slf4j.LoggerFactory;
       }
 
       switch (field) {
-      case COMPUTE_RESOURCE_DESCRIPTION:
-        return isSetComputeResourceDescription();
+      case APP_INTERFACE_ID:
+        return isSetAppInterfaceId();
       }
       throw new IllegalStateException();
     }
@@ -53276,21 +53625,21 @@ import org.slf4j.LoggerFactory;
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof registerComputeResource_args)
-        return this.equals((registerComputeResource_args)that);
+      if (that instanceof getAvailableAppInterfaceComputeResources_args)
+        return this.equals((getAvailableAppInterfaceComputeResources_args)that);
       return false;
     }
 
-    public boolean equals(registerComputeResource_args that) {
+    public boolean equals(getAvailableAppInterfaceComputeResources_args that) {
       if (that == null)
         return false;
 
-      boolean this_present_computeResourceDescription = true && this.isSetComputeResourceDescription();
-      boolean that_present_computeResourceDescription = true && that.isSetComputeResourceDescription();
-      if (this_present_computeResourceDescription || that_present_computeResourceDescription) {
-        if (!(this_present_computeResourceDescription && that_present_computeResourceDescription))
+      boolean this_present_appInterfaceId = true && this.isSetAppInterfaceId();
+      boolean that_present_appInterfaceId = true && that.isSetAppInterfaceId();
+      if (this_present_appInterfaceId || that_present_appInterfaceId) {
+        if (!(this_present_appInterfaceId && that_present_appInterfaceId))
           return false;
-        if (!this.computeResourceDescription.equals(that.computeResourceDescription))
+        if (!this.appInterfaceId.equals(that.appInterfaceId))
           return false;
       }
 
@@ -53303,19 +53652,19 @@ import org.slf4j.LoggerFactory;
     }
 
     @Override
-    public int compareTo(registerComputeResource_args other) {
+    public int compareTo(getAvailableAppInterfaceComputeResources_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = Boolean.valueOf(isSetComputeResourceDescription()).compareTo(other.isSetComputeResourceDescription());
+      lastComparison = Boolean.valueOf(isSetAppInterfaceId()).compareTo(other.isSetAppInterfaceId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetComputeResourceDescription()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceDescription, other.computeResourceDescription);
+      if (isSetAppInterfaceId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appInterfaceId, other.appInterfaceId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -53337,14 +53686,14 @@ import org.slf4j.LoggerFactory;
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("registerComputeResource_args(");
+      StringBuilder sb = new StringBuilder("getAvailableAppInterfaceComputeResources_args(");
       boolean first = true;
 
-      sb.append("computeResourceDescription:");
-      if (this.computeResourceDescription == null) {
+      sb.append("appInterfaceId:");
+      if (this.appInterfaceId == null) {
         sb.append("null");
       } else {
-        sb.append(this.computeResourceDescription);
+        sb.append(this.appInterfaceId);
       }
       first = false;
       sb.append(")");
@@ -53353,13 +53702,10 @@ import org.slf4j.LoggerFactory;
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (computeResourceDescription == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceDescription' was not present! Struct: " + toString());
+      if (appInterfaceId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'appInterfaceId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
-      if (computeResourceDescription != null) {
-        computeResourceDescription.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -53378,15 +53724,15 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    private static class registerComputeResource_argsStandardSchemeFactory implements SchemeFactory {
-      public registerComputeResource_argsStandardScheme getScheme() {
-        return new registerComputeResource_argsStandardScheme();
+    private static class getAvailableAppInterfaceComputeResources_argsStandardSchemeFactory implements SchemeFactory {
+      public getAvailableAppInterfaceComputeResources_argsStandardScheme getScheme() {
+        return new getAvailableAppInterfaceComputeResources_argsStandardScheme();
       }
     }
 
-    private static class registerComputeResource_argsStandardScheme extends StandardScheme<registerComputeResource_args> {
+    private static class getAvailableAppInterfaceComputeResources_argsStandardScheme extends StandardScheme<getAvailableAppInterfaceComputeResources_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, registerComputeResource_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAvailableAppInterfaceComputeResources_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -53396,11 +53742,10 @@ import org.slf4j.LoggerFactory;
             break;
           }
           switch (schemeField.id) {
-            case 1: // COMPUTE_RESOURCE_DESCRIPTION
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription();
-                struct.computeResourceDescription.read(iprot);
-                struct.setComputeResourceDescriptionIsSet(true);
+            case 1: // APP_INTERFACE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.appInterfaceId = iprot.readString();
+                struct.setAppInterfaceIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -53416,13 +53761,13 @@ import org.slf4j.LoggerFactory;
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, registerComputeResource_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getAvailableAppInterfaceComputeResources_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.computeResourceDescription != null) {
-          oprot.writeFieldBegin(COMPUTE_RESOURCE_DESCRIPTION_FIELD_DESC);
-          struct.computeResourceDescription.write(oprot);
+        if (struct.appInterfaceId != null) {
+          oprot.writeFieldBegin(APP_INTERFACE_ID_FIELD_DESC);
+          oprot.writeString(struct.appInterfaceId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -53431,46 +53776,45 @@ import org.slf4j.LoggerFactory;
 
     }
 
-    private static class registerComputeResource_argsTupleSchemeFactory implements SchemeFactory {
-      public registerComputeResource_argsTupleScheme getScheme() {
-        return new registerComputeResource_argsTupleScheme();
+    private static class getAvailableAppInterfaceComputeResources_argsTupleSchemeFactory implements SchemeFactory {
+      public getAvailableAppInterfaceComputeResources_argsTupleScheme getScheme() {
+        return new getAvailableAppInterfaceComputeResources_argsTupleScheme();
       }
     }
 
-    private static class registerComputeResource_argsTupleScheme extends TupleScheme<registerComputeResource_args> {
+    private static class getAvailableAppInterfaceComputeResources_argsTupleScheme extends TupleScheme<getAvailableAppInterfaceComputeResources_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, registerComputeResource_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAvailableAppInterfaceComputeResources_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
-        struct.computeResourceDescription.write(oprot);
+        oprot.writeString(struct.appInterfaceId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, registerComputeResource_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAvailableAppInterfaceComputeResources_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        struct.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription();
-        struct.computeResourceDescription.read(iprot);
-        struct.setComputeResourceDescriptionIsSet(true);
+        struct.appInterfaceId = iprot.readString();
+        struct.setAppInterfaceIdIsSet(true);
       }
     }
 
   }
 
-  public static class registerComputeResource_result implements org.apache.thrift.TBase<registerComputeResource_result, registerComputeResource_result._Fields>, java.io.Serializable, Cloneable, Comparable<registerComputeResource_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerComputeResource_result");
+  public static class getAvailableAppInterfaceComputeResources_result implements org.apache.thrift.TBase<getAvailableAppInterfaceComputeResources_result, getAvailableAppInterfaceComputeResources_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAvailableAppInterfaceComputeResources_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAvailableAppInterfaceComputeResources_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new registerComputeResource_resultStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new registerComputeResource_resultTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new getAvailableAppInterfaceComputeResources_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new getAvailableAppInterfaceComputeResources_resultTupleSchemeFactory());
     }
 
-    public String success; // required
+    public List<String> success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
@@ -53547,7 +53891,8 @@ import org.slf4j.LoggerFactory;
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -53555,14 +53900,14 @@ import org.slf4j.LoggerFactory;
       tmpMap.put(_Fields.ASE, new org.apache.thrift.meta_data.FieldMetaData("ase", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerComputeResource_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAvailableAppInterfaceComputeResources_result.class, metaDataMap);
     }
 
-    public registerComputeResource_result() {
+    public getAvailableAppInterfaceComputeResources_result() {
     }
 
-    public registerComputeResource_result(
-      String success,
+    public getAvailableAppInterfaceComputeResources_result(
+      List<String> success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase)
@@ -53577,9 +53922,10 @@ import org.slf4j.LoggerFactory;
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public registerComputeResource_result(registerComputeResource_result other) {
+    public getAvailableAppInterfaceComputeResources_result(getAvailableAppInterfaceComputeResources_result other) {
       if (other.isSetSuccess()) {
-        this.success = other.success;
+        List<String> __this__success = new ArrayList<String>(other.success);
+        this.success = __this__success;
       }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
@@ -53592,8 +53938,8 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public registerComputeResource_result deepCopy() {
-      return new registerComputeResource_result(this);
+    public getAvailableAppInterfaceComputeResources_result deepCopy() {
+      return new getAvailableAppInterfaceComputeResources_result(this);
     }
 
     @Override
@@ -53604,11 +53950,26 @@ import org.slf4j.LoggerFactory;
       this.ase = null;
     }
 
-    public String getSuccess() {
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<String> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(String elem) {
+      if (this.success == null) {
+        this.success = new ArrayList<String>();
+      }
+      this.success.add(elem);
+    }
+
+    public List<String> getSuccess() {
       return this.success;
     }
 
-    public registerComputeResource_result setSuccess(String success) {
+    public getAvailableAppInterfaceComputeResources_result setSuccess(List<String> success) {
       this.success = success;
       return this;
     }
@@ -53632,7 +53993,7 @@ import org.slf4j.LoggerFactory;
       return this.ire;
     }
 
-    public registerComputeResource_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public getAvailableAppInterfaceComputeResources_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -53656,7 +54017,7 @@ import org.slf4j.LoggerFactory;
       return this.ace;
     }
 
-    public registerComputeResource_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getAvailableAppInterfaceComputeResources_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -53680,7 +54041,7 @@ import org.slf4j.LoggerFactory;
       return this.ase;
     }
 
-    public registerComputeResource_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getAvailableAppInterfaceComputeResources_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -53706,7 +54067,7 @@ import org.slf4j.LoggerFactory;
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((String)value);
+          setSuccess((List<String>)value);
         }
         break;
 
@@ -53778,12 +54139,12 @@ import org.slf4j.LoggerFactory;
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof registerComputeResource_result)
-        return this.equals((registerComputeResource_result)that);
+      if (that instanceof getAvailableAppInterfaceComputeResources_result)
+        return this.equals((getAvailableAppInterfaceComputeResources_result)that);
       return false;
     }
 
-    public boolean equals(registerComputeResource_result that) {
+    public boolean equals(getAvailableAppInterfaceComputeResources_result that) {
       if (that == null)
         return false;
 
@@ -53832,7 +54193,7 @@ import org.slf4j.LoggerFactory;
     }
 
     @Override
-    public int compareTo(registerComputeResource_result other) {
+    public int compareTo(getAvailableAppInterfaceComputeResources_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -53896,7 +54257,7 @@ import org.slf4j.LoggerFactory;
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("registerComputeResource_result(");
+      StringBuilder sb = new StringBuilder("getAvailableAppInterfaceComputeResources_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -53955,15 +54316,15 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    private static class registerComputeResource_resultStandardSchemeFactory implements SchemeFactory {
-      public registerComputeResource_resultStandardScheme getScheme() {
-        return new registerComputeResource_resultStandardScheme();
+    private static class getAvailableAppInterfaceComputeResources_resultStandardSchemeFactory implements SchemeFactory {
+      public getAvailableAppInterfaceComputeResources_resultStandardScheme getScheme() {
+        return new getAvailableAppInterfaceComputeResources_resultStandardScheme();
       }
     }
 
-    private static class registerComputeResource_resultStandardScheme extends StandardScheme<registerComputeResource_result> {
+    private static class getAvailableAppInterfaceComputeResources_resultStandardScheme extends StandardScheme<getAvailableAppInterfaceComputeResources_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, registerComputeResource_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAvailableAppInterfaceComputeResources_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -53974,8 +54335,18 @@ import org.slf4j.LoggerFactory;
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.success = iprot.readString();
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list106 = iprot.readListBegin();
+                  struct.success = new ArrayList<String>(_list106.size);
+                  for (int _i107 = 0; _i107 < _list106.size; ++_i107)
+                  {
+                    String _elem108;
+                    _elem108 = iprot.readString();
+                    struct.success.add(_elem108);
+                  }
+                  iprot.readListEnd();
+                }
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -54019,13 +54390,20 @@ import org.slf4j.LoggerFactory;
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, registerComputeResource_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getAvailableAppInterfaceComputeResources_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeString(struct.success);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.success.size()));
+            for (String _iter109 : struct.success)
+            {
+              oprot.writeString(_iter109);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
         if (struct.ire != null) {
@@ -54049,16 +54427,16 @@ import org.slf4j.LoggerFactory;
 
     }
 
-    private static class registerComputeResource_resultTupleSchemeFactory implements SchemeFactory {
-      public registerComputeResource_resultTupleScheme getScheme() {
-        return new registerComputeResource_resultTupleScheme();
+    private static class getAvailableAppInterfaceComputeResources_resultTupleSchemeFactory implements SchemeFactory {
+      public getAvailableAppInterfaceComputeResources_resultTupleScheme getScheme() {
+        return new getAvailableAppInterfaceComputeResources_resultTupleScheme();
       }
     }
 
-    private static class registerComputeResource_resultTupleScheme extends TupleScheme<registerComputeResource_result> {
+    private static class getAvailableAppInterfaceComputeResources_resultTupleScheme extends TupleScheme<getAvailableAppInterfaceComputeResources_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, registerComputeResource_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAvailableAppInterfaceComputeResources_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetSuccess()) {
@@ -54075,7 +54453,13 @@ import org.slf4j.LoggerFactory;
         }
         oprot.writeBitSet(optionals, 4);
         if (struct.isSetSuccess()) {
-          oprot.writeString(struct.success);
+          {
+            oprot.writeI32(struct.success.size());
+            for (String _iter110 : struct.success)
+            {
+              oprot.writeString(_iter110);
+            }
+          }
         }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
@@ -54089,11 +54473,20 @@ import org.slf4j.LoggerFactory;
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, registerComputeResource_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAvailableAppInterfaceComputeResources_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(4);
         if (incoming.get(0)) {
-          struct.success = iprot.readString();
+          {
+            org.apache.thrift.protocol.TList _list111 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.success = new ArrayList<String>(_list111.size);
+            for (int _i112 = 0; _i112 < _list111.size; ++_i112)
+            {
+              String _elem113;
+              _elem113 = iprot.readString();
+              struct.success.add(_elem113);
+            }
+          }
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -54116,22 +54509,22 @@ import org.slf4j.LoggerFactory;
 
   }
 
-  public static class getComputeResource_args implements org.apache.thrift.TBase<getComputeResource_args, getComputeResource_args._Fields>, java.io.Serializable, Cloneable, Comparable<getComputeResource_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getComputeResource_args");
+  public static class registerComputeResource_args implements org.apache.thrift.TBase<registerComputeResource_args, registerComputeResource_args._Fields>, java.io.Serializable, Cloneable, Comparable<registerComputeResource_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerComputeResource_args");
 
-    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceDescription", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new getComputeResource_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new getComputeResource_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new registerComputeResource_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new registerComputeResource_argsTupleSchemeFactory());
     }
 
-    public String computeResourceId; // required
+    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      COMPUTE_RESOURCE_ID((short)1, "computeResourceId");
+      COMPUTE_RESOURCE_DESCRIPTION((short)1, "computeResourceDescription");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -54146,8 +54539,8 @@ import org.slf4j.LoggerFactory;
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // COMPUTE_RESOURCE_ID
-            return COMPUTE_RESOURCE_ID;
+          case 1: // COMPUTE_RESOURCE_DESCRIPTION
+            return COMPUTE_RESOURCE_DESCRIPTION;
           default:
             return null;
         }
@@ -54191,71 +54584,71 @@ import org.slf4j.LoggerFactory;
     public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.COMPUTE_RESOURCE_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("computeResourceDescription", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getComputeResource_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerComputeResource_args.class, metaDataMap);
     }
 
-    public getComputeResource_args() {
+    public registerComputeResource_args() {
     }
 
-    public getComputeResource_args(
-      String computeResourceId)
+    public registerComputeResource_args(
+      org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription)
     {
       this();
-      this.computeResourceId = computeResourceId;
+      this.computeResourceDescription = computeResourceDescription;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getComputeResource_args(getComputeResource_args other) {
-      if (other.isSetComputeResourceId()) {
-        this.computeResourceId = other.computeResourceId;
+    public registerComputeResource_args(registerComputeResource_args other) {
+      if (other.isSetComputeResourceDescription()) {
+        this.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription(other.computeResourceDescription);
       }
     }
 
-    public getComputeResource_args deepCopy() {
-      return new getComputeResource_args(this);
+    public registerComputeResource_args deepCopy() {
+      return new registerComputeResource_args(this);
     }
 
     @Override
     public void clear() {
-      this.computeResourceId = null;
+      this.computeResourceDescription = null;
     }
 
-    public String getComputeResourceId() {
-      return this.computeResourceId;
+    public org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription getComputeResourceDescription() {
+      return this.computeResourceDescription;
     }
 
-    public getComputeResource_args setComputeResourceId(String computeResourceId) {
-      this.computeResourceId = computeResourceId;
+    public registerComputeResource_args setComputeResourceDescription(org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription) {
+      this.computeResourceDescription = computeResourceDescription;
       return this;
     }
 
-    public void unsetComputeResourceId() {
-      this.computeResourceId = null;
+    public void unsetComputeResourceDescription() {
+      this.computeResourceDescription = null;
     }
 
-    /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
-    public boolean isSetComputeResourceId() {
-      return this.computeResourceId != null;
+    /** Returns true if field computeResourceDescription is set (has been assigned a value) and false otherwise */
+    public boolean isSetComputeResourceDescription() {
+      return this.computeResourceDescription != null;
     }
 
-    public void setComputeResourceIdIsSet(boolean value) {
+    public void setComputeResourceDescriptionIsSet(boolean value) {
       if (!value) {
-        this.computeResourceId = null;
+        this.computeResourceDescription = null;
       }
     }
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case COMPUTE_RESOURCE_ID:
+      case COMPUTE_RESOURCE_DESCRIPTION:
         if (value == null) {
-          unsetComputeResourceId();
+          unsetComputeResourceDescription();
         } else {
-          setComputeResourceId((String)value);
+          setComputeResourceDescription((org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription)value);
         }
         break;
 
@@ -54264,8 +54657,8 @@ import org.slf4j.LoggerFactory;
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case COMPUTE_RESOURCE_ID:
-        return getComputeResourceId();
+      case COMPUTE_RESOURCE_DESCRIPTION:
+        return getComputeResourceDescription();
 
       }
       throw new IllegalStateException();
@@ -54278,8 +54671,8 @@ import org.slf4j.LoggerFactory;
       }
 
       switch (field) {
-      case COMPUTE_RESOURCE_ID:
-        return isSetComputeResourceId();
+      case COMPUTE_RESOURCE_DESCRIPTION:
+        return isSetComputeResourceDescription();
       }
       throw new IllegalStateException();
     }
@@ -54288,21 +54681,21 @@ import org.slf4j.LoggerFactory;
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof getComputeResource_args)
-        return this.equals((getComputeResource_args)that);
+      if (that instanceof registerComputeResource_args)
+        return this.equals((registerComputeResource_args)that);
       return false;
     }
 
-    public boolean equals(getComputeResource_args that) {
+    public boolean equals(registerComputeResource_args that) {
       if (that == null)
         return false;
 
-      boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
-      boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
-      if (this_present_computeResourceId || that_present_computeResourceId) {
-        if (!(this_present_computeResourceId && that_present_computeResourceId))
+      boolean this_present_computeResourceDescription = true && this.isSetComputeResourceDescription();
+      boolean that_present_computeResourceDescription = true && that.isSetComputeResourceDescription();
+      if (this_present_computeResourceDescription || that_present_computeResourceDescription) {
+        if (!(this_present_computeResourceDescription && that_present_computeResourceDescription))
           return false;
-        if (!this.computeResourceId.equals(that.computeResourceId))
+        if (!this.computeResourceDescription.equals(that.computeResourceDescription))
           return false;
       }
 
@@ -54315,19 +54708,19 @@ import org.slf4j.LoggerFactory;
     }
 
     @Override
-    public int compareTo(getComputeResource_args other) {
+    public int compareTo(registerComputeResource_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
+      lastComparison = Boolean.valueOf(isSetComputeResourceDescription()).compareTo(other.isSetComputeResourceDescription());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetComputeResourceId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
+      if (isSetComputeResourceDescription()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceDescription, other.computeResourceDescription);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -54349,14 +54742,14 @@ import org.slf4j.LoggerFactory;
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("getComputeResource_args(");
+      StringBuilder sb = new StringBuilder("registerComputeResource_args(");
       boolean first = true;
 
-      sb.append("computeResourceId:");
-      if (this.computeResourceId == null) {
+      sb.append("computeResourceDescription:");
+      if (this.computeResourceDescription == null) {
         sb.append("null");
       } else {
-        sb.append(this.computeResourceId);
+        sb.append(this.computeResourceDescription);
       }
       first = false;
       sb.append(")");
@@ -54365,10 +54758,13 @@ import org.slf4j.LoggerFactory;
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (computeResourceId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' was not present! Struct: " + toString());
+      if (computeResourceDescription == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceDescription' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
+      if (computeResourceDescription != null) {
+        computeResourceDescription.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -54387,15 +54783,15 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    private static class getComputeResource_argsStandardSchemeFactory implements SchemeFactory {
-      public getComputeResource_argsStandardScheme getScheme() {
-        return new getComputeResource_argsStandardScheme();
+    private static class registerComputeResource_argsStandardSchemeFactory implements SchemeFactory {
+      public registerComputeResource_argsStandardScheme getScheme() {
+        return new registerComputeResource_argsStandardScheme();
       }
     }
 
-    private static class getComputeResource_argsStandardScheme extends StandardScheme<getComputeResource_args> {
+    private static class registerComputeResource_argsStandardScheme extends StandardScheme<registerComputeResource_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getComputeResource_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, registerComputeResource_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -54405,10 +54801,11 @@ import org.slf4j.LoggerFactory;
             break;
           }
           switch (schemeField.id) {
-            case 1: // COMPUTE_RESOURCE_ID
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.computeResourceId = iprot.readString();
-                struct.setComputeResourceIdIsSet(true);
+            case 1: // COMPUTE_RESOURCE_DESCRIPTION
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.computeResourceDescription = new org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription();
+                struct.computeResourceDescription.read(iprot);
+                struct.setComputeResourceDescriptionIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -54424,13 +54821,13 @@ import org.slf4j.LoggerFactory;
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getComputeResource_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, registerComputeResource_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.computeResourceId != null) {
-          oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
-          oprot.writeString(struct.computeResourceId);
+        if (struct.computeResourceDescription != null) {
+          oprot.writeFieldBegin(COMPUTE_RESOURCE_DESCRIPTION_FIELD_DESC);
+          struct.computeResourceDescription.write(oprot);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -54439,45 +54836,46 @@ import org.slf4j.LoggerFactory;
 
     }
 
-    private static class getComputeResource_argsTupleSchemeFactory implements SchemeFactory {
-      public getComputeResource_argsTupleScheme getScheme() {
-        return new getComputeResource_argsTupleScheme();
+    private static class registerComputeResource_argsTupleSchemeFactory implements SchemeFactory {
+      public registerComputeResource_argsTupleScheme getScheme() {
+        return new registerComputeRes

<TRUNCATED>