You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2015/07/09 22:39:13 UTC

[1/3] airavata-php-gateway git commit: updating the thrift libraries

Repository: airavata-php-gateway
Updated Branches:
  refs/heads/master db121ac32 -> 6165bf696


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/6165bf69/app/libraries/Airavata/API/Types.php
----------------------------------------------------------------------
diff --git a/app/libraries/Airavata/API/Types.php b/app/libraries/Airavata/API/Types.php
index ee57774..481421f 100644
--- a/app/libraries/Airavata/API/Types.php
+++ b/app/libraries/Airavata/API/Types.php
@@ -2,35 +2,21 @@
 namespace Airavata\API;
 
 /**
- * Autogenerated by Thrift Compiler (0.9.2)
+ * Autogenerated by Thrift Compiler (0.9.1)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- * @generated
+ *  @generated
  */
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
+use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
+use Thrift\Protocol\TBinaryProtocolAccelerated;
+use Thrift\Exception\TApplicationException;
 
 
-final class Constant extends \Thrift\Type\TConstant
-{
-    static protected $AIRAVATA_API_VERSION;
-
-    static protected function init_AIRAVATA_API_VERSION()
-    {
-        return /**
-         * Airavata Interface Versions depend upon this Thrift Interface File. When Making changes, please edit the
-         *  Version Constants according to Semantic Versioning Specification (SemVer) http://semver.org.
-         *
-         * Note: The Airavata API version may be different from the Airavata software release versions.
-         *
-         * The Airavata API version is composed as a dot delimited string with major, minor, and patch level components.
-         *
-         *  - Major: Incremented for backward incompatible changes. An example would be changes to interfaces.
-         *  - Minor: Incremented for backward compatible changes. An example would be the addition of a new optional methods.
-         *  - Patch: Incremented for bug fixes. The patch level should be increased for every edit that doesn't result
-         *              in a change to major/minor version numbers.
-         *
-         */
-            "0.15.0";
-    }
-}
+$GLOBALS['airavataAPI_CONSTANTS']['AIRAVATA_API_VERSION'] = "0.15.0";
 
 

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/6165bf69/app/libraries/Airavata/Model/Security/Types.php
----------------------------------------------------------------------
diff --git a/app/libraries/Airavata/Model/Security/Types.php b/app/libraries/Airavata/Model/Security/Types.php
deleted file mode 100644
index 3a263d3..0000000
--- a/app/libraries/Airavata/Model/Security/Types.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-namespace Airavata\Model\Security;
-
-/**
- * Autogenerated by Thrift Compiler (0.9.1)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-use Thrift\Base\TBase;
-use Thrift\Type\TType;
-use Thrift\Type\TMessageType;
-use Thrift\Exception\TException;
-use Thrift\Exception\TProtocolException;
-use Thrift\Protocol\TProtocol;
-use Thrift\Protocol\TBinaryProtocolAccelerated;
-use Thrift\Exception\TApplicationException;
-
-
-class AuthzToken {
-  static $_TSPEC;
-
-  public $accessToken = null;
-  public $claimsMap = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'accessToken',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'claimsMap',
-          'type' => TType::MAP,
-          'ktype' => TType::STRING,
-          'vtype' => TType::STRING,
-          'key' => array(
-            'type' => TType::STRING,
-          ),
-          'val' => array(
-            'type' => TType::STRING,
-            ),
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['accessToken'])) {
-        $this->accessToken = $vals['accessToken'];
-      }
-      if (isset($vals['claimsMap'])) {
-        $this->claimsMap = $vals['claimsMap'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'AuthzToken';
-  }
-
-  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->accessToken);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::MAP) {
-            $this->claimsMap = array();
-            $_size0 = 0;
-            $_ktype1 = 0;
-            $_vtype2 = 0;
-            $xfer += $input->readMapBegin($_ktype1, $_vtype2, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
-            {
-              $key5 = '';
-              $val6 = '';
-              $xfer += $input->readString($key5);
-              $xfer += $input->readString($val6);
-              $this->claimsMap[$key5] = $val6;
-            }
-            $xfer += $input->readMapEnd();
-          } 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('AuthzToken');
-    if ($this->accessToken !== null) {
-      $xfer += $output->writeFieldBegin('accessToken', TType::STRING, 1);
-      $xfer += $output->writeString($this->accessToken);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->claimsMap !== null) {
-      if (!is_array($this->claimsMap)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('claimsMap', TType::MAP, 2);
-      {
-        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->claimsMap));
-        {
-          foreach ($this->claimsMap as $kiter7 => $viter8)
-          {
-            $xfer += $output->writeString($kiter7);
-            $xfer += $output->writeString($viter8);
-          }
-        }
-        $output->writeMapEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-


[3/3] airavata-php-gateway git commit: updating the thrift libraries

Posted by sc...@apache.org.
updating the thrift libraries


Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/6165bf69
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/6165bf69
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/6165bf69

Branch: refs/heads/master
Commit: 6165bf696a5eff7112d53a489a6e5d318b0c83f7
Parents: db121ac
Author: Supun Nakandala <sc...@apache.org>
Authored: Fri Jul 10 02:08:45 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Fri Jul 10 02:08:45 2015 +0530

----------------------------------------------------------------------
 app/libraries/Airavata/API/Airavata.php         | 7147 +++---------------
 app/libraries/Airavata/API/Types.php            |   36 +-
 app/libraries/Airavata/Model/Security/Types.php |  146 -
 3 files changed, 1202 insertions(+), 6127 deletions(-)
----------------------------------------------------------------------



[2/3] airavata-php-gateway git commit: updating the thrift libraries

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/6165bf69/app/libraries/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/app/libraries/Airavata/API/Airavata.php b/app/libraries/Airavata/API/Airavata.php
index 8133f81..7ec2f28 100644
--- a/app/libraries/Airavata/API/Airavata.php
+++ b/app/libraries/Airavata/API/Airavata.php
@@ -1,2613 +1,150 @@
 <?php
 namespace Airavata\API;
 /**
- * Autogenerated by Thrift Compiler (0.9.2)
+ * Autogenerated by Thrift Compiler (0.9.1)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
  */
-use Thrift\Exception\TApplicationException;
+use Thrift\Base\TBase;
+use Thrift\Type\TType;
+use Thrift\Type\TMessageType;
+use Thrift\Exception\TException;
 use Thrift\Exception\TProtocolException;
+use Thrift\Protocol\TProtocol;
 use Thrift\Protocol\TBinaryProtocolAccelerated;
-use Thrift\Type\TMessageType;
-use Thrift\Type\TType;
+use Thrift\Exception\TApplicationException;
 
 
 interface AiravataIf {
-    /**
-     * Fetch Apache Airavata API version
-     *
-     * @param \Airavata\Model\Security\AuthzToken $authzToken
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     * @throws \Airavata\API\Error\AuthorizationException
-     */
-    public function getAPIVersion(\Airavata\Model\Security\AuthzToken $authzToken);
-
-    /**
-     * @param \Airavata\Model\Workspace\Gateway $gateway
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function addGateway(\Airavata\Model\Workspace\Gateway $gateway);
-
-    /**
-     * @param string $gatewayId
-     * @param \Airavata\Model\Workspace\Gateway $updatedGateway
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateGateway($gatewayId, \Airavata\Model\Workspace\Gateway $updatedGateway);
-
-    /**
-     * @param string $gatewayId
-     * @return \Airavata\Model\Workspace\Gateway
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getGateway($gatewayId);
-
-    /**
-     * @param string $gatewayId
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function deleteGateway($gatewayId);
-
-    /**
-     * @return \Airavata\Model\Workspace\Gateway[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllGateways();
-
-    /**
-     * @param string $gatewayId
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function isGatewayExist($gatewayId);
-
-    /**
-     * Generate and Register SSH Key Pair with Airavata Credential Store.
-     *
-     * @param gatewayId
-     *    The identifier for the requested gateway.
-     *
-     * @param userName
-     *    The User for which the credential should be registered. For community accounts, this user is the name of the
-     *    community user name. For computational resources, this user name need not be the same user name on resoruces.
-     *
-     * @return airavataCredStoreToken
-     *   An SSH Key pair is generated and stored in the credential store and associated with users or community account
-     *   belonging to a gateway.
-     *
-     *
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function generateAndRegisterSSHKeys($gatewayId, $userName);
-
-    /**
-     * @param string $airavataCredStoreToken
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getSSHPubKey($airavataCredStoreToken);
-
-    /**
-     * @param string $userName
-     * @return array
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllUserSSHPubKeys($userName);
-
-    /**
-     * Creates a Project with basic metadata.
-     *    A Project is a container of experiments.
-     *
-     * @param gatewayId
-     *    The identifier for the requested gateway.
-     *
-     * @param Project
-     *    The Project Object described in the workspaceModel
-     *
-     *
-     * @param string $gatewayId
-     * @param \Airavata\Model\Workspace\Project $project
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function createProject($gatewayId, \Airavata\Model\Workspace\Project $project);
-
-    /**
-     * Update a Project
-     *
-     *
-     * @param string $projectId
-     * @param \Airavata\Model\Workspace\Project $updatedProject
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     * @throws \Airavata\API\Error\ProjectNotFoundException
-     */
-    public function updateProject($projectId, \Airavata\Model\Workspace\Project $updatedProject);
-
-    /**
-     * Get a Project by ID
-     *
-     *
-     * @param string $projectId
-     * @return \Airavata\Model\Workspace\Project
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     * @throws \Airavata\API\Error\ProjectNotFoundException
-     */
-    public function getProject($projectId);
-
-    /**
-     * @param string $projectId
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     * @throws \Airavata\API\Error\ProjectNotFoundException
-     */
-    public function deleteProject($projectId);
-
-    /**
-     *   * Get all Project by user
-     *   *
-     *   * @param gatewayId
-     *   *    The identifier for the requested gateway.
-     *   *
-     *   * @param userName
-     *   *    The Project Object described in the workspaceModel
-     *   * @deprecated Instead use getAllUserProjectsWithPagination
-     * *
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @return \Airavata\Model\Workspace\Project[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllUserProjects($gatewayId, $userName);
-
-    /**
-     *   * Get all Project by user with pagination. Results will be ordered based
-     *   * on creation time DESC
-     *   *
-     *   * @param gatewayId
-     *   *    The identifier for the requested gateway.
-     *   * @param userName
-     *   *    The identifier of the user
-     *   * @param limit
-     *   *    The amount results to be fetched
-     *   * @param offset
-     *   *    The starting point of the results to be fetched
-     * *
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Project[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllUserProjectsWithPagination($gatewayId, $userName, $limit, $offset);
-
-    /**
-     * Get all Project for user by project name
-     *
-     * @param gatewayId
-     *    The identifier for the requested gateway.
-     * @param userName
-     *    The identifier of the user
-     * @param projectName
-     *    The name of the project on which the results to be fetched
-     * @deprecated Instead use searchProjectsByProjectNameWithPagination
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $projectName
-     * @return \Airavata\Model\Workspace\Project[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchProjectsByProjectName($gatewayId, $userName, $projectName);
-
-    /**
-     * Get all Project for user by project name with pagination.Results will be ordered based
-     * on creation time DESC
-     *
-     * @param gatewayId
-     *    The identifier for the requested gateway.
-     * @param userName
-     *    The identifier of the user
-     * @param projectName
-     *    The name of the project on which the results to be fetched
-     * @param limit
-     *    The amount results to be fetched
-     * @param offset
-     *    The starting point of the results to be fetched
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $projectName
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Project[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchProjectsByProjectNameWithPagination($gatewayId, $userName, $projectName, $limit, $offset);
-
-    /**
-     * Get all Project for user by project description
-     * @param gatewayId
-     *    The identifier for the requested gateway.
-     * @param userName
-     *    The identifier of the user
-     * @param description
-     *    The description to be matched
-     * @deprecated Instead use searchProjectsByProjectDescWithPagination
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $description
-     * @return \Airavata\Model\Workspace\Project[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchProjectsByProjectDesc($gatewayId, $userName, $description);
-
-    /**
-     * Search and get all Projects for user by project description with pagination. Results
-     * will be ordered based on creation time DESC
-     *
-     * @param gatewayId
-     *    The identifier for the requested gateway.
-     * @param userName
-     *    The identifier of the user
-     * @param description
-     *    The description to be matched
-     * @param limit
-     *    The amount results to be fetched
-     * @param offset
-     *    The starting point of the results to be fetched
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $description
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Project[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchProjectsByProjectDescWithPagination($gatewayId, $userName, $description, $limit, $offset);
-
-    /**
-     * Search Experiments by experiment name
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param useNname
-     *       Username of the requested user
-     * @param expName
-     *       Experiment name to be matched
-     * @deprecated
-     *       Instead use searchExperimentsByNameWithPagination
-     *
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $expName
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByName($gatewayId, $userName, $expName);
-
-    /**
-     * Search Experiments by experiment name with pagination. Results will be sorted
-     * based on creation time DESC
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param expName
-     *       Experiment name to be matched
-     * @param limit
-     *       Amount of results to be fetched
-     * @param offset
-     *       The starting point of the results to be fetched
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $expName
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByNameWithPagination($gatewayId, $userName, $expName, $limit, $offset);
-
-    /**
-     * Search Experiments by experiment name
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param description
-     *       Experiment description to be matched
-     * @deprecated
-     *       Instead use searchExperimentsByDescWithPagination
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $description
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByDesc($gatewayId, $userName, $description);
-
-    /**
-     * Search Experiments by experiment name with pagination. Results will be sorted
-     * based on creation time DESC
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param description
-     *       Experiment description to be matched
-     * @param limit
-     *       Amount of results to be fetched
-     * @param offset
-     *       The starting point of the results to be fetched
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $description
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByDescWithPagination($gatewayId, $userName, $description, $limit, $offset);
-
-    /**
-     * Search Experiments by application id
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param applicationId
-     *       Application id to be matched
-     * @deprecated
-     *       Instead use searchExperimentsByApplicationWithPagination
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $applicationId
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByApplication($gatewayId, $userName, $applicationId);
-
-    /**
-     * Search Experiments by application id with pagination. Results will be sorted
-     * based on creation time DESC
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param applicationId
-     *       Application id to be matched
-     * @param limit
-     *       Amount of results to be fetched
-     * @param offset
-     *       The starting point of the results to be fetched
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param string $applicationId
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByApplicationWithPagination($gatewayId, $userName, $applicationId, $limit, $offset);
-
-    /**
-     * Search Experiments by experiment status
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param experimentState
-     *       Experiement state to be matched
-     * @deprecated
-     *       Instead use searchExperimentsByStatusWithPagination
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param int $experimentState
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByStatus($gatewayId, $userName, $experimentState);
-
-    /**
-     * Search Experiments by experiment status with pagination. Results will be sorted
-     * based on creation time DESC
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param experimentState
-     *       Experiement state to be matched
-     * @param limit
-     *       Amount of results to be fetched
-     * @param offset
-     *       The starting point of the results to be fetched
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param int $experimentState
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByStatusWithPagination($gatewayId, $userName, $experimentState, $limit, $offset);
-
-    /**
-     * Search Experiments by experiment creation time
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param fromTime
-     *       Start time of the experiments creation time
-     * @param toTime
-     *       End time of the  experiement creation time
-     * @deprecated
-     *       Instead use searchExperimentsByCreationTimeWithPagination
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param int $fromTime
-     * @param int $toTime
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByCreationTime($gatewayId, $userName, $fromTime, $toTime);
-
-    /**
-     * Search Experiments by experiment creation time with pagination. Results will be sorted
-     * based on creation time DESC
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param fromTime
-     *       Start time of the experiments creation time
-     * @param toTime
-     *       End time of the  experiement creation time
-     * @param limit
-     *       Amount of results to be fetched
-     * @param offset
-     *       The starting point of the results to be fetched
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param int $fromTime
-     * @param int $toTime
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperimentsByCreationTimeWithPagination($gatewayId, $userName, $fromTime, $toTime, $limit, $offset);
-
-    /**
-     * Search Experiments by using multiple filter criteria with pagination. Results will be sorted
-     * based on creation time DESC
-     *
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param userName
-     *       Username of the requested user
-     * @param filters
-     *       map of multiple filter criteria.
-     * @param limit
-     *       Amount of results to be fetched
-     * @param offset
-     *       The starting point of the results to be fetched
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param array $filters
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentSummary[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function searchExperiments($gatewayId, $userName, array $filters, $limit, $offset);
-
-    /**
-     * Get Experiment Statisitics for the given gateway for a specific time period
-     * @param gatewayId
-     *       Identifier of the requested gateway
-     * @param fromTime
-     *       Starting date time
-     * @param toTime
-     *       Ending data time
-     *
-     *
-     * @param string $gatewayId
-     * @param int $fromTime
-     * @param int $toTime
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentStatistics
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getExperimentStatistics($gatewayId, $fromTime, $toTime);
-
-    /**
-     * Get all Experiments within a Project
-     *
-     * @param projectId
-     *       Identifier of the project
-     * @deprecated
-     *       Instead use  getAllExperimentsInProjectWithPagination
-     *
-     * @param string $projectId
-     * @return \Airavata\Model\Workspace\Experiment\Experiment[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     * @throws \Airavata\API\Error\ProjectNotFoundException
-     */
-    public function getAllExperimentsInProject($projectId);
-
-    /**
-     * Get all Experiments within project with pagination. Results will be sorted
-     * based on creation time DESC
-     *
-     * @param projectId
-     *       Identifier of the project
-     * @param limit
-     *       Amount of results to be fetched
-     * @param offset
-     *       The starting point of the results to be fetched
-     *
-     * @param string $projectId
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Experiment\Experiment[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     * @throws \Airavata\API\Error\ProjectNotFoundException
-     */
-    public function getAllExperimentsInProjectWithPagination($projectId, $limit, $offset);
-
-    /**
-     * Get all Experiments by user
-     *
-     * @param gatewayId
-     *       Identifier of the requesting gateway
-     * @param userName
-     *       Username of the requested user
-     * @deprecated
-     *       Instead use getAllUserExperimentsWithPagination
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @return \Airavata\Model\Workspace\Experiment\Experiment[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllUserExperiments($gatewayId, $userName);
-
-    /**
-     * Get all Experiments by user pagination. Results will be sorted
-     * based on creation time DESC
-     *
-     * @param gatewayId
-     *       Identifier of the requesting gateway
-     * @param userName
-     *       Username of the requested user
-     * @param limit
-     *       Amount of results to be fetched
-     * @param offset
-     *       The starting point of the results to be fetched
-     *
-     * @param string $gatewayId
-     * @param string $userName
-     * @param int $limit
-     * @param int $offset
-     * @return \Airavata\Model\Workspace\Experiment\Experiment[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllUserExperimentsWithPagination($gatewayId, $userName, $limit, $offset);
-
-    /**
-     * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed
-     *   but inferred from the authentication header. This experiment is just a persistent place holder. The client
-     *   has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except
-     *   registering the experiment in a persistent store.
-     *
-     * @param basicExperimentMetadata
-     *    The create experiment will require the basic experiment metadata like the name and description, intended user,
-     *      the gateway identifer and if the experiment should be shared public by defualt. During the creation of an experiment
-     *      the ExperimentMetadata is a required field.
-     *
-     * @return
-     *   The server-side generated.airavata.registry.core.experiment.globally unique identifier.
-     *
-     * @throws org.apache.airavata.model.error.InvalidRequestException
-     *    For any incorrect forming of the request itself.
-     *
-     * @throws org.apache.airavata.model.error.AiravataClientException
-     *    The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-     *
-     *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-     *         step, then Airavata Registry will not have a provenance area setup. The client has to follow
-     *         gateway registration steps and retry this request.
-     *
-     *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-     *         For now this is a place holder.
-     *
-     *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-     *         is implemented, the authorization will be more substantial.
-     *
-     * @throws org.apache.airavata.model.error.AiravataSystemException
-     *    This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-     *       rather an Airavata Administrator will be notified to take corrective action.
-     *
-     *
-     * @param string $gatewayId
-     * @param \Airavata\Model\Workspace\Experiment\Experiment $experiment
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function createExperiment($gatewayId, \Airavata\Model\Workspace\Experiment\Experiment $experiment);
-
-    /**
-     * Fetch previously created experiment metadata.
-     *
-     * @param airavataExperimentId
-     *    The identifier for the requested experiment. This is returned during the create experiment step.
-     *
-     * @return experimentMetada
-     *   This method will return the previously stored experiment metadata.
-     *
-     * @throws org.apache.airavata.model.error.InvalidRequestException
-     *    For any incorrect forming of the request itself.
-     *
-     * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-     *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-     *
-     * @throws org.apache.airavata.model.error.AiravataClientException
-     *    The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-     *
-     *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-     *         step, then Airavata Registry will not have a provenance area setup. The client has to follow
-     *         gateway registration steps and retry this request.
-     *
-     *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-     *         For now this is a place holder.
-     *
-     *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-     *         is implemented, the authorization will be more substantial.
-     *
-     * @throws org.apache.airavata.model.error.AiravataSystemException
-     *    This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-     *       rather an Airavata Administrator will be notified to take corrective action.
-     *
-     *
-     * @param string $airavataExperimentId
-     * @return \Airavata\Model\Workspace\Experiment\Experiment A structure holding the experiment metadata and its child models.
-     *
-     * userName:
-     *   The user name of the targeted gateway end user on whose behalf the experiment is being created.
-     *     the associated gateway identity can only be inferred from the security hand-shake so as to avoid
-     *     authorized Airavata Clients mimicking an unauthorized request. If a gateway is not registered with
-     *     Airavata, an authorization exception is thrown.
-     *
-     * experimentName:
-     *   The name of the experiment as defined by the user. The name need not be unique as uniqueness is enforced
-     *      by the generated experiment id.
-     *
-     * experimentDescription:
-     *    The verbose description of the experiment. This is an optional parameter.
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getExperiment($airavataExperimentId);
-
-    /**
-     * Configure a previously created experiment with required inputs, scheduling and other quality of service
-     *   parameters. This method only updates the experiment object within the registry. The experiment has to be launched
-     *   to make it actionable by the server.
-     *
-     * @param airavataExperimentId
-     *    The identifier for the requested experiment. This is returned during the create experiment step.
-     *
-     * @param experimentConfigurationData
-     *    The configuration information of the experiment with application input parameters, computational resource scheduling
-     *      information, special input output handling and additional quality of service parameters.
-     *
-     * @return
-     *   This method call does not have a return value.
-     *
-     * @throws org.apache.airavata.model.error.InvalidRequestException
-     *    For any incorrect forming of the request itself.
-     *
-     * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-     *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-     *
-     * @throws org.apache.airavata.model.error.AiravataClientException
-     *    The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-     *
-     *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-     *         step, then Airavata Registry will not have a provenance area setup. The client has to follow
-     *         gateway registration steps and retry this request.
-     *
-     *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-     *         For now this is a place holder.
-     *
-     *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-     *         is implemented, the authorization will be more substantial.
-     *
-     * @throws org.apache.airavata.model.error.AiravataSystemException
-     *    This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-     *       rather an Airavata Administrator will be notified to take corrective action.
-     *
-     *
-     * @param string $airavataExperimentId
-     * @param \Airavata\Model\Workspace\Experiment\Experiment $experiment
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateExperiment($airavataExperimentId, \Airavata\Model\Workspace\Experiment\Experiment $experiment);
-
-    /**
-     * @param string $airavataExperimentId
-     * @param \Airavata\Model\Workspace\Experiment\UserConfigurationData $userConfiguration
-     */
-    public function updateExperimentConfiguration($airavataExperimentId, \Airavata\Model\Workspace\Experiment\UserConfigurationData $userConfiguration);
-
-    /**
-     * @param string $airavataExperimentId
-     * @param \Airavata\Model\Workspace\Experiment\ComputationalResourceScheduling $resourceScheduling
-     */
-    public function updateResourceScheduleing($airavataExperimentId, \Airavata\Model\Workspace\Experiment\ComputationalResourceScheduling $resourceScheduling);
-
-    /**
-     *  *
-     *  * Validate experiment configuration. A true in general indicates, the experiment is ready to be launched.
-     *  *
-     *  * @param experimentID
-     *  * @return sucess/failure
-     *  *
-     * *
-     *
-     * @param string $airavataExperimentId
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function validateExperiment($airavataExperimentId);
-
-    /**
-     * Launch a previously created and configured experiment. Airavata Server will then start processing the request and appropriate
-     *   notifications and intermediate and output data will be subsequently available for this experiment.
-     *
-     * @param airavataExperimentId
-     *    The identifier for the requested experiment. This is returned during the create experiment step.
-     *
-     * @param airavataCredStoreToken :
-     *   A requirement to execute experiments within Airavata is to first register the targeted remote computational account
-     *     credentials with Airavata Credential Store. The administrative API (related to credential store) will return a
-     *     generated token associated with the registered credentials. The client has to security posses this token id and is
-     *     required to pass it to Airavata Server for all execution requests.
-     *   Note: At this point only the credential store token is required so the string is directly passed here. In future if
-     *     if more security credentials are enables, then the structure ExecutionSecurityParameters should be used.
-     *   Note: This parameter is not persisted within Airavata Registry for security reasons.
-     *
-     * @return
-     *   This method call does not have a return value.
-     *
-     * @throws org.apache.airavata.model.error.InvalidRequestException
-     *    For any incorrect forming of the request itself.
-     *
-     * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-     *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-     *
-     * @throws org.apache.airavata.model.error.AiravataClientException
-     *    The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-     *
-     *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-     *         step, then Airavata Registry will not have a provenance area setup. The client has to follow
-     *         gateway registration steps and retry this request.
-     *
-     *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-     *         For now this is a place holder.
-     *
-     *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-     *         is implemented, the authorization will be more substantial.
-     *
-     * @throws org.apache.airavata.model.error.AiravataSystemException
-     *    This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-     *       rather an Airavata Administrator will be notified to take corrective action.
-     *
-     *
-     * @param string $airavataExperimentId
-     * @param string $airavataCredStoreToken
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     * @throws \Airavata\API\Error\LaunchValidationException
-     */
-    public function launchExperiment($airavataExperimentId, $airavataCredStoreToken);
-
-    /**
-     * @param string $airavataExperimentId
-     * @return \Airavata\Model\Workspace\Experiment\ExperimentStatus
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getExperimentStatus($airavataExperimentId);
-
-    /**
-     * @param string $airavataExperimentId
-     * @return \Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getExperimentOutputs($airavataExperimentId);
-
-    /**
-     * @param string $airavataExperimentId
-     * @return \Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getIntermediateOutputs($airavataExperimentId);
-
-    /**
-     * @param string $airavataExperimentId
-     * @return array
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getJobStatuses($airavataExperimentId);
-
-    /**
-     * @param string $airavataExperimentId
-     * @return \Airavata\Model\Workspace\Experiment\JobDetails[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getJobDetails($airavataExperimentId);
-
-    /**
-     * @param string $airavataExperimentId
-     * @return \Airavata\Model\Workspace\Experiment\DataTransferDetails[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getDataTransferDetails($airavataExperimentId);
-
-    /**
-     * Clone an specified experiment with a new name. A copy of the experiment configuration is made and is persisted with new metadata.
-     *   The client has to subsequently update this configuration if needed and launch the cloned experiment.
-     *
-     * @param newExperimentName
-     *    experiment name that should be used in the cloned experiment
-     *
-     * @param updatedExperiment
-     *    Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require
-     *      the basic experiment metadata like the name and description, intended user, the gateway identifier and if the experiment
-     *      should be shared public by default.
-     *
-     * @return
-     *   The server-side generated.airavata.registry.core.experiment.globally unique identifier for the newly cloned experiment.
-     *
-     * @throws org.apache.airavata.model.error.InvalidRequestException
-     *    For any incorrect forming of the request itself.
-     *
-     * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-     *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-     *
-     * @throws org.apache.airavata.model.error.AiravataClientException
-     *    The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-     *
-     *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-     *         step, then Airavata Registry will not have a provenance area setup. The client has to follow
-     *         gateway registration steps and retry this request.
-     *
-     *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-     *         For now this is a place holder.
-     *
-     *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-     *         is implemented, the authorization will be more substantial.
-     *
-     * @throws org.apache.airavata.model.error.AiravataSystemException
-     *    This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-     *       rather an Airavata Administrator will be notified to take corrective action.
-     *
-     *
-     * @param string $existingExperimentID
-     * @param string $newExperimentName
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function cloneExperiment($existingExperimentID, $newExperimentName);
-
-    /**
-     * Terminate a running experiment.
-     *
-     * @param airavataExperimentId
-     *    The identifier for the requested experiment. This is returned during the create experiment step.
-     *
-     * @return
-     *   This method call does not have a return value.
-     *
-     * @throws org.apache.airavata.model.error.InvalidRequestException
-     *    For any incorrect forming of the request itself.
-     *
-     * @throws org.apache.airavata.model.error.ExperimentNotFoundException
-     *    If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown.
-     *
-     * @throws org.apache.airavata.model.error.AiravataClientException
-     *    The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve:
-     *
-     *      UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative
-     *         step, then Airavata Registry will not have a provenance area setup. The client has to follow
-     *         gateway registration steps and retry this request.
-     *
-     *      AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined.
-     *         For now this is a place holder.
-     *
-     *      INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake
-     *         is implemented, the authorization will be more substantial.
-     *
-     * @throws org.apache.airavata.model.error.AiravataSystemException
-     *    This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client
-     *       rather an Airavata Administrator will be notified to take corrective action.
-     *
-     *
-     * @param string $airavataExperimentId
-     * @param string $tokenId
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\ExperimentNotFoundException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function terminateExperiment($airavataExperimentId, $tokenId);
-
-    /**
-     * Register a Application Module.
-     *
-     * @param applicationModule
-     *    Application Module Object created from the datamodel.
-     *
-     * @return appModuleId
-     *   Returns a server-side generated airavata appModule globally unique identifier.
-     *
-     *
-     * @param string $gatewayId
-     * @param \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function registerApplicationModule($gatewayId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule);
-
-    /**
-     * Fetch a Application Module.
-     *
-     * @param appModuleId
-     *   The identifier for the requested application module
-     *
-     * @return applicationModule
-     *   Returns a application Module Object.
-     *
-     *
-     * @param string $appModuleId
-     * @return \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule Application Module Information. A module has to be registered before registering a deployment.
-     *
-     * appModuleId: Airavata Internal Unique Job ID. This is set by the registry.
-     *
-     * appModuleName:
-     *   Name of the application module.
-     *
-     * appModuleVersion:
-     *   Version of the application.
-     *
-     * appModuleDescription:
-     *    Descriprion of the Module
-     *
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getApplicationModule($appModuleId);
-
-    /**
-     * Update a Application Module.
-     *
-     * @param appModuleId
-     *   The identifier for the requested application module to be updated.
-     *
-     * @param applicationModule
-     *    Application Module Object created from the datamodel.
-     *
-     * @return status
-     *   Returns a success/failure of the update.
-     *
-     *
-     * @param string $appModuleId
-     * @param \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateApplicationModule($appModuleId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule);
-
-    /**
-     * @param string $gatewayId
-     * @return \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllAppModules($gatewayId);
-
-    /**
-     * Delete a Application Module.
-     *
-     * @param appModuleId
-     *   The identifier for the requested application module to be deleted.
-     *
-     * @return status
-     *   Returns a success/failure of the deletion.
-     *
-     *
-     * @param string $appModuleId
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function deleteApplicationModule($appModuleId);
-
-    /**
-     * Register a Application Deployment.
-     *
-     * @param applicationModule
-     *    Application Module Object created from the datamodel.
-     *
-     * @return appDeploymentId
-     *   Returns a server-side generated airavata appDeployment globally unique identifier.
-     *
-     *
-     * @param string $gatewayId
-     * @param \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription $applicationDeployment
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function registerApplicationDeployment($gatewayId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription $applicationDeployment);
-
-    /**
-     * Fetch a Application Deployment.
-     *
-     * @param appDeploymentId
-     *   The identifier for the requested application module
-     *
-     * @return applicationDeployment
-     *   Returns a application Deployment Object.
-     *
-     *
-     * @param string $appDeploymentId
-     * @return \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription Application Deployment Description
-     *
-     * appDeploymentId: Airavata Internal Unique Job ID. This is set by the registry.
-     *
-     * appModuleName:
-     *   Application Module Name. This has to be precise describing the binary.
-     *
-     * computeHostId:
-     *   This ID maps application deployment to a particular resource previously described within Airavata.
-     *   Example: Stampede is first registered and refered when registering WRF.
-     *
-     * moduleLoadCmd:
-     *  Command string to load modules. This will be placed in the job submisison
-     *  Ex: module load amber
-     *
-     * libPrependPaths:
-     *  prepend to a path variable the value
-     *
-     * libAppendPaths:
-     *  append to a path variable the value
-     *
-     * setEnvironment:
-     *  assigns to the environment variable "NAME" the value
-     *
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getApplicationDeployment($appDeploymentId);
-
-    /**
-     * Update a Application Deployment.
-     *
-     * @param appDeploymentId
-     *   The identifier for the requested application deployment to be updated.
-     *
-     * @param appDeployment
-     *    Application Deployment Object created from the datamodel.
-     *
-     * @return status
-     *   Returns a success/failure of the update.
-     *
-     *
-     * @param string $appDeploymentId
-     * @param \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription $applicationDeployment
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateApplicationDeployment($appDeploymentId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription $applicationDeployment);
-
-    /**
-     * Delete a Application deployment.
-     *
-     * @param appDeploymentId
-     *   The identifier for the requested application deployment to be deleted.
-     *
-     * @return status
-     *   Returns a success/failure of the deletion.
-     *
-     *
-     * @param string $appDeploymentId
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function deleteApplicationDeployment($appDeploymentId);
-
-    /**
-     * Fetch all Application Deployment Descriptions.
-     *
-     * @return list<applicationDeployment.
-     *   Returns the list of all application Deployment Objects.
-     *
-     *
-     * @param string $gatewayId
-     * @return \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllApplicationDeployments($gatewayId);
-
-    /**
-     * Fetch a list of Deployed Compute Hosts.
-     *
-     * @param appModuleId
-     *   The identifier for the requested application module
-     *
-     * @return list<string>
-     *   Returns a list of Deployed Resources.
-     *
-     *
-     * @param string $appModuleId
-     * @return string[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAppModuleDeployedResources($appModuleId);
-
-    /**
-     * Register a Application Interface.
-     *
-     * @param applicationModule
-     *    Application Module Object created from the datamodel.
-     *
-     * @return appInterfaceId
-     *   Returns a server-side generated airavata application interface globally unique identifier.
-     *
-     *
-     * @param string $gatewayId
-     * @param \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription $applicationInterface
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function registerApplicationInterface($gatewayId, \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription $applicationInterface);
-
-    /**
-     * Fetch a Application Interface.
-     *
-     * @param appInterfaceId
-     *   The identifier for the requested application module
-     *
-     * @return applicationInterface
-     *   Returns a application Interface Object.
-     *
-     *
-     *
-     * @param string $appInterfaceId
-     * @return \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription Application Interface Description
-     *
-     * applicationModules:
-     *   Associate all application modules with versions which interface is applicable to.
-     *
-     * applicationInputs:
-     *   Inputs to be passed to the application
-     *
-     * applicationOutputs:
-     *   Outputs generated from the application
-     *
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getApplicationInterface($appInterfaceId);
-
-    /**
-     * Update a Application Interface.
-     *
-     * @param appInterfaceId
-     *   The identifier for the requested application deployment to be updated.
-     *
-     * @param appInterface
-     *    Application Interface Object created from the datamodel.
-     *
-     * @return status
-     *   Returns a success/failure of the update.
-     *
-     *
-     *
-     * @param string $appInterfaceId
-     * @param \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription $applicationInterface
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateApplicationInterface($appInterfaceId, \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription $applicationInterface);
-
-    /**
-     * Delete a Application Interface.
-     *
-     * @param appInterfaceId
-     *   The identifier for the requested application interface to be deleted.
-     *
-     * @return status
-     *   Returns a success/failure of the deletion.
-     *
-     *
-     *
-     * @param string $appInterfaceId
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function deleteApplicationInterface($appInterfaceId);
-
-    /**
-     * Fetch name and id of  Application Interface documents.
-     *
-     *
-     * @return map<applicationId, applicationInterfaceNames>
-     *   Returns a list of application interfaces with corresponsing id's
-     *
-     *
-     * @param string $gatewayId
-     * @return array
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllApplicationInterfaceNames($gatewayId);
-
-    /**
-     * Fetch all Application Interface documents.
-     *
-     *
-     * @return map<applicationId, applicationInterfaceNames>
-     *   Returns a list of application interfaces documents
-     *
-     *
-     * @param string $gatewayId
-     * @return \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllApplicationInterfaces($gatewayId);
-
-    /**
-     * Fetch the list of Application Inputs.
-     *
-     * @param appInterfaceId
-     *   The identifier for the requested application interface
-     *
-     * @return list<applicationInterfaceModel.InputDataObjectType>
-     *   Returns a list of application inputs.
-     *
-     *
-     * @param string $appInterfaceId
-     * @return \Airavata\Model\AppCatalog\AppInterface\InputDataObjectType[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getApplicationInputs($appInterfaceId);
-
-    /**
-     * Fetch the list of Application Outputs.
-     *
-     * @param appInterfaceId
-     *   The identifier for the requested application interface
-     *
-     * @return list<applicationInterfaceModel.OutputDataObjectType>
-     *   Returns a list of application outputs.
-     *
-     *
-     * @param string $appInterfaceId
-     * @return \Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType[]
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getApplicationOutputs($appInterfaceId);
-
-    /**
-     * Fetch a list of all deployed Compute Hosts for a given application interfaces.
-     *
-     * @param appInterfaceId
-     *   The identifier for the requested application interface
-     *
-     * @return map<computeResourceId, computeResourceName>
-     *   A map of registered compute resource id's and their corresponding hostnames.
-     *    Deployments of each modules listed within the interfaces will be listed.
-     *
-     *
-     * @param string $appInterfaceId
-     * @return array
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAvailableAppInterfaceComputeResources($appInterfaceId);
-
-    /**
-     * Register a Compute Resource.
-     *
-     * @param computeResourceDescription
-     *    Compute Resource Object created from the datamodel.
-     *
-     * @return computeResourceId
-     *   Returns a server-side generated airavata compute resource globally unique identifier.
-     *
-     *
-     * @param \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function registerComputeResource(\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription);
-
-    /**
-     * Fetch the given Compute Resource.
-     *
-     * @param computeResourceId
-     *   The identifier for the requested compute resource
-     *
-     * @return computeResourceDescription
-     *    Compute Resource Object created from the datamodel..
-     *
-     *
-     * @param string $computeResourceId
-     * @return \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription Computational Resource Description
-     *
-     * computeResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
-     *
-     * hostName:
-     *   Fully Qualified Host Name.
-     *
-     * hostAliases:
-     *   Aliases if any.
-     *
-     * ipAddress:
-     *   IP Addresses of the Resource.
-     *
-     * resourceDescription:
-     *  A user friendly description of the resource.
-     *
-     * JobSubmissionProtocols:
-     *  A computational resources may have one or more ways of submitting Jobs. This structure
-     *    will hold all available mechanisms to interact with the resource.
-     *  The key is the priority
-     *
-     * DataMovementProtocol:
-     *  Option to specify a prefered data movement mechanism of the available options.
-     *
-     * fileSystems:
-     *  Map of file systems type and the path.
-     *
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getComputeResource($computeResourceId);
-
-    /**
-     * Fetch all registered Compute Resources.
-     *
-     * @return A map of registered compute resource id's and thier corresponding hostnames.
-     *    Compute Resource Object created from the datamodel..
-     *
-     *
-     * @return array
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getAllComputeResourceNames();
-
-    /**
-     * Update a Compute Resource.
-     *
-     * @param computeResourceId
-     *   The identifier for the requested compute resource to be updated.
-     *
-     * @param computeResourceDescription
-     *    Compute Resource Object created from the datamodel.
-     *
-     * @return status
-     *   Returns a success/failure of the update.
-     *
-     *
-     * @param string $computeResourceId
-     * @param \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateComputeResource($computeResourceId, \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription);
-
-    /**
-     * Delete a Compute Resource.
-     *
-     * @param computeResourceId
-     *   The identifier for the requested compute resource to be deleted.
-     *
-     * @return status
-     *   Returns a success/failure of the deletion.
-     *
-     *
-     * @param string $computeResourceId
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function deleteComputeResource($computeResourceId);
-
-    /**
-     * Add a Local Job Submission details to a compute resource
-     *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
-     *
-     * @param computeResourceId
-     *   The identifier of the compute resource to which JobSubmission protocol to be added
-     *
-     * @param priorityOrder
-     *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-     *
-     * @param localSubmission
-     *   The LOCALSubmission object to be added to the resource.
-     *
-     * @return status
-     *   Returns the unique job submission id.
-     *
-     *
-     * @param string $computeResourceId
-     * @param int $priorityOrder
-     * @param \Airavata\Model\AppCatalog\ComputeResource\LOCALSubmission $localSubmission
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function addLocalSubmissionDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\LOCALSubmission $localSubmission);
-
-    /**
-     * Update the given Local Job Submission details
-     *
-     * @param jobSubmissionInterfaceId
-     *   The identifier of the JobSubmission Interface to be updated.
-     *
-     * @param localSubmission
-     *   The LOCALSubmission object to be updated.
-     *
-     * @return status
-     *   Returns a success/failure of the deletion.
-     *
-     *
-     * @param string $jobSubmissionInterfaceId
-     * @param \Airavata\Model\AppCatalog\ComputeResource\LOCALSubmission $localSubmission
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateLocalSubmissionDetails($jobSubmissionInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\LOCALSubmission $localSubmission);
-
-    /**
-     * This method returns localJobSubmission object
-     * @param jobSubmissionInterfaceId
-     *   The identifier of the JobSubmission Interface to be retrieved.
-     * @return LOCALSubmission instance
-     *
-     *
-     * @param string $jobSubmissionId
-     * @return \Airavata\Model\AppCatalog\ComputeResource\LOCALSubmission Locally Fork Jobs as OS processes
-     *
-     * alternativeSSHHostName:
-     *  If the login to ssh is different than the hostname itself, specify it here
-     *
-     * sshPort:
-     *  If a non-default port needs to used, specify it.
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getLocalJobSubmission($jobSubmissionId);
-
-    /**
-     * Add a SSH Job Submission details to a compute resource
-     *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
-     *
-     * @param computeResourceId
-     *   The identifier of the compute resource to which JobSubmission protocol to be added
-     *
-     * @param priorityOrder
-     *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-     *
-     * @param sshJobSubmission
-     *   The SSHJobSubmission object to be added to the resource.
-     *
-     * @return status
-     *   Returns the unique job submission id.
-     *
-     *
-     * @param string $computeResourceId
-     * @param int $priorityOrder
-     * @param \Airavata\Model\AppCatalog\ComputeResource\SSHJobSubmission $sshJobSubmission
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function addSSHJobSubmissionDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\SSHJobSubmission $sshJobSubmission);
-
-    /**
-     * This method returns SSHJobSubmission object
-     * @param jobSubmissionInterfaceId
-     *   The identifier of the JobSubmission Interface to be retrieved.
-     * @return SSHJobSubmission instance
-     *
-     *
-     * @param string $jobSubmissionId
-     * @return \Airavata\Model\AppCatalog\ComputeResource\SSHJobSubmission Authenticate using Secured Shell
-     *
-     * alternativeSSHHostName:
-     *  If the login to ssh is different than the hostname itself, specify it here
-     *
-     * sshPort:
-     *  If a non-default port needs to used, specify it.
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getSSHJobSubmission($jobSubmissionId);
-
-    /**
-     * Add a UNICORE Job Submission details to a compute resource
-     *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
-     *
-     * @param computeResourceId
-     *   The identifier of the compute resource to which JobSubmission protocol to be added
-     *
-     * @param priorityOrder
-     *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-     *
-     * @param unicoreJobSubmission
-     *   The UnicoreJobSubmission object to be added to the resource.
-     *
-     * @return status
-     *  Returns the unique job submission id.
-     *
-     *
-     * @param string $computeResourceId
-     * @param int $priorityOrder
-     * @param \Airavata\Model\AppCatalog\ComputeResource\UnicoreJobSubmission $unicoreJobSubmission
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function addUNICOREJobSubmissionDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\UnicoreJobSubmission $unicoreJobSubmission);
-
-    /**
-     *   * This method returns UnicoreJobSubmission object
-     *   * @param jobSubmissionInterfaceId
-     *   *   The identifier of the JobSubmission Interface to be retrieved.
-     *   *  @return UnicoreJobSubmission instance
-     * *
-     *
-     * @param string $jobSubmissionId
-     * @return \Airavata\Model\AppCatalog\ComputeResource\UnicoreJobSubmission Unicore Job Submission
-     *
-     * unicoreEndPointURL:
-     *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
-     * authenticationMode
-     *  The authenticationMode defines the way certificate is fetched.
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getUnicoreJobSubmission($jobSubmissionId);
-
-    /**
-     *    * Add a Cloud Job Submission details to a compute resource
-     *    *  App catalog will return a jobSubmissionInterfaceId which will be added to the jobSubmissionInterfaces.
-     *    *
-     *    * @param computeResourceId
-     *    *   The identifier of the compute resource to which JobSubmission protocol to be added
-     *    *
-     *    * @param priorityOrder
-     *    *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-     *    *
-     *    * @param sshJobSubmission
-     *    *   The SSHJobSubmission object to be added to the resource.
-     *    *
-     *    * @return status
-     *    *   Returns the unique job submission id.
-     * *
-     *
-     * @param string $computeResourceId
-     * @param int $priorityOrder
-     * @param \Airavata\Model\AppCatalog\ComputeResource\CloudJobSubmission $cloudSubmission
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function addCloudJobSubmissionDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\CloudJobSubmission $cloudSubmission);
-
-    /**
-     *    * This method returns cloudJobSubmission object
-     *    * @param jobSubmissionInterfaceI
-     *        *   The identifier of the JobSubmission Interface to be retrieved.
-     *    *  @return CloudJobSubmission instance
-     * *
-     *
-     * @param string $jobSubmissionId
-     * @return \Airavata\Model\AppCatalog\ComputeResource\CloudJobSubmission Cloud Job Submission
-     *
-     *
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getCloudJobSubmission($jobSubmissionId);
-
-    /**
-     * Update the given SSH Job Submission details
-     *
-     * @param jobSubmissionInterfaceId
-     *   The identifier of the JobSubmission Interface to be updated.
-     *
-     * @param sshJobSubmission
-     *   The SSHJobSubmission object to be updated.
-     *
-     * @return status
-     *   Returns a success/failure of the deletion.
-     *
-     *
-     * @param string $jobSubmissionInterfaceId
-     * @param \Airavata\Model\AppCatalog\ComputeResource\SSHJobSubmission $sshJobSubmission
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateSSHJobSubmissionDetails($jobSubmissionInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\SSHJobSubmission $sshJobSubmission);
-
-    /**
-     * Update the given SSH Job Submission details
-     *
-     * @param jobSubmissionInterfaceId
-     *   The identifier of the JobSubmission Interface to be updated.
-     *
-     * @param cloudJobSubmission
-     *   The CloudJobSubmission object to be updated.
-     *
-     * @return status
-     *   Returns a success/failure of the deletion.
-     *
-     *
-     * @param string $jobSubmissionInterfaceId
-     * @param \Airavata\Model\AppCatalog\ComputeResource\CloudJobSubmission $sshJobSubmission
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateCloudJobSubmissionDetails($jobSubmissionInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\CloudJobSubmission $sshJobSubmission);
-
-    /**
-     * @param string $jobSubmissionInterfaceId
-     * @param \Airavata\Model\AppCatalog\ComputeResource\UnicoreJobSubmission $unicoreJobSubmission
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateUnicoreJobSubmissionDetails($jobSubmissionInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\UnicoreJobSubmission $unicoreJobSubmission);
-
-    /**
-     * Add a Local data movement details to a compute resource
-     *  App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-     *
-     * @param computeResourceId
-     *   The identifier of the compute resource to which JobSubmission protocol to be added
-     *
-     * @param priorityOrder
-     *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-     *
-     * @param localDataMovement
-     *   The LOCALDataMovement object to be added to the resource.
-     *
-     * @return status
-     *   Returns the unique job submission id.
-     *
-     *
-     * @param string $computeResourceId
-     * @param int $priorityOrder
-     * @param \Airavata\Model\AppCatalog\ComputeResource\LOCALDataMovement $localDataMovement
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function addLocalDataMovementDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\LOCALDataMovement $localDataMovement);
-
-    /**
-     * Update the given Local data movement details
-     *
-     * @param dataMovementInterfaceId
-     *   The identifier of the data movement Interface to be updated.
-     *
-     * @param localDataMovement
-     *   The LOCALDataMovement object to be updated.
-     *
-     * @return status
-     *   Returns a success/failure of the update.
-     *
-     *
-     * @param string $dataMovementInterfaceId
-     * @param \Airavata\Model\AppCatalog\ComputeResource\LOCALDataMovement $localDataMovement
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateLocalDataMovementDetails($dataMovementInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\LOCALDataMovement $localDataMovement);
-
-    /**
-     *         * This method returns local datamovement object
-     *         * @param dataMovementId
-     *         *   The identifier of the datamovement Interface to be retrieved.
-     *         *  @return LOCALDataMovement instance
-     * *
-     *
-     * @param string $dataMovementId
-     * @return \Airavata\Model\AppCatalog\ComputeResource\LOCALDataMovement LOCAL
-     *
-     * alternativeSCPHostName:
-     *  If the login to scp is different than the hostname itself, specify it here
-     *
-     * sshPort:
-     *  If a non-defualt port needs to used, specify it.
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getLocalDataMovement($dataMovementId);
-
-    /**
-     * Add a SCP data movement details to a compute resource
-     *  App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-     *
-     * @param computeResourceId
-     *   The identifier of the compute resource to which JobSubmission protocol to be added
-     *
-     * @param priorityOrder
-     *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-     *
-     * @param scpDataMovement
-     *   The SCPDataMovement object to be added to the resource.
-     *
-     * @return status
-     *   Returns the unique job submission id.
-     *
-     *
-     * @param string $computeResourceId
-     * @param int $priorityOrder
-     * @param \Airavata\Model\AppCatalog\ComputeResource\SCPDataMovement $scpDataMovement
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function addSCPDataMovementDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\SCPDataMovement $scpDataMovement);
-
-    /**
-     * Update the given scp data movement details
-     *  App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-     *
-     * @param dataMovementInterfaceId
-     *   The identifier of the data movement Interface to be updated.
-     *
-     * @param scpDataMovement
-     *   The SCPDataMovement object to be updated.
-     *
-     * @return status
-     *   Returns a success/failure of the update.
-     *
-     *
-     * @param string $dataMovementInterfaceId
-     * @param \Airavata\Model\AppCatalog\ComputeResource\SCPDataMovement $scpDataMovement
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateSCPDataMovementDetails($dataMovementInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\SCPDataMovement $scpDataMovement);
-
-    /**
-     *   * This method returns SCP datamovement object
-     *   * @param dataMovementId
-     *      *   The identifier of the datamovement Interface to be retrieved.
-     *      *  @return SCPDataMovement instance
-     * *
-     *
-     * @param string $dataMovementId
-     * @return \Airavata\Model\AppCatalog\ComputeResource\SCPDataMovement Data Movement through Secured Copy
-     *
-     * alternativeSCPHostName:
-     *  If the login to scp is different than the hostname itself, specify it here
-     *
-     * sshPort:
-     *  If a non-default port needs to used, specify it.
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getSCPDataMovement($dataMovementId);
-
-    /**
-     * @param string $computeResourceId
-     * @param int $priorityOrder
-     * @param \Airavata\Model\AppCatalog\ComputeResource\UnicoreDataMovement $unicoreDataMovement
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function addUnicoreDataMovementDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\UnicoreDataMovement $unicoreDataMovement);
-
-    /**
-     * @param string $dataMovementInterfaceId
-     * @param \Airavata\Model\AppCatalog\ComputeResource\UnicoreDataMovement $unicoreDataMovement
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateUnicoreDataMovementDetails($dataMovementInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\UnicoreDataMovement $unicoreDataMovement);
-
-    /**
-     * @param string $dataMovementId
-     * @return \Airavata\Model\AppCatalog\ComputeResource\UnicoreDataMovement Data Movement through UnicoreStorage
-     *
-     * unicoreEndPointURL:
-     *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getUnicoreDataMovement($dataMovementId);
-
-    /**
-     * Add a GridFTP data movement details to a compute resource
-     *  App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-     *
-     * @param computeResourceId
-     *   The identifier of the compute resource to which JobSubmission protocol to be added
-     *
-     * @param priorityOrder
-     *   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
-     *
-     * @param gridFTPDataMovement
-     *   The GridFTPDataMovement object to be added to the resource.
-     *
-     * @return status
-     *   Returns the unique job submission id.
-     *
-     *
-     * @param string $computeResourceId
-     * @param int $priorityOrder
-     * @param \Airavata\Model\AppCatalog\ComputeResource\GridFTPDataMovement $gridFTPDataMovement
-     * @return string
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function addGridFTPDataMovementDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\GridFTPDataMovement $gridFTPDataMovement);
-
-    /**
-     * Update the given GridFTP data movement details to a compute resource
-     *  App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
-     *
-     * @param dataMovementInterfaceId
-     *   The identifier of the data movement Interface to be updated.
-     *
-     * @param gridFTPDataMovement
-     *   The GridFTPDataMovement object to be updated.
-     *
-     * @return status
-     *   Returns a success/failure of the updation.
-     *
-     *
-     * @param string $dataMovementInterfaceId
-     * @param \Airavata\Model\AppCatalog\ComputeResource\GridFTPDataMovement $gridFTPDataMovement
-     * @return bool
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function updateGridFTPDataMovementDetails($dataMovementInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\GridFTPDataMovement $gridFTPDataMovement);
-
-    /**
-     *   * This method returns GridFTP datamovement object
-     *   * @param dataMovementId
-     *      *   The identifier of the datamovement Interface to be retrieved.
-     *   *  @return GridFTPDataMovement instance
-     * *
-     *
-     * @param string $dataMovementId
-     * @return \Airavata\Model\AppCatalog\ComputeResource\GridFTPDataMovement Data Movement through GridFTP
-     *
-     * alternativeSCPHostName:
-     *  If the login to scp is different than the hostname itself, specify it here
-     *
-     * sshPort:
-     *  If a non-default port needs to used, specify it.
-     *
-     * @throws \Airavata\API\Error\InvalidRequestException
-     * @throws \Airavata\API\Error\AiravataClientException
-     * @throws \Airavata\API\Error\AiravataSystemException
-     */
-    public function getGridFTPDataMovement($dataMovementId);
-
-    /**
-     * Change the priority of a given job submisison interface
-  

<TRUNCATED>