Merge pull request #91 from dinukadesilva/enabling-htcondor-option

Adding the latest airavata stub
diff --git a/app/libraries/Airavata/API/Airavata.php b/app/libraries/Airavata/API/Airavata.php
index a296cec..c522dd1 100644
--- a/app/libraries/Airavata/API/Airavata.php
+++ b/app/libraries/Airavata/API/Airavata.php
@@ -533,6 +533,12 @@
    * @param resourceHostName
    *       Hostname id substring with which to further filter statistics.
    * 
+   * @param limit
+   *       Amount of results to be fetched.
+   * 
+   * @param offset
+   *       The starting point of the results to be fetched.
+   * 
    * 
    * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
@@ -542,13 +548,15 @@
    * @param string $userName
    * @param string $applicationName
    * @param string $resourceHostName
+   * @param int $limit
+   * @param int $offset
    * @return \Airavata\Model\Experiment\ExperimentStatistics
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function getExperimentStatistics(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $fromTime, $toTime, $userName, $applicationName, $resourceHostName);
+  public function getExperimentStatistics(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $fromTime, $toTime, $userName, $applicationName, $resourceHostName, $limit, $offset);
   /**
    * 
    * Get All Experiments of the Project
@@ -1088,6 +1096,53 @@
    */
   public function getIntermediateOutputs(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId);
   /**
+   * Request fetching of output files for an experiment that is still executing.
+   * This method results in a new Process being created for the Experiment with
+   * tasks for fetching each output file.
+   * 
+   * @param authzToken
+   * 
+   * @param airavataExperimentId
+   *     Experiment ID of the experiment
+   * 
+   * @param outputNames
+   *     List of names of the experiment's outputs to fetch.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $airavataExperimentId
+   * @param string[] $outputNames
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\ExperimentNotFoundException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function fetchIntermediateOutputs(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, array $outputNames);
+  /**
+   * Get the status of the most recent intermediate output fetching process for the given output names.
+   * 
+   * @param authzToken
+   * 
+   * @param airavataExperimentId
+   *     Experiment ID of the experiment
+   * 
+   * @param outputNames
+   *     List of names of the experiment's outputs to fetch.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $airavataExperimentId
+   * @param string[] $outputNames
+   * @return \Airavata\Model\Status\ProcessStatus
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\ExperimentNotFoundException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getIntermediateOutputProcessStatus(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, array $outputNames);
+  /**
    * 
    * Get Job Statuses for an Experiment
    * This method to be used when need to get the job status of an Experiment. An experiment may have one or many jobs; there for one or many job statuses may turnup
@@ -6022,13 +6077,13 @@
     throw new \Exception("searchExperiments failed: unknown result");
   }
 
-  public function getExperimentStatistics(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $fromTime, $toTime, $userName, $applicationName, $resourceHostName)
+  public function getExperimentStatistics(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $fromTime, $toTime, $userName, $applicationName, $resourceHostName, $limit, $offset)
   {
-    $this->send_getExperimentStatistics($authzToken, $gatewayId, $fromTime, $toTime, $userName, $applicationName, $resourceHostName);
+    $this->send_getExperimentStatistics($authzToken, $gatewayId, $fromTime, $toTime, $userName, $applicationName, $resourceHostName, $limit, $offset);
     return $this->recv_getExperimentStatistics();
   }
 
-  public function send_getExperimentStatistics(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $fromTime, $toTime, $userName, $applicationName, $resourceHostName)
+  public function send_getExperimentStatistics(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $fromTime, $toTime, $userName, $applicationName, $resourceHostName, $limit, $offset)
   {
     $args = new \Airavata\API\Airavata_getExperimentStatistics_args();
     $args->authzToken = $authzToken;
@@ -6038,6 +6093,8 @@
     $args->userName = $userName;
     $args->applicationName = $applicationName;
     $args->resourceHostName = $resourceHostName;
+    $args->limit = $limit;
+    $args->offset = $offset;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
@@ -7061,6 +7118,139 @@
     throw new \Exception("getIntermediateOutputs failed: unknown result");
   }
 
+  public function fetchIntermediateOutputs(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, array $outputNames)
+  {
+    $this->send_fetchIntermediateOutputs($authzToken, $airavataExperimentId, $outputNames);
+    $this->recv_fetchIntermediateOutputs();
+  }
+
+  public function send_fetchIntermediateOutputs(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, array $outputNames)
+  {
+    $args = new \Airavata\API\Airavata_fetchIntermediateOutputs_args();
+    $args->authzToken = $authzToken;
+    $args->airavataExperimentId = $airavataExperimentId;
+    $args->outputNames = $outputNames;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'fetchIntermediateOutputs', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('fetchIntermediateOutputs', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_fetchIntermediateOutputs()
+  {
+    $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_fetchIntermediateOutputs_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_fetchIntermediateOutputs_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->enf !== null) {
+      throw $result->enf;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    return;
+  }
+
+  public function getIntermediateOutputProcessStatus(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, array $outputNames)
+  {
+    $this->send_getIntermediateOutputProcessStatus($authzToken, $airavataExperimentId, $outputNames);
+    return $this->recv_getIntermediateOutputProcessStatus();
+  }
+
+  public function send_getIntermediateOutputProcessStatus(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, array $outputNames)
+  {
+    $args = new \Airavata\API\Airavata_getIntermediateOutputProcessStatus_args();
+    $args->authzToken = $authzToken;
+    $args->airavataExperimentId = $airavataExperimentId;
+    $args->outputNames = $outputNames;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getIntermediateOutputProcessStatus', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getIntermediateOutputProcessStatus', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getIntermediateOutputProcessStatus()
+  {
+    $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_getIntermediateOutputProcessStatus_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_getIntermediateOutputProcessStatus_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->enf !== null) {
+      throw $result->enf;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    throw new \Exception("getIntermediateOutputProcessStatus failed: unknown result");
+  }
+
   public function getJobStatuses(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId)
   {
     $this->send_getJobStatuses($authzToken, $airavataExperimentId);
@@ -24686,6 +24876,14 @@
    * @var string
    */
   public $resourceHostName = null;
+  /**
+   * @var int
+   */
+  public $limit = 50;
+  /**
+   * @var int
+   */
+  public $offset = 0;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -24719,6 +24917,14 @@
           'var' => 'resourceHostName',
           'type' => TType::STRING,
           ),
+        8 => array(
+          'var' => 'limit',
+          'type' => TType::I32,
+          ),
+        9 => array(
+          'var' => 'offset',
+          'type' => TType::I32,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -24743,6 +24949,12 @@
       if (isset($vals['resourceHostName'])) {
         $this->resourceHostName = $vals['resourceHostName'];
       }
+      if (isset($vals['limit'])) {
+        $this->limit = $vals['limit'];
+      }
+      if (isset($vals['offset'])) {
+        $this->offset = $vals['offset'];
+      }
     }
   }
 
@@ -24815,6 +25027,20 @@
             $xfer += $input->skip($ftype);
           }
           break;
+        case 8:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->limit);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->offset);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -24866,6 +25092,16 @@
       $xfer += $output->writeString($this->resourceHostName);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->limit !== null) {
+      $xfer += $output->writeFieldBegin('limit', TType::I32, 8);
+      $xfer += $output->writeI32($this->limit);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->offset !== null) {
+      $xfer += $output->writeFieldBegin('offset', TType::I32, 9);
+      $xfer += $output->writeI32($this->offset);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -29613,6 +29849,692 @@
 
 }
 
+class Airavata_fetchIntermediateOutputs_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $airavataExperimentId = null;
+  /**
+   * @var string[]
+   */
+  public $outputNames = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'airavataExperimentId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'outputNames',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['airavataExperimentId'])) {
+        $this->airavataExperimentId = $vals['airavataExperimentId'];
+      }
+      if (isset($vals['outputNames'])) {
+        $this->outputNames = $vals['outputNames'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_fetchIntermediateOutputs_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::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->airavataExperimentId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::LST) {
+            $this->outputNames = array();
+            $_size95 = 0;
+            $_etype98 = 0;
+            $xfer += $input->readListBegin($_etype98, $_size95);
+            for ($_i99 = 0; $_i99 < $_size95; ++$_i99)
+            {
+              $elem100 = null;
+              $xfer += $input->readString($elem100);
+              $this->outputNames []= $elem100;
+            }
+            $xfer += $input->readListEnd();
+          } 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_fetchIntermediateOutputs_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->airavataExperimentId !== null) {
+      $xfer += $output->writeFieldBegin('airavataExperimentId', TType::STRING, 2);
+      $xfer += $output->writeString($this->airavataExperimentId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->outputNames !== null) {
+      if (!is_array($this->outputNames)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('outputNames', TType::LST, 3);
+      {
+        $output->writeListBegin(TType::STRING, count($this->outputNames));
+        {
+          foreach ($this->outputNames as $iter101)
+          {
+            $xfer += $output->writeString($iter101);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_fetchIntermediateOutputs_result {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\ExperimentNotFoundException
+   */
+  public $enf = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'enf',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\ExperimentNotFoundException',
+          ),
+        3 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        4 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        5 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['enf'])) {
+        $this->enf = $vals['enf'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_fetchIntermediateOutputs_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 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->enf = new \Airavata\API\Error\ExperimentNotFoundException();
+            $xfer += $this->enf->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->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_fetchIntermediateOutputs_result');
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->enf !== null) {
+      $xfer += $output->writeFieldBegin('enf', TType::STRUCT, 2);
+      $xfer += $this->enf->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 3);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 4);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 5);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getIntermediateOutputProcessStatus_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $airavataExperimentId = null;
+  /**
+   * @var string[]
+   */
+  public $outputNames = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'airavataExperimentId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'outputNames',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['airavataExperimentId'])) {
+        $this->airavataExperimentId = $vals['airavataExperimentId'];
+      }
+      if (isset($vals['outputNames'])) {
+        $this->outputNames = $vals['outputNames'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getIntermediateOutputProcessStatus_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::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->airavataExperimentId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::LST) {
+            $this->outputNames = array();
+            $_size102 = 0;
+            $_etype105 = 0;
+            $xfer += $input->readListBegin($_etype105, $_size102);
+            for ($_i106 = 0; $_i106 < $_size102; ++$_i106)
+            {
+              $elem107 = null;
+              $xfer += $input->readString($elem107);
+              $this->outputNames []= $elem107;
+            }
+            $xfer += $input->readListEnd();
+          } 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_getIntermediateOutputProcessStatus_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->airavataExperimentId !== null) {
+      $xfer += $output->writeFieldBegin('airavataExperimentId', TType::STRING, 2);
+      $xfer += $output->writeString($this->airavataExperimentId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->outputNames !== null) {
+      if (!is_array($this->outputNames)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('outputNames', TType::LST, 3);
+      {
+        $output->writeListBegin(TType::STRING, count($this->outputNames));
+        {
+          foreach ($this->outputNames as $iter108)
+          {
+            $xfer += $output->writeString($iter108);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getIntermediateOutputProcessStatus_result {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Status\ProcessStatus
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\ExperimentNotFoundException
+   */
+  public $enf = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Status\ProcessStatus',
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'enf',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\ExperimentNotFoundException',
+          ),
+        3 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        4 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        5 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['enf'])) {
+        $this->enf = $vals['enf'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getIntermediateOutputProcessStatus_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::STRUCT) {
+            $this->success = new \Airavata\Model\Status\ProcessStatus();
+            $xfer += $this->success->read($input);
+          } 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->enf = new \Airavata\API\Error\ExperimentNotFoundException();
+            $xfer += $this->enf->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->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_getIntermediateOutputProcessStatus_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->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->enf !== null) {
+      $xfer += $output->writeFieldBegin('enf', TType::STRUCT, 2);
+      $xfer += $this->enf->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 3);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 4);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 5);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class Airavata_getJobStatuses_args {
   static $_TSPEC;
 
@@ -29831,18 +30753,18 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size95 = 0;
-            $_ktype96 = 0;
-            $_vtype97 = 0;
-            $xfer += $input->readMapBegin($_ktype96, $_vtype97, $_size95);
-            for ($_i99 = 0; $_i99 < $_size95; ++$_i99)
+            $_size109 = 0;
+            $_ktype110 = 0;
+            $_vtype111 = 0;
+            $xfer += $input->readMapBegin($_ktype110, $_vtype111, $_size109);
+            for ($_i113 = 0; $_i113 < $_size109; ++$_i113)
             {
-              $key100 = '';
-              $val101 = new \Airavata\Model\Status\JobStatus();
-              $xfer += $input->readString($key100);
-              $val101 = new \Airavata\Model\Status\JobStatus();
-              $xfer += $val101->read($input);
-              $this->success[$key100] = $val101;
+              $key114 = '';
+              $val115 = new \Airavata\Model\Status\JobStatus();
+              $xfer += $input->readString($key114);
+              $val115 = new \Airavata\Model\Status\JobStatus();
+              $xfer += $val115->read($input);
+              $this->success[$key114] = $val115;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -29910,10 +30832,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $kiter102 => $viter103)
+          foreach ($this->success as $kiter116 => $viter117)
           {
-            $xfer += $output->writeString($kiter102);
-            $xfer += $viter103->write($output);
+            $xfer += $output->writeString($kiter116);
+            $xfer += $viter117->write($output);
           }
         }
         $output->writeMapEnd();
@@ -30166,15 +31088,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size104 = 0;
-            $_etype107 = 0;
-            $xfer += $input->readListBegin($_etype107, $_size104);
-            for ($_i108 = 0; $_i108 < $_size104; ++$_i108)
+            $_size118 = 0;
+            $_etype121 = 0;
+            $xfer += $input->readListBegin($_etype121, $_size118);
+            for ($_i122 = 0; $_i122 < $_size118; ++$_i122)
             {
-              $elem109 = null;
-              $elem109 = new \Airavata\Model\Job\JobModel();
-              $xfer += $elem109->read($input);
-              $this->success []= $elem109;
+              $elem123 = null;
+              $elem123 = new \Airavata\Model\Job\JobModel();
+              $xfer += $elem123->read($input);
+              $this->success []= $elem123;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -30242,9 +31164,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter110)
+          foreach ($this->success as $iter124)
           {
-            $xfer += $iter110->write($output);
+            $xfer += $iter124->write($output);
           }
         }
         $output->writeListEnd();
@@ -32431,15 +33353,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size111 = 0;
-            $_etype114 = 0;
-            $xfer += $input->readListBegin($_etype114, $_size111);
-            for ($_i115 = 0; $_i115 < $_size111; ++$_i115)
+            $_size125 = 0;
+            $_etype128 = 0;
+            $xfer += $input->readListBegin($_etype128, $_size125);
+            for ($_i129 = 0; $_i129 < $_size125; ++$_i129)
             {
-              $elem116 = null;
-              $elem116 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule();
-              $xfer += $elem116->read($input);
-              $this->success []= $elem116;
+              $elem130 = null;
+              $elem130 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule();
+              $xfer += $elem130->read($input);
+              $this->success []= $elem130;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -32499,9 +33421,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter117)
+          foreach ($this->success as $iter131)
           {
-            $xfer += $iter117->write($output);
+            $xfer += $iter131->write($output);
           }
         }
         $output->writeListEnd();
@@ -32737,15 +33659,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size118 = 0;
-            $_etype121 = 0;
-            $xfer += $input->readListBegin($_etype121, $_size118);
-            for ($_i122 = 0; $_i122 < $_size118; ++$_i122)
+            $_size132 = 0;
+            $_etype135 = 0;
+            $xfer += $input->readListBegin($_etype135, $_size132);
+            for ($_i136 = 0; $_i136 < $_size132; ++$_i136)
             {
-              $elem123 = null;
-              $elem123 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule();
-              $xfer += $elem123->read($input);
-              $this->success []= $elem123;
+              $elem137 = null;
+              $elem137 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule();
+              $xfer += $elem137->read($input);
+              $this->success []= $elem137;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -32805,9 +33727,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter124)
+          foreach ($this->success as $iter138)
           {
-            $xfer += $iter124->write($output);
+            $xfer += $iter138->write($output);
           }
         }
         $output->writeListEnd();
@@ -34494,15 +35416,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size125 = 0;
-            $_etype128 = 0;
-            $xfer += $input->readListBegin($_etype128, $_size125);
-            for ($_i129 = 0; $_i129 < $_size125; ++$_i129)
+            $_size139 = 0;
+            $_etype142 = 0;
+            $xfer += $input->readListBegin($_etype142, $_size139);
+            for ($_i143 = 0; $_i143 < $_size139; ++$_i143)
             {
-              $elem130 = null;
-              $elem130 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
-              $xfer += $elem130->read($input);
-              $this->success []= $elem130;
+              $elem144 = null;
+              $elem144 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
+              $xfer += $elem144->read($input);
+              $this->success []= $elem144;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -34562,9 +35484,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter131)
+          foreach ($this->success as $iter145)
           {
-            $xfer += $iter131->write($output);
+            $xfer += $iter145->write($output);
           }
         }
         $output->writeListEnd();
@@ -34823,15 +35745,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size132 = 0;
-            $_etype135 = 0;
-            $xfer += $input->readListBegin($_etype135, $_size132);
-            for ($_i136 = 0; $_i136 < $_size132; ++$_i136)
+            $_size146 = 0;
+            $_etype149 = 0;
+            $xfer += $input->readListBegin($_etype149, $_size146);
+            for ($_i150 = 0; $_i150 < $_size146; ++$_i150)
             {
-              $elem137 = null;
-              $elem137 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
-              $xfer += $elem137->read($input);
-              $this->success []= $elem137;
+              $elem151 = null;
+              $elem151 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
+              $xfer += $elem151->read($input);
+              $this->success []= $elem151;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -34891,9 +35813,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter138)
+          foreach ($this->success as $iter152)
           {
-            $xfer += $iter138->write($output);
+            $xfer += $iter152->write($output);
           }
         }
         $output->writeListEnd();
@@ -35128,14 +36050,14 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size139 = 0;
-            $_etype142 = 0;
-            $xfer += $input->readListBegin($_etype142, $_size139);
-            for ($_i143 = 0; $_i143 < $_size139; ++$_i143)
+            $_size153 = 0;
+            $_etype156 = 0;
+            $xfer += $input->readListBegin($_etype156, $_size153);
+            for ($_i157 = 0; $_i157 < $_size153; ++$_i157)
             {
-              $elem144 = null;
-              $xfer += $input->readString($elem144);
-              $this->success []= $elem144;
+              $elem158 = null;
+              $xfer += $input->readString($elem158);
+              $this->success []= $elem158;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -35195,9 +36117,9 @@
       {
         $output->writeListBegin(TType::STRING, count($this->success));
         {
-          foreach ($this->success as $iter145)
+          foreach ($this->success as $iter159)
           {
-            $xfer += $output->writeString($iter145);
+            $xfer += $output->writeString($iter159);
           }
         }
         $output->writeListEnd();
@@ -35456,15 +36378,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size146 = 0;
-            $_etype149 = 0;
-            $xfer += $input->readListBegin($_etype149, $_size146);
-            for ($_i150 = 0; $_i150 < $_size146; ++$_i150)
+            $_size160 = 0;
+            $_etype163 = 0;
+            $xfer += $input->readListBegin($_etype163, $_size160);
+            for ($_i164 = 0; $_i164 < $_size160; ++$_i164)
             {
-              $elem151 = null;
-              $elem151 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
-              $xfer += $elem151->read($input);
-              $this->success []= $elem151;
+              $elem165 = null;
+              $elem165 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
+              $xfer += $elem165->read($input);
+              $this->success []= $elem165;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -35524,9 +36446,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter152)
+          foreach ($this->success as $iter166)
           {
-            $xfer += $iter152->write($output);
+            $xfer += $iter166->write($output);
           }
         }
         $output->writeListEnd();
@@ -37262,17 +38184,17 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size153 = 0;
-            $_ktype154 = 0;
-            $_vtype155 = 0;
-            $xfer += $input->readMapBegin($_ktype154, $_vtype155, $_size153);
-            for ($_i157 = 0; $_i157 < $_size153; ++$_i157)
+            $_size167 = 0;
+            $_ktype168 = 0;
+            $_vtype169 = 0;
+            $xfer += $input->readMapBegin($_ktype168, $_vtype169, $_size167);
+            for ($_i171 = 0; $_i171 < $_size167; ++$_i171)
             {
-              $key158 = '';
-              $val159 = '';
-              $xfer += $input->readString($key158);
-              $xfer += $input->readString($val159);
-              $this->success[$key158] = $val159;
+              $key172 = '';
+              $val173 = '';
+              $xfer += $input->readString($key172);
+              $xfer += $input->readString($val173);
+              $this->success[$key172] = $val173;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -37332,10 +38254,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
         {
-          foreach ($this->success as $kiter160 => $viter161)
+          foreach ($this->success as $kiter174 => $viter175)
           {
-            $xfer += $output->writeString($kiter160);
-            $xfer += $output->writeString($viter161);
+            $xfer += $output->writeString($kiter174);
+            $xfer += $output->writeString($viter175);
           }
         }
         $output->writeMapEnd();
@@ -37571,15 +38493,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size162 = 0;
-            $_etype165 = 0;
-            $xfer += $input->readListBegin($_etype165, $_size162);
-            for ($_i166 = 0; $_i166 < $_size162; ++$_i166)
+            $_size176 = 0;
+            $_etype179 = 0;
+            $xfer += $input->readListBegin($_etype179, $_size176);
+            for ($_i180 = 0; $_i180 < $_size176; ++$_i180)
             {
-              $elem167 = null;
-              $elem167 = new \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription();
-              $xfer += $elem167->read($input);
-              $this->success []= $elem167;
+              $elem181 = null;
+              $elem181 = new \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription();
+              $xfer += $elem181->read($input);
+              $this->success []= $elem181;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -37639,9 +38561,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter168)
+          foreach ($this->success as $iter182)
           {
-            $xfer += $iter168->write($output);
+            $xfer += $iter182->write($output);
           }
         }
         $output->writeListEnd();
@@ -37877,15 +38799,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size169 = 0;
-            $_etype172 = 0;
-            $xfer += $input->readListBegin($_etype172, $_size169);
-            for ($_i173 = 0; $_i173 < $_size169; ++$_i173)
+            $_size183 = 0;
+            $_etype186 = 0;
+            $xfer += $input->readListBegin($_etype186, $_size183);
+            for ($_i187 = 0; $_i187 < $_size183; ++$_i187)
             {
-              $elem174 = null;
-              $elem174 = new \Airavata\Model\Application\Io\InputDataObjectType();
-              $xfer += $elem174->read($input);
-              $this->success []= $elem174;
+              $elem188 = null;
+              $elem188 = new \Airavata\Model\Application\Io\InputDataObjectType();
+              $xfer += $elem188->read($input);
+              $this->success []= $elem188;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -37945,9 +38867,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter175)
+          foreach ($this->success as $iter189)
           {
-            $xfer += $iter175->write($output);
+            $xfer += $iter189->write($output);
           }
         }
         $output->writeListEnd();
@@ -38183,15 +39105,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size176 = 0;
-            $_etype179 = 0;
-            $xfer += $input->readListBegin($_etype179, $_size176);
-            for ($_i180 = 0; $_i180 < $_size176; ++$_i180)
+            $_size190 = 0;
+            $_etype193 = 0;
+            $xfer += $input->readListBegin($_etype193, $_size190);
+            for ($_i194 = 0; $_i194 < $_size190; ++$_i194)
             {
-              $elem181 = null;
-              $elem181 = new \Airavata\Model\Application\Io\OutputDataObjectType();
-              $xfer += $elem181->read($input);
-              $this->success []= $elem181;
+              $elem195 = null;
+              $elem195 = new \Airavata\Model\Application\Io\OutputDataObjectType();
+              $xfer += $elem195->read($input);
+              $this->success []= $elem195;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -38251,9 +39173,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter182)
+          foreach ($this->success as $iter196)
           {
-            $xfer += $iter182->write($output);
+            $xfer += $iter196->write($output);
           }
         }
         $output->writeListEnd();
@@ -38492,17 +39414,17 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size183 = 0;
-            $_ktype184 = 0;
-            $_vtype185 = 0;
-            $xfer += $input->readMapBegin($_ktype184, $_vtype185, $_size183);
-            for ($_i187 = 0; $_i187 < $_size183; ++$_i187)
+            $_size197 = 0;
+            $_ktype198 = 0;
+            $_vtype199 = 0;
+            $xfer += $input->readMapBegin($_ktype198, $_vtype199, $_size197);
+            for ($_i201 = 0; $_i201 < $_size197; ++$_i201)
             {
-              $key188 = '';
-              $val189 = '';
-              $xfer += $input->readString($key188);
-              $xfer += $input->readString($val189);
-              $this->success[$key188] = $val189;
+              $key202 = '';
+              $val203 = '';
+              $xfer += $input->readString($key202);
+              $xfer += $input->readString($val203);
+              $this->success[$key202] = $val203;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -38562,10 +39484,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
         {
-          foreach ($this->success as $kiter190 => $viter191)
+          foreach ($this->success as $kiter204 => $viter205)
           {
-            $xfer += $output->writeString($kiter190);
-            $xfer += $output->writeString($viter191);
+            $xfer += $output->writeString($kiter204);
+            $xfer += $output->writeString($viter205);
           }
         }
         $output->writeMapEnd();
@@ -39347,17 +40269,17 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size192 = 0;
-            $_ktype193 = 0;
-            $_vtype194 = 0;
-            $xfer += $input->readMapBegin($_ktype193, $_vtype194, $_size192);
-            for ($_i196 = 0; $_i196 < $_size192; ++$_i196)
+            $_size206 = 0;
+            $_ktype207 = 0;
+            $_vtype208 = 0;
+            $xfer += $input->readMapBegin($_ktype207, $_vtype208, $_size206);
+            for ($_i210 = 0; $_i210 < $_size206; ++$_i210)
             {
-              $key197 = '';
-              $val198 = '';
-              $xfer += $input->readString($key197);
-              $xfer += $input->readString($val198);
-              $this->success[$key197] = $val198;
+              $key211 = '';
+              $val212 = '';
+              $xfer += $input->readString($key211);
+              $xfer += $input->readString($val212);
+              $this->success[$key211] = $val212;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -39417,10 +40339,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
         {
-          foreach ($this->success as $kiter199 => $viter200)
+          foreach ($this->success as $kiter213 => $viter214)
           {
-            $xfer += $output->writeString($kiter199);
-            $xfer += $output->writeString($viter200);
+            $xfer += $output->writeString($kiter213);
+            $xfer += $output->writeString($viter214);
           }
         }
         $output->writeMapEnd();
@@ -40786,17 +41708,17 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size201 = 0;
-            $_ktype202 = 0;
-            $_vtype203 = 0;
-            $xfer += $input->readMapBegin($_ktype202, $_vtype203, $_size201);
-            for ($_i205 = 0; $_i205 < $_size201; ++$_i205)
+            $_size215 = 0;
+            $_ktype216 = 0;
+            $_vtype217 = 0;
+            $xfer += $input->readMapBegin($_ktype216, $_vtype217, $_size215);
+            for ($_i219 = 0; $_i219 < $_size215; ++$_i219)
             {
-              $key206 = '';
-              $val207 = '';
-              $xfer += $input->readString($key206);
-              $xfer += $input->readString($val207);
-              $this->success[$key206] = $val207;
+              $key220 = '';
+              $val221 = '';
+              $xfer += $input->readString($key220);
+              $xfer += $input->readString($val221);
+              $this->success[$key220] = $val221;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -40856,10 +41778,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
         {
-          foreach ($this->success as $kiter208 => $viter209)
+          foreach ($this->success as $kiter222 => $viter223)
           {
-            $xfer += $output->writeString($kiter208);
-            $xfer += $output->writeString($viter209);
+            $xfer += $output->writeString($kiter222);
+            $xfer += $output->writeString($viter223);
           }
         }
         $output->writeMapEnd();
@@ -49918,17 +50840,17 @@
         case 2:
           if ($ftype == TType::MAP) {
             $this->jobSubmissionPriorityMap = array();
-            $_size210 = 0;
-            $_ktype211 = 0;
-            $_vtype212 = 0;
-            $xfer += $input->readMapBegin($_ktype211, $_vtype212, $_size210);
-            for ($_i214 = 0; $_i214 < $_size210; ++$_i214)
+            $_size224 = 0;
+            $_ktype225 = 0;
+            $_vtype226 = 0;
+            $xfer += $input->readMapBegin($_ktype225, $_vtype226, $_size224);
+            for ($_i228 = 0; $_i228 < $_size224; ++$_i228)
             {
-              $key215 = '';
-              $val216 = 0;
-              $xfer += $input->readString($key215);
-              $xfer += $input->readI32($val216);
-              $this->jobSubmissionPriorityMap[$key215] = $val216;
+              $key229 = '';
+              $val230 = 0;
+              $xfer += $input->readString($key229);
+              $xfer += $input->readI32($val230);
+              $this->jobSubmissionPriorityMap[$key229] = $val230;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -49964,10 +50886,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->jobSubmissionPriorityMap));
         {
-          foreach ($this->jobSubmissionPriorityMap as $kiter217 => $viter218)
+          foreach ($this->jobSubmissionPriorityMap as $kiter231 => $viter232)
           {
-            $xfer += $output->writeString($kiter217);
-            $xfer += $output->writeI32($viter218);
+            $xfer += $output->writeString($kiter231);
+            $xfer += $output->writeI32($viter232);
           }
         }
         $output->writeMapEnd();
@@ -50230,17 +51152,17 @@
         case 2:
           if ($ftype == TType::MAP) {
             $this->dataMovementPriorityMap = array();
-            $_size219 = 0;
-            $_ktype220 = 0;
-            $_vtype221 = 0;
-            $xfer += $input->readMapBegin($_ktype220, $_vtype221, $_size219);
-            for ($_i223 = 0; $_i223 < $_size219; ++$_i223)
+            $_size233 = 0;
+            $_ktype234 = 0;
+            $_vtype235 = 0;
+            $xfer += $input->readMapBegin($_ktype234, $_vtype235, $_size233);
+            for ($_i237 = 0; $_i237 < $_size233; ++$_i237)
             {
-              $key224 = '';
-              $val225 = 0;
-              $xfer += $input->readString($key224);
-              $xfer += $input->readI32($val225);
-              $this->dataMovementPriorityMap[$key224] = $val225;
+              $key238 = '';
+              $val239 = 0;
+              $xfer += $input->readString($key238);
+              $xfer += $input->readI32($val239);
+              $this->dataMovementPriorityMap[$key238] = $val239;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -50276,10 +51198,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->dataMovementPriorityMap));
         {
-          foreach ($this->dataMovementPriorityMap as $kiter226 => $viter227)
+          foreach ($this->dataMovementPriorityMap as $kiter240 => $viter241)
           {
-            $xfer += $output->writeString($kiter226);
-            $xfer += $output->writeI32($viter227);
+            $xfer += $output->writeString($kiter240);
+            $xfer += $output->writeI32($viter241);
           }
         }
         $output->writeMapEnd();
@@ -55166,15 +56088,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size228 = 0;
-            $_etype231 = 0;
-            $xfer += $input->readListBegin($_etype231, $_size228);
-            for ($_i232 = 0; $_i232 < $_size228; ++$_i232)
+            $_size242 = 0;
+            $_etype245 = 0;
+            $xfer += $input->readListBegin($_etype245, $_size242);
+            for ($_i246 = 0; $_i246 < $_size242; ++$_i246)
             {
-              $elem233 = null;
-              $elem233 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
-              $xfer += $elem233->read($input);
-              $this->success []= $elem233;
+              $elem247 = null;
+              $elem247 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
+              $xfer += $elem247->read($input);
+              $this->success []= $elem247;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -55234,9 +56156,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter234)
+          foreach ($this->success as $iter248)
           {
-            $xfer += $iter234->write($output);
+            $xfer += $iter248->write($output);
           }
         }
         $output->writeListEnd();
@@ -55472,15 +56394,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size235 = 0;
-            $_etype238 = 0;
-            $xfer += $input->readListBegin($_etype238, $_size235);
-            for ($_i239 = 0; $_i239 < $_size235; ++$_i239)
+            $_size249 = 0;
+            $_etype252 = 0;
+            $xfer += $input->readListBegin($_etype252, $_size249);
+            for ($_i253 = 0; $_i253 < $_size249; ++$_i253)
             {
-              $elem240 = null;
-              $elem240 = new \Airavata\Model\AppCatalog\GatewayProfile\StoragePreference();
-              $xfer += $elem240->read($input);
-              $this->success []= $elem240;
+              $elem254 = null;
+              $elem254 = new \Airavata\Model\AppCatalog\GatewayProfile\StoragePreference();
+              $xfer += $elem254->read($input);
+              $this->success []= $elem254;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -55540,9 +56462,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter241)
+          foreach ($this->success as $iter255)
           {
-            $xfer += $iter241->write($output);
+            $xfer += $iter255->write($output);
           }
         }
         $output->writeListEnd();
@@ -55755,15 +56677,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size242 = 0;
-            $_etype245 = 0;
-            $xfer += $input->readListBegin($_etype245, $_size242);
-            for ($_i246 = 0; $_i246 < $_size242; ++$_i246)
+            $_size256 = 0;
+            $_etype259 = 0;
+            $xfer += $input->readListBegin($_etype259, $_size256);
+            for ($_i260 = 0; $_i260 < $_size256; ++$_i260)
             {
-              $elem247 = null;
-              $elem247 = new \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile();
-              $xfer += $elem247->read($input);
-              $this->success []= $elem247;
+              $elem261 = null;
+              $elem261 = new \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile();
+              $xfer += $elem261->read($input);
+              $this->success []= $elem261;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -55823,9 +56745,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter248)
+          foreach ($this->success as $iter262)
           {
-            $xfer += $iter248->write($output);
+            $xfer += $iter262->write($output);
           }
         }
         $output->writeListEnd();
@@ -57298,15 +58220,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size249 = 0;
-            $_etype252 = 0;
-            $xfer += $input->readListBegin($_etype252, $_size249);
-            for ($_i253 = 0; $_i253 < $_size249; ++$_i253)
+            $_size263 = 0;
+            $_etype266 = 0;
+            $xfer += $input->readListBegin($_etype266, $_size263);
+            for ($_i267 = 0; $_i267 < $_size263; ++$_i267)
             {
-              $elem254 = null;
-              $elem254 = new \Airavata\Model\AppCatalog\AccountProvisioning\SSHAccountProvisioner();
-              $xfer += $elem254->read($input);
-              $this->success []= $elem254;
+              $elem268 = null;
+              $elem268 = new \Airavata\Model\AppCatalog\AccountProvisioning\SSHAccountProvisioner();
+              $xfer += $elem268->read($input);
+              $this->success []= $elem268;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -57366,9 +58288,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter255)
+          foreach ($this->success as $iter269)
           {
-            $xfer += $iter255->write($output);
+            $xfer += $iter269->write($output);
           }
         }
         $output->writeListEnd();
@@ -61440,15 +62362,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size256 = 0;
-            $_etype259 = 0;
-            $xfer += $input->readListBegin($_etype259, $_size256);
-            for ($_i260 = 0; $_i260 < $_size256; ++$_i260)
+            $_size270 = 0;
+            $_etype273 = 0;
+            $xfer += $input->readListBegin($_etype273, $_size270);
+            for ($_i274 = 0; $_i274 < $_size270; ++$_i274)
             {
-              $elem261 = null;
-              $elem261 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserComputeResourcePreference();
-              $xfer += $elem261->read($input);
-              $this->success []= $elem261;
+              $elem275 = null;
+              $elem275 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserComputeResourcePreference();
+              $xfer += $elem275->read($input);
+              $this->success []= $elem275;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -61508,9 +62430,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter262)
+          foreach ($this->success as $iter276)
           {
-            $xfer += $iter262->write($output);
+            $xfer += $iter276->write($output);
           }
         }
         $output->writeListEnd();
@@ -61769,15 +62691,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size263 = 0;
-            $_etype266 = 0;
-            $xfer += $input->readListBegin($_etype266, $_size263);
-            for ($_i267 = 0; $_i267 < $_size263; ++$_i267)
+            $_size277 = 0;
+            $_etype280 = 0;
+            $xfer += $input->readListBegin($_etype280, $_size277);
+            for ($_i281 = 0; $_i281 < $_size277; ++$_i281)
             {
-              $elem268 = null;
-              $elem268 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserStoragePreference();
-              $xfer += $elem268->read($input);
-              $this->success []= $elem268;
+              $elem282 = null;
+              $elem282 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserStoragePreference();
+              $xfer += $elem282->read($input);
+              $this->success []= $elem282;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -61837,9 +62759,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter269)
+          foreach ($this->success as $iter283)
           {
-            $xfer += $iter269->write($output);
+            $xfer += $iter283->write($output);
           }
         }
         $output->writeListEnd();
@@ -62052,15 +62974,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size270 = 0;
-            $_etype273 = 0;
-            $xfer += $input->readListBegin($_etype273, $_size270);
-            for ($_i274 = 0; $_i274 < $_size270; ++$_i274)
+            $_size284 = 0;
+            $_etype287 = 0;
+            $xfer += $input->readListBegin($_etype287, $_size284);
+            for ($_i288 = 0; $_i288 < $_size284; ++$_i288)
             {
-              $elem275 = null;
-              $elem275 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile();
-              $xfer += $elem275->read($input);
-              $this->success []= $elem275;
+              $elem289 = null;
+              $elem289 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile();
+              $xfer += $elem289->read($input);
+              $this->success []= $elem289;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -62120,9 +63042,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter276)
+          foreach ($this->success as $iter290)
           {
-            $xfer += $iter276->write($output);
+            $xfer += $iter290->write($output);
           }
         }
         $output->writeListEnd();
@@ -63687,15 +64609,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size277 = 0;
-            $_etype280 = 0;
-            $xfer += $input->readListBegin($_etype280, $_size277);
-            for ($_i281 = 0; $_i281 < $_size277; ++$_i281)
+            $_size291 = 0;
+            $_etype294 = 0;
+            $xfer += $input->readListBegin($_etype294, $_size291);
+            for ($_i295 = 0; $_i295 < $_size291; ++$_i295)
             {
-              $elem282 = null;
-              $elem282 = new \Airavata\Model\Status\QueueStatusModel();
-              $xfer += $elem282->read($input);
-              $this->success []= $elem282;
+              $elem296 = null;
+              $elem296 = new \Airavata\Model\Status\QueueStatusModel();
+              $xfer += $elem296->read($input);
+              $this->success []= $elem296;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -63755,9 +64677,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter283)
+          foreach ($this->success as $iter297)
           {
-            $xfer += $iter283->write($output);
+            $xfer += $iter297->write($output);
           }
         }
         $output->writeListEnd();
@@ -65125,15 +66047,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size284 = 0;
-            $_etype287 = 0;
-            $xfer += $input->readListBegin($_etype287, $_size284);
-            for ($_i288 = 0; $_i288 < $_size284; ++$_i288)
+            $_size298 = 0;
+            $_etype301 = 0;
+            $xfer += $input->readListBegin($_etype301, $_size298);
+            for ($_i302 = 0; $_i302 < $_size298; ++$_i302)
             {
-              $elem289 = null;
-              $elem289 = new \Airavata\Model\Data\Replica\DataProductModel();
-              $xfer += $elem289->read($input);
-              $this->success []= $elem289;
+              $elem303 = null;
+              $elem303 = new \Airavata\Model\Data\Replica\DataProductModel();
+              $xfer += $elem303->read($input);
+              $this->success []= $elem303;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -65193,9 +66115,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter290)
+          foreach ($this->success as $iter304)
           {
-            $xfer += $iter290->write($output);
+            $xfer += $iter304->write($output);
           }
         }
         $output->writeListEnd();
@@ -65321,17 +66243,17 @@
         case 4:
           if ($ftype == TType::MAP) {
             $this->userPermissionList = array();
-            $_size291 = 0;
-            $_ktype292 = 0;
-            $_vtype293 = 0;
-            $xfer += $input->readMapBegin($_ktype292, $_vtype293, $_size291);
-            for ($_i295 = 0; $_i295 < $_size291; ++$_i295)
+            $_size305 = 0;
+            $_ktype306 = 0;
+            $_vtype307 = 0;
+            $xfer += $input->readMapBegin($_ktype306, $_vtype307, $_size305);
+            for ($_i309 = 0; $_i309 < $_size305; ++$_i309)
             {
-              $key296 = '';
-              $val297 = 0;
-              $xfer += $input->readString($key296);
-              $xfer += $input->readI32($val297);
-              $this->userPermissionList[$key296] = $val297;
+              $key310 = '';
+              $val311 = 0;
+              $xfer += $input->readString($key310);
+              $xfer += $input->readI32($val311);
+              $this->userPermissionList[$key310] = $val311;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -65372,10 +66294,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->userPermissionList));
         {
-          foreach ($this->userPermissionList as $kiter298 => $viter299)
+          foreach ($this->userPermissionList as $kiter312 => $viter313)
           {
-            $xfer += $output->writeString($kiter298);
-            $xfer += $output->writeI32($viter299);
+            $xfer += $output->writeString($kiter312);
+            $xfer += $output->writeI32($viter313);
           }
         }
         $output->writeMapEnd();
@@ -65656,17 +66578,17 @@
         case 4:
           if ($ftype == TType::MAP) {
             $this->groupPermissionList = array();
-            $_size300 = 0;
-            $_ktype301 = 0;
-            $_vtype302 = 0;
-            $xfer += $input->readMapBegin($_ktype301, $_vtype302, $_size300);
-            for ($_i304 = 0; $_i304 < $_size300; ++$_i304)
+            $_size314 = 0;
+            $_ktype315 = 0;
+            $_vtype316 = 0;
+            $xfer += $input->readMapBegin($_ktype315, $_vtype316, $_size314);
+            for ($_i318 = 0; $_i318 < $_size314; ++$_i318)
             {
-              $key305 = '';
-              $val306 = 0;
-              $xfer += $input->readString($key305);
-              $xfer += $input->readI32($val306);
-              $this->groupPermissionList[$key305] = $val306;
+              $key319 = '';
+              $val320 = 0;
+              $xfer += $input->readString($key319);
+              $xfer += $input->readI32($val320);
+              $this->groupPermissionList[$key319] = $val320;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -65707,10 +66629,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->groupPermissionList));
         {
-          foreach ($this->groupPermissionList as $kiter307 => $viter308)
+          foreach ($this->groupPermissionList as $kiter321 => $viter322)
           {
-            $xfer += $output->writeString($kiter307);
-            $xfer += $output->writeI32($viter308);
+            $xfer += $output->writeString($kiter321);
+            $xfer += $output->writeI32($viter322);
           }
         }
         $output->writeMapEnd();
@@ -65991,17 +66913,17 @@
         case 4:
           if ($ftype == TType::MAP) {
             $this->userPermissionList = array();
-            $_size309 = 0;
-            $_ktype310 = 0;
-            $_vtype311 = 0;
-            $xfer += $input->readMapBegin($_ktype310, $_vtype311, $_size309);
-            for ($_i313 = 0; $_i313 < $_size309; ++$_i313)
+            $_size323 = 0;
+            $_ktype324 = 0;
+            $_vtype325 = 0;
+            $xfer += $input->readMapBegin($_ktype324, $_vtype325, $_size323);
+            for ($_i327 = 0; $_i327 < $_size323; ++$_i327)
             {
-              $key314 = '';
-              $val315 = 0;
-              $xfer += $input->readString($key314);
-              $xfer += $input->readI32($val315);
-              $this->userPermissionList[$key314] = $val315;
+              $key328 = '';
+              $val329 = 0;
+              $xfer += $input->readString($key328);
+              $xfer += $input->readI32($val329);
+              $this->userPermissionList[$key328] = $val329;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -66042,10 +66964,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->userPermissionList));
         {
-          foreach ($this->userPermissionList as $kiter316 => $viter317)
+          foreach ($this->userPermissionList as $kiter330 => $viter331)
           {
-            $xfer += $output->writeString($kiter316);
-            $xfer += $output->writeI32($viter317);
+            $xfer += $output->writeString($kiter330);
+            $xfer += $output->writeI32($viter331);
           }
         }
         $output->writeMapEnd();
@@ -66326,17 +67248,17 @@
         case 4:
           if ($ftype == TType::MAP) {
             $this->groupPermissionList = array();
-            $_size318 = 0;
-            $_ktype319 = 0;
-            $_vtype320 = 0;
-            $xfer += $input->readMapBegin($_ktype319, $_vtype320, $_size318);
-            for ($_i322 = 0; $_i322 < $_size318; ++$_i322)
+            $_size332 = 0;
+            $_ktype333 = 0;
+            $_vtype334 = 0;
+            $xfer += $input->readMapBegin($_ktype333, $_vtype334, $_size332);
+            for ($_i336 = 0; $_i336 < $_size332; ++$_i336)
             {
-              $key323 = '';
-              $val324 = 0;
-              $xfer += $input->readString($key323);
-              $xfer += $input->readI32($val324);
-              $this->groupPermissionList[$key323] = $val324;
+              $key337 = '';
+              $val338 = 0;
+              $xfer += $input->readString($key337);
+              $xfer += $input->readI32($val338);
+              $this->groupPermissionList[$key337] = $val338;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -66377,10 +67299,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->groupPermissionList));
         {
-          foreach ($this->groupPermissionList as $kiter325 => $viter326)
+          foreach ($this->groupPermissionList as $kiter339 => $viter340)
           {
-            $xfer += $output->writeString($kiter325);
-            $xfer += $output->writeI32($viter326);
+            $xfer += $output->writeString($kiter339);
+            $xfer += $output->writeI32($viter340);
           }
         }
         $output->writeMapEnd();
@@ -66793,14 +67715,14 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size327 = 0;
-            $_etype330 = 0;
-            $xfer += $input->readListBegin($_etype330, $_size327);
-            for ($_i331 = 0; $_i331 < $_size327; ++$_i331)
+            $_size341 = 0;
+            $_etype344 = 0;
+            $xfer += $input->readListBegin($_etype344, $_size341);
+            for ($_i345 = 0; $_i345 < $_size341; ++$_i345)
             {
-              $elem332 = null;
-              $xfer += $input->readString($elem332);
-              $this->success []= $elem332;
+              $elem346 = null;
+              $xfer += $input->readString($elem346);
+              $this->success []= $elem346;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -66860,9 +67782,9 @@
       {
         $output->writeListBegin(TType::STRING, count($this->success));
         {
-          foreach ($this->success as $iter333)
+          foreach ($this->success as $iter347)
           {
-            $xfer += $output->writeString($iter333);
+            $xfer += $output->writeString($iter347);
           }
         }
         $output->writeListEnd();
@@ -67120,14 +68042,14 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size334 = 0;
-            $_etype337 = 0;
-            $xfer += $input->readListBegin($_etype337, $_size334);
-            for ($_i338 = 0; $_i338 < $_size334; ++$_i338)
+            $_size348 = 0;
+            $_etype351 = 0;
+            $xfer += $input->readListBegin($_etype351, $_size348);
+            for ($_i352 = 0; $_i352 < $_size348; ++$_i352)
             {
-              $elem339 = null;
-              $xfer += $input->readString($elem339);
-              $this->success []= $elem339;
+              $elem353 = null;
+              $xfer += $input->readString($elem353);
+              $this->success []= $elem353;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -67187,9 +68109,9 @@
       {
         $output->writeListBegin(TType::STRING, count($this->success));
         {
-          foreach ($this->success as $iter340)
+          foreach ($this->success as $iter354)
           {
-            $xfer += $output->writeString($iter340);
+            $xfer += $output->writeString($iter354);
           }
         }
         $output->writeListEnd();
@@ -67447,14 +68369,14 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size341 = 0;
-            $_etype344 = 0;
-            $xfer += $input->readListBegin($_etype344, $_size341);
-            for ($_i345 = 0; $_i345 < $_size341; ++$_i345)
+            $_size355 = 0;
+            $_etype358 = 0;
+            $xfer += $input->readListBegin($_etype358, $_size355);
+            for ($_i359 = 0; $_i359 < $_size355; ++$_i359)
             {
-              $elem346 = null;
-              $xfer += $input->readString($elem346);
-              $this->success []= $elem346;
+              $elem360 = null;
+              $xfer += $input->readString($elem360);
+              $this->success []= $elem360;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -67514,9 +68436,9 @@
       {
         $output->writeListBegin(TType::STRING, count($this->success));
         {
-          foreach ($this->success as $iter347)
+          foreach ($this->success as $iter361)
           {
-            $xfer += $output->writeString($iter347);
+            $xfer += $output->writeString($iter361);
           }
         }
         $output->writeListEnd();
@@ -67774,14 +68696,14 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size348 = 0;
-            $_etype351 = 0;
-            $xfer += $input->readListBegin($_etype351, $_size348);
-            for ($_i352 = 0; $_i352 < $_size348; ++$_i352)
+            $_size362 = 0;
+            $_etype365 = 0;
+            $xfer += $input->readListBegin($_etype365, $_size362);
+            for ($_i366 = 0; $_i366 < $_size362; ++$_i366)
             {
-              $elem353 = null;
-              $xfer += $input->readString($elem353);
-              $this->success []= $elem353;
+              $elem367 = null;
+              $xfer += $input->readString($elem367);
+              $this->success []= $elem367;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -67841,9 +68763,9 @@
       {
         $output->writeListBegin(TType::STRING, count($this->success));
         {
-          foreach ($this->success as $iter354)
+          foreach ($this->success as $iter368)
           {
-            $xfer += $output->writeString($iter354);
+            $xfer += $output->writeString($iter368);
           }
         }
         $output->writeListEnd();
@@ -69484,15 +70406,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size355 = 0;
-            $_etype358 = 0;
-            $xfer += $input->readListBegin($_etype358, $_size355);
-            for ($_i359 = 0; $_i359 < $_size355; ++$_i359)
+            $_size369 = 0;
+            $_etype372 = 0;
+            $xfer += $input->readListBegin($_etype372, $_size369);
+            for ($_i373 = 0; $_i373 < $_size369; ++$_i373)
             {
-              $elem360 = null;
-              $elem360 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupResourceProfile();
-              $xfer += $elem360->read($input);
-              $this->success []= $elem360;
+              $elem374 = null;
+              $elem374 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupResourceProfile();
+              $xfer += $elem374->read($input);
+              $this->success []= $elem374;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -69552,9 +70474,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter361)
+          foreach ($this->success as $iter375)
           {
-            $xfer += $iter361->write($output);
+            $xfer += $iter375->write($output);
           }
         }
         $output->writeListEnd();
@@ -71519,15 +72441,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size362 = 0;
-            $_etype365 = 0;
-            $xfer += $input->readListBegin($_etype365, $_size362);
-            for ($_i366 = 0; $_i366 < $_size362; ++$_i366)
+            $_size376 = 0;
+            $_etype379 = 0;
+            $xfer += $input->readListBegin($_etype379, $_size376);
+            for ($_i380 = 0; $_i380 < $_size376; ++$_i380)
             {
-              $elem367 = null;
-              $elem367 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupComputeResourcePreference();
-              $xfer += $elem367->read($input);
-              $this->success []= $elem367;
+              $elem381 = null;
+              $elem381 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupComputeResourcePreference();
+              $xfer += $elem381->read($input);
+              $this->success []= $elem381;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -71587,9 +72509,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter368)
+          foreach ($this->success as $iter382)
           {
-            $xfer += $iter368->write($output);
+            $xfer += $iter382->write($output);
           }
         }
         $output->writeListEnd();
@@ -71825,15 +72747,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size369 = 0;
-            $_etype372 = 0;
-            $xfer += $input->readListBegin($_etype372, $_size369);
-            for ($_i373 = 0; $_i373 < $_size369; ++$_i373)
+            $_size383 = 0;
+            $_etype386 = 0;
+            $xfer += $input->readListBegin($_etype386, $_size383);
+            for ($_i387 = 0; $_i387 < $_size383; ++$_i387)
             {
-              $elem374 = null;
-              $elem374 = new \Airavata\Model\AppCatalog\GroupResourceProfile\BatchQueueResourcePolicy();
-              $xfer += $elem374->read($input);
-              $this->success []= $elem374;
+              $elem388 = null;
+              $elem388 = new \Airavata\Model\AppCatalog\GroupResourceProfile\BatchQueueResourcePolicy();
+              $xfer += $elem388->read($input);
+              $this->success []= $elem388;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -71893,9 +72815,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter375)
+          foreach ($this->success as $iter389)
           {
-            $xfer += $iter375->write($output);
+            $xfer += $iter389->write($output);
           }
         }
         $output->writeListEnd();
@@ -72131,15 +73053,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size376 = 0;
-            $_etype379 = 0;
-            $xfer += $input->readListBegin($_etype379, $_size376);
-            for ($_i380 = 0; $_i380 < $_size376; ++$_i380)
+            $_size390 = 0;
+            $_etype393 = 0;
+            $xfer += $input->readListBegin($_etype393, $_size390);
+            for ($_i394 = 0; $_i394 < $_size390; ++$_i394)
             {
-              $elem381 = null;
-              $elem381 = new \Airavata\Model\AppCatalog\GroupResourceProfile\ComputeResourcePolicy();
-              $xfer += $elem381->read($input);
-              $this->success []= $elem381;
+              $elem395 = null;
+              $elem395 = new \Airavata\Model\AppCatalog\GroupResourceProfile\ComputeResourcePolicy();
+              $xfer += $elem395->read($input);
+              $this->success []= $elem395;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -72199,9 +73121,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter382)
+          foreach ($this->success as $iter396)
           {
-            $xfer += $iter382->write($output);
+            $xfer += $iter396->write($output);
           }
         }
         $output->writeListEnd();
@@ -73286,15 +74208,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size383 = 0;
-            $_etype386 = 0;
-            $xfer += $input->readListBegin($_etype386, $_size383);
-            for ($_i387 = 0; $_i387 < $_size383; ++$_i387)
+            $_size397 = 0;
+            $_etype400 = 0;
+            $xfer += $input->readListBegin($_etype400, $_size397);
+            for ($_i401 = 0; $_i401 < $_size397; ++$_i401)
             {
-              $elem388 = null;
-              $elem388 = new \Airavata\Model\AppCatalog\Parser\Parser();
-              $xfer += $elem388->read($input);
-              $this->success []= $elem388;
+              $elem402 = null;
+              $elem402 = new \Airavata\Model\AppCatalog\Parser\Parser();
+              $xfer += $elem402->read($input);
+              $this->success []= $elem402;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -73354,9 +74276,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter389)
+          foreach ($this->success as $iter403)
           {
-            $xfer += $iter389->write($output);
+            $xfer += $iter403->write($output);
           }
         }
         $output->writeListEnd();
@@ -74222,15 +75144,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size390 = 0;
-            $_etype393 = 0;
-            $xfer += $input->readListBegin($_etype393, $_size390);
-            for ($_i394 = 0; $_i394 < $_size390; ++$_i394)
+            $_size404 = 0;
+            $_etype407 = 0;
+            $xfer += $input->readListBegin($_etype407, $_size404);
+            for ($_i408 = 0; $_i408 < $_size404; ++$_i408)
             {
-              $elem395 = null;
-              $elem395 = new \Airavata\Model\AppCatalog\Parser\ParsingTemplate();
-              $xfer += $elem395->read($input);
-              $this->success []= $elem395;
+              $elem409 = null;
+              $elem409 = new \Airavata\Model\AppCatalog\Parser\ParsingTemplate();
+              $xfer += $elem409->read($input);
+              $this->success []= $elem409;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -74290,9 +75212,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter396)
+          foreach ($this->success as $iter410)
           {
-            $xfer += $iter396->write($output);
+            $xfer += $iter410->write($output);
           }
         }
         $output->writeListEnd();
@@ -75112,15 +76034,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size397 = 0;
-            $_etype400 = 0;
-            $xfer += $input->readListBegin($_etype400, $_size397);
-            for ($_i401 = 0; $_i401 < $_size397; ++$_i401)
+            $_size411 = 0;
+            $_etype414 = 0;
+            $xfer += $input->readListBegin($_etype414, $_size411);
+            for ($_i415 = 0; $_i415 < $_size411; ++$_i415)
             {
-              $elem402 = null;
-              $elem402 = new \Airavata\Model\AppCatalog\Parser\ParsingTemplate();
-              $xfer += $elem402->read($input);
-              $this->success []= $elem402;
+              $elem416 = null;
+              $elem416 = new \Airavata\Model\AppCatalog\Parser\ParsingTemplate();
+              $xfer += $elem416->read($input);
+              $this->success []= $elem416;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -75180,9 +76102,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter403)
+          foreach ($this->success as $iter417)
           {
-            $xfer += $iter403->write($output);
+            $xfer += $iter417->write($output);
           }
         }
         $output->writeListEnd();
diff --git a/app/libraries/Airavata/API/Sharing/SharingRegistryService.php b/app/libraries/Airavata/API/Sharing/SharingRegistryService.php
index 4038013..4b85f3d 100644
--- a/app/libraries/Airavata/API/Sharing/SharingRegistryService.php
+++ b/app/libraries/Airavata/API/Sharing/SharingRegistryService.php
@@ -62,6 +62,7 @@
    * <li>description : A short description for the domain</li>
    * <li>createdTime : Will be set by the system</li>
    * <li>updatedTime : Will be set by the system</li>
+   * <li>initialUserGroupId : New users will automatically be added to this group</li>
    * 
    * 
    * @throws \Airavata\Model\Sharing\SharingRegistryException
diff --git a/app/libraries/Airavata/Model/AppCatalog/ComputeResource/Types.php b/app/libraries/Airavata/Model/AppCatalog/ComputeResource/Types.php
index d42d05f..146c6ee 100644
--- a/app/libraries/Airavata/Model/AppCatalog/ComputeResource/Types.php
+++ b/app/libraries/Airavata/Model/AppCatalog/ComputeResource/Types.php
@@ -44,6 +44,7 @@
   const UGE = 4;
   const CLOUD = 5;
   const AIRAVATA_CUSTOM = 6;
+  const HTCONDOR = 7;
   static public $__names = array(
     0 => 'FORK',
     1 => 'PBS',
@@ -52,6 +53,7 @@
     4 => 'UGE',
     5 => 'CLOUD',
     6 => 'AIRAVATA_CUSTOM',
+    7 => 'HTCONDOR',
   );
 }
 
diff --git a/app/libraries/Airavata/Model/AppCatalog/GroupResourceProfile/Types.php b/app/libraries/Airavata/Model/AppCatalog/GroupResourceProfile/Types.php
index 50364a5..34b1077 100644
--- a/app/libraries/Airavata/Model/AppCatalog/GroupResourceProfile/Types.php
+++ b/app/libraries/Airavata/Model/AppCatalog/GroupResourceProfile/Types.php
@@ -161,6 +161,199 @@
 
 }
 
+class ComputeResourceReservation {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $reservationId = "DO_NOT_SET_AT_CLIENTS";
+  /**
+   * @var string
+   */
+  public $reservationName = null;
+  /**
+   * @var string[]
+   */
+  public $queueNames = null;
+  /**
+   * @var int
+   */
+  public $startTime = null;
+  /**
+   * @var int
+   */
+  public $endTime = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'reservationId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'reservationName',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'queueNames',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        4 => array(
+          'var' => 'startTime',
+          'type' => TType::I64,
+          ),
+        5 => array(
+          'var' => 'endTime',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['reservationId'])) {
+        $this->reservationId = $vals['reservationId'];
+      }
+      if (isset($vals['reservationName'])) {
+        $this->reservationName = $vals['reservationName'];
+      }
+      if (isset($vals['queueNames'])) {
+        $this->queueNames = $vals['queueNames'];
+      }
+      if (isset($vals['startTime'])) {
+        $this->startTime = $vals['startTime'];
+      }
+      if (isset($vals['endTime'])) {
+        $this->endTime = $vals['endTime'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ComputeResourceReservation';
+  }
+
+  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->reservationId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->reservationName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::LST) {
+            $this->queueNames = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $xfer += $input->readString($elem5);
+              $this->queueNames []= $elem5;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->startTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->endTime);
+          } 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('ComputeResourceReservation');
+    if ($this->reservationId !== null) {
+      $xfer += $output->writeFieldBegin('reservationId', TType::STRING, 1);
+      $xfer += $output->writeString($this->reservationId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->reservationName !== null) {
+      $xfer += $output->writeFieldBegin('reservationName', TType::STRING, 2);
+      $xfer += $output->writeString($this->reservationName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->queueNames !== null) {
+      if (!is_array($this->queueNames)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('queueNames', TType::LST, 3);
+      {
+        $output->writeListBegin(TType::STRING, count($this->queueNames));
+        {
+          foreach ($this->queueNames as $iter6)
+          {
+            $xfer += $output->writeString($iter6);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->startTime !== null) {
+      $xfer += $output->writeFieldBegin('startTime', TType::I64, 4);
+      $xfer += $output->writeI64($this->startTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->endTime !== null) {
+      $xfer += $output->writeFieldBegin('endTime', TType::I64, 5);
+      $xfer += $output->writeI64($this->endTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class GroupComputeResourcePreference {
   static $_TSPEC;
 
@@ -215,18 +408,6 @@
   /**
    * @var string
    */
-  public $reservation = null;
-  /**
-   * @var int
-   */
-  public $reservationStartTime = null;
-  /**
-   * @var int
-   */
-  public $reservationEndTime = null;
-  /**
-   * @var string
-   */
   public $sshAccountProvisioner = null;
   /**
    * @var \Airavata\Model\AppCatalog\GroupResourceProfile\GroupAccountSSHProvisionerConfig[]
@@ -236,6 +417,10 @@
    * @var string
    */
   public $sshAccountProvisionerAdditionalInfo = null;
+  /**
+   * @var \Airavata\Model\AppCatalog\GroupResourceProfile\ComputeResourceReservation[]
+   */
+  public $reservations = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -288,18 +473,6 @@
           'var' => 'qualityOfService',
           'type' => TType::STRING,
           ),
-        13 => array(
-          'var' => 'reservation',
-          'type' => TType::STRING,
-          ),
-        14 => array(
-          'var' => 'reservationStartTime',
-          'type' => TType::I64,
-          ),
-        15 => array(
-          'var' => 'reservationEndTime',
-          'type' => TType::I64,
-          ),
         16 => array(
           'var' => 'sshAccountProvisioner',
           'type' => TType::STRING,
@@ -317,6 +490,15 @@
           'var' => 'sshAccountProvisionerAdditionalInfo',
           'type' => TType::STRING,
           ),
+        19 => array(
+          'var' => 'reservations',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\AppCatalog\GroupResourceProfile\ComputeResourceReservation',
+            ),
+          ),
         );
     }
     if (is_array($vals)) {
@@ -356,15 +538,6 @@
       if (isset($vals['qualityOfService'])) {
         $this->qualityOfService = $vals['qualityOfService'];
       }
-      if (isset($vals['reservation'])) {
-        $this->reservation = $vals['reservation'];
-      }
-      if (isset($vals['reservationStartTime'])) {
-        $this->reservationStartTime = $vals['reservationStartTime'];
-      }
-      if (isset($vals['reservationEndTime'])) {
-        $this->reservationEndTime = $vals['reservationEndTime'];
-      }
       if (isset($vals['sshAccountProvisioner'])) {
         $this->sshAccountProvisioner = $vals['sshAccountProvisioner'];
       }
@@ -374,6 +547,9 @@
       if (isset($vals['sshAccountProvisionerAdditionalInfo'])) {
         $this->sshAccountProvisionerAdditionalInfo = $vals['sshAccountProvisionerAdditionalInfo'];
       }
+      if (isset($vals['reservations'])) {
+        $this->reservations = $vals['reservations'];
+      }
     }
   }
 
@@ -480,27 +656,6 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 13:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->reservation);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 14:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->reservationStartTime);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 15:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->reservationEndTime);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 16:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->sshAccountProvisioner);
@@ -511,15 +666,15 @@
         case 17:
           if ($ftype == TType::LST) {
             $this->groupSSHAccountProvisionerConfigs = array();
-            $_size0 = 0;
-            $_etype3 = 0;
-            $xfer += $input->readListBegin($_etype3, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            $_size7 = 0;
+            $_etype10 = 0;
+            $xfer += $input->readListBegin($_etype10, $_size7);
+            for ($_i11 = 0; $_i11 < $_size7; ++$_i11)
             {
-              $elem5 = null;
-              $elem5 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupAccountSSHProvisionerConfig();
-              $xfer += $elem5->read($input);
-              $this->groupSSHAccountProvisionerConfigs []= $elem5;
+              $elem12 = null;
+              $elem12 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupAccountSSHProvisionerConfig();
+              $xfer += $elem12->read($input);
+              $this->groupSSHAccountProvisionerConfigs []= $elem12;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -533,6 +688,24 @@
             $xfer += $input->skip($ftype);
           }
           break;
+        case 19:
+          if ($ftype == TType::LST) {
+            $this->reservations = array();
+            $_size13 = 0;
+            $_etype16 = 0;
+            $xfer += $input->readListBegin($_etype16, $_size13);
+            for ($_i17 = 0; $_i17 < $_size13; ++$_i17)
+            {
+              $elem18 = null;
+              $elem18 = new \Airavata\Model\AppCatalog\GroupResourceProfile\ComputeResourceReservation();
+              $xfer += $elem18->read($input);
+              $this->reservations []= $elem18;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -606,21 +779,6 @@
       $xfer += $output->writeString($this->qualityOfService);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->reservation !== null) {
-      $xfer += $output->writeFieldBegin('reservation', TType::STRING, 13);
-      $xfer += $output->writeString($this->reservation);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->reservationStartTime !== null) {
-      $xfer += $output->writeFieldBegin('reservationStartTime', TType::I64, 14);
-      $xfer += $output->writeI64($this->reservationStartTime);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->reservationEndTime !== null) {
-      $xfer += $output->writeFieldBegin('reservationEndTime', TType::I64, 15);
-      $xfer += $output->writeI64($this->reservationEndTime);
-      $xfer += $output->writeFieldEnd();
-    }
     if ($this->sshAccountProvisioner !== null) {
       $xfer += $output->writeFieldBegin('sshAccountProvisioner', TType::STRING, 16);
       $xfer += $output->writeString($this->sshAccountProvisioner);
@@ -634,9 +792,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->groupSSHAccountProvisionerConfigs));
         {
-          foreach ($this->groupSSHAccountProvisionerConfigs as $iter6)
+          foreach ($this->groupSSHAccountProvisionerConfigs as $iter19)
           {
-            $xfer += $iter6->write($output);
+            $xfer += $iter19->write($output);
           }
         }
         $output->writeListEnd();
@@ -648,6 +806,23 @@
       $xfer += $output->writeString($this->sshAccountProvisionerAdditionalInfo);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->reservations !== null) {
+      if (!is_array($this->reservations)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('reservations', TType::LST, 19);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->reservations));
+        {
+          foreach ($this->reservations as $iter20)
+          {
+            $xfer += $iter20->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -759,14 +934,14 @@
         case 4:
           if ($ftype == TType::LST) {
             $this->allowedBatchQueues = array();
-            $_size7 = 0;
-            $_etype10 = 0;
-            $xfer += $input->readListBegin($_etype10, $_size7);
-            for ($_i11 = 0; $_i11 < $_size7; ++$_i11)
+            $_size21 = 0;
+            $_etype24 = 0;
+            $xfer += $input->readListBegin($_etype24, $_size21);
+            for ($_i25 = 0; $_i25 < $_size21; ++$_i25)
             {
-              $elem12 = null;
-              $xfer += $input->readString($elem12);
-              $this->allowedBatchQueues []= $elem12;
+              $elem26 = null;
+              $xfer += $input->readString($elem26);
+              $this->allowedBatchQueues []= $elem26;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -809,9 +984,9 @@
       {
         $output->writeListBegin(TType::STRING, count($this->allowedBatchQueues));
         {
-          foreach ($this->allowedBatchQueues as $iter13)
+          foreach ($this->allowedBatchQueues as $iter27)
           {
-            $xfer += $output->writeString($iter13);
+            $xfer += $output->writeString($iter27);
           }
         }
         $output->writeListEnd();
@@ -1229,15 +1404,15 @@
         case 4:
           if ($ftype == TType::LST) {
             $this->computePreferences = array();
-            $_size14 = 0;
-            $_etype17 = 0;
-            $xfer += $input->readListBegin($_etype17, $_size14);
-            for ($_i18 = 0; $_i18 < $_size14; ++$_i18)
+            $_size28 = 0;
+            $_etype31 = 0;
+            $xfer += $input->readListBegin($_etype31, $_size28);
+            for ($_i32 = 0; $_i32 < $_size28; ++$_i32)
             {
-              $elem19 = null;
-              $elem19 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupComputeResourcePreference();
-              $xfer += $elem19->read($input);
-              $this->computePreferences []= $elem19;
+              $elem33 = null;
+              $elem33 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupComputeResourcePreference();
+              $xfer += $elem33->read($input);
+              $this->computePreferences []= $elem33;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1247,15 +1422,15 @@
         case 5:
           if ($ftype == TType::LST) {
             $this->computeResourcePolicies = array();
-            $_size20 = 0;
-            $_etype23 = 0;
-            $xfer += $input->readListBegin($_etype23, $_size20);
-            for ($_i24 = 0; $_i24 < $_size20; ++$_i24)
+            $_size34 = 0;
+            $_etype37 = 0;
+            $xfer += $input->readListBegin($_etype37, $_size34);
+            for ($_i38 = 0; $_i38 < $_size34; ++$_i38)
             {
-              $elem25 = null;
-              $elem25 = new \Airavata\Model\AppCatalog\GroupResourceProfile\ComputeResourcePolicy();
-              $xfer += $elem25->read($input);
-              $this->computeResourcePolicies []= $elem25;
+              $elem39 = null;
+              $elem39 = new \Airavata\Model\AppCatalog\GroupResourceProfile\ComputeResourcePolicy();
+              $xfer += $elem39->read($input);
+              $this->computeResourcePolicies []= $elem39;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1265,15 +1440,15 @@
         case 6:
           if ($ftype == TType::LST) {
             $this->batchQueueResourcePolicies = array();
-            $_size26 = 0;
-            $_etype29 = 0;
-            $xfer += $input->readListBegin($_etype29, $_size26);
-            for ($_i30 = 0; $_i30 < $_size26; ++$_i30)
+            $_size40 = 0;
+            $_etype43 = 0;
+            $xfer += $input->readListBegin($_etype43, $_size40);
+            for ($_i44 = 0; $_i44 < $_size40; ++$_i44)
             {
-              $elem31 = null;
-              $elem31 = new \Airavata\Model\AppCatalog\GroupResourceProfile\BatchQueueResourcePolicy();
-              $xfer += $elem31->read($input);
-              $this->batchQueueResourcePolicies []= $elem31;
+              $elem45 = null;
+              $elem45 = new \Airavata\Model\AppCatalog\GroupResourceProfile\BatchQueueResourcePolicy();
+              $xfer += $elem45->read($input);
+              $this->batchQueueResourcePolicies []= $elem45;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1337,9 +1512,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->computePreferences));
         {
-          foreach ($this->computePreferences as $iter32)
+          foreach ($this->computePreferences as $iter46)
           {
-            $xfer += $iter32->write($output);
+            $xfer += $iter46->write($output);
           }
         }
         $output->writeListEnd();
@@ -1354,9 +1529,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->computeResourcePolicies));
         {
-          foreach ($this->computeResourcePolicies as $iter33)
+          foreach ($this->computeResourcePolicies as $iter47)
           {
-            $xfer += $iter33->write($output);
+            $xfer += $iter47->write($output);
           }
         }
         $output->writeListEnd();
@@ -1371,9 +1546,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->batchQueueResourcePolicies));
         {
-          foreach ($this->batchQueueResourcePolicies as $iter34)
+          foreach ($this->batchQueueResourcePolicies as $iter48)
           {
-            $xfer += $iter34->write($output);
+            $xfer += $iter48->write($output);
           }
         }
         $output->writeListEnd();
diff --git a/app/libraries/Airavata/Model/Application/Io/Types.php b/app/libraries/Airavata/Model/Application/Io/Types.php
index fb4977e..9543c61 100644
--- a/app/libraries/Airavata/Model/Application/Io/Types.php
+++ b/app/libraries/Airavata/Model/Application/Io/Types.php
@@ -65,6 +65,8 @@
  * metaData:
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
+ * overrideFilename:
+ *   Rename input file to given value when staging to compute resource.
  */
 class InputDataObjectType {
   static $_TSPEC;
@@ -121,6 +123,10 @@
    * @var bool
    */
   public $isReadOnly = null;
+  /**
+   * @var string
+   */
+  public $overrideFilename = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -177,6 +183,10 @@
           'var' => 'isReadOnly',
           'type' => TType::BOOL,
           ),
+        14 => array(
+          'var' => 'overrideFilename',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -219,6 +229,9 @@
       if (isset($vals['isReadOnly'])) {
         $this->isReadOnly = $vals['isReadOnly'];
       }
+      if (isset($vals['overrideFilename'])) {
+        $this->overrideFilename = $vals['overrideFilename'];
+      }
     }
   }
 
@@ -332,6 +345,13 @@
             $xfer += $input->skip($ftype);
           }
           break;
+        case 14:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->overrideFilename);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -410,6 +430,11 @@
       $xfer += $output->writeBool($this->isReadOnly);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->overrideFilename !== null) {
+      $xfer += $output->writeFieldBegin('overrideFilename', TType::STRING, 14);
+      $xfer += $output->writeString($this->overrideFilename);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
diff --git a/app/libraries/Airavata/Model/Group/Types.php b/app/libraries/Airavata/Model/Group/Types.php
index 9e17f8a..f74a97f 100644
--- a/app/libraries/Airavata/Model/Group/Types.php
+++ b/app/libraries/Airavata/Model/Group/Types.php
@@ -40,10 +40,12 @@
   const WRITE = 0;
   const READ = 1;
   const OWNER = 2;
+  const MANAGE_SHARING = 3;
   static public $__names = array(
     0 => 'WRITE',
     1 => 'READ',
     2 => 'OWNER',
+    3 => 'MANAGE_SHARING',
   );
 }
 
diff --git a/app/libraries/Airavata/Model/Messaging/Event/Types.php b/app/libraries/Airavata/Model/Messaging/Event/Types.php
index cb6df57..031bd90 100644
--- a/app/libraries/Airavata/Model/Messaging/Event/Types.php
+++ b/app/libraries/Airavata/Model/Messaging/Event/Types.php
@@ -40,6 +40,7 @@
   const TERMINATEPROCESS = 6;
   const PROCESSOUTPUT = 7;
   const DB_EVENT = 8;
+  const INTERMEDIATE_OUTPUTS = 9;
   static public $__names = array(
     0 => 'EXPERIMENT',
     1 => 'EXPERIMENT_CANCEL',
@@ -50,6 +51,7 @@
     6 => 'TERMINATEPROCESS',
     7 => 'PROCESSOUTPUT',
     8 => 'DB_EVENT',
+    9 => 'INTERMEDIATE_OUTPUTS',
   );
 }
 
@@ -1718,6 +1720,153 @@
 
 }
 
+class ExperimentIntermediateOutputsEvent {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $experimentId = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string[]
+   */
+  public $outputNames = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'experimentId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'outputNames',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['experimentId'])) {
+        $this->experimentId = $vals['experimentId'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['outputNames'])) {
+        $this->outputNames = $vals['outputNames'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ExperimentIntermediateOutputsEvent';
+  }
+
+  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->experimentId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::LST) {
+            $this->outputNames = array();
+            $_size7 = 0;
+            $_etype10 = 0;
+            $xfer += $input->readListBegin($_etype10, $_size7);
+            for ($_i11 = 0; $_i11 < $_size7; ++$_i11)
+            {
+              $elem12 = null;
+              $xfer += $input->readString($elem12);
+              $this->outputNames []= $elem12;
+            }
+            $xfer += $input->readListEnd();
+          } 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('ExperimentIntermediateOutputsEvent');
+    if ($this->experimentId !== null) {
+      $xfer += $output->writeFieldBegin('experimentId', TType::STRING, 1);
+      $xfer += $output->writeString($this->experimentId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->outputNames !== null) {
+      if (!is_array($this->outputNames)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('outputNames', TType::LST, 3);
+      {
+        $output->writeListBegin(TType::STRING, count($this->outputNames));
+        {
+          foreach ($this->outputNames as $iter13)
+          {
+            $xfer += $output->writeString($iter13);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class Message {
   static $_TSPEC;
 
diff --git a/app/libraries/Airavata/Model/Sharing/Types.php b/app/libraries/Airavata/Model/Sharing/Types.php
index 7a74f6d..d5dd2d3 100644
--- a/app/libraries/Airavata/Model/Sharing/Types.php
+++ b/app/libraries/Airavata/Model/Sharing/Types.php
@@ -144,6 +144,7 @@
  * <li>description : A short description for the domain</li>
  * <li>createdTime : Will be set by the system</li>
  * <li>updatedTime : Will be set by the system</li>
+ * <li>initialUserGroupId : New users will automatically be added to this group</li>
  * 
  */
 class Domain {
@@ -169,6 +170,10 @@
    * @var int
    */
   public $updatedTime = null;
+  /**
+   * @var string
+   */
+  public $initialUserGroupId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -193,6 +198,10 @@
           'var' => 'updatedTime',
           'type' => TType::I64,
           ),
+        6 => array(
+          'var' => 'initialUserGroupId',
+          'type' => TType::STRING,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -211,6 +220,9 @@
       if (isset($vals['updatedTime'])) {
         $this->updatedTime = $vals['updatedTime'];
       }
+      if (isset($vals['initialUserGroupId'])) {
+        $this->initialUserGroupId = $vals['initialUserGroupId'];
+      }
     }
   }
 
@@ -268,6 +280,13 @@
             $xfer += $input->skip($ftype);
           }
           break;
+        case 6:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->initialUserGroupId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -306,6 +325,11 @@
       $xfer += $output->writeI64($this->updatedTime);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->initialUserGroupId !== null) {
+      $xfer += $output->writeFieldBegin('initialUserGroupId', TType::STRING, 6);
+      $xfer += $output->writeString($this->initialUserGroupId);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
diff --git a/app/libraries/Airavata/Model/Workspace/Types.php b/app/libraries/Airavata/Model/Workspace/Types.php
index 8a2f3cb..8386b39 100644
--- a/app/libraries/Airavata/Model/Workspace/Types.php
+++ b/app/libraries/Airavata/Model/Workspace/Types.php
@@ -1137,6 +1137,127 @@
 
 }
 
+class GatewayUsageReportingCommand {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $computeResourceId = null;
+  /**
+   * @var string
+   */
+  public $command = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'computeResourceId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'command',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['computeResourceId'])) {
+        $this->computeResourceId = $vals['computeResourceId'];
+      }
+      if (isset($vals['command'])) {
+        $this->command = $vals['command'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'GatewayUsageReportingCommand';
+  }
+
+  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->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->computeResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->command);
+          } 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('GatewayUsageReportingCommand');
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 1);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->computeResourceId !== null) {
+      $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 2);
+      $xfer += $output->writeString($this->computeResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->command !== null) {
+      $xfer += $output->writeFieldBegin('command', TType::STRING, 3);
+      $xfer += $output->writeString($this->command);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class Notification {
   static $_TSPEC;