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/29 19:49:21 UTC

[49/50] [abbrv] airavata-php-gateway git commit: Merge branch '0.15-release-branch' of https://git-wip-us.apache.org/repos/asf/airavata-php-gateway

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/6a84103e/app/libraries/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --cc app/libraries/Airavata/API/Airavata.php
index 8fe34f7,7ec2f28..fba2a7c
--- a/app/libraries/Airavata/API/Airavata.php
+++ b/app/libraries/Airavata/API/Airavata.php
@@@ -17,2474 -17,134 +17,2700 @@@ use Thrift\Exception\TApplicationExcept
  
  
  interface AiravataIf {
 -  public function getAPIVersion();
 -  public function addGateway(\Airavata\Model\Workspace\Gateway $gateway);
 -  public function updateGateway($gatewayId, \Airavata\Model\Workspace\Gateway $updatedGateway);
 -  public function getGateway($gatewayId);
 -  public function deleteGateway($gatewayId);
 -  public function getAllGateways();
 -  public function isGatewayExist($gatewayId);
 +  /**
 +   * 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\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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function addGateway(\Airavata\Model\Workspace\Gateway $gateway);
++  public function addGateway(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Workspace\Gateway $gateway);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param \Airavata\Model\Workspace\Gateway $updatedGateway
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function updateGateway($gatewayId, \Airavata\Model\Workspace\Gateway $updatedGateway);
++  public function updateGateway(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\Workspace\Gateway $updatedGateway);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @return \Airavata\Model\Workspace\Gateway
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getGateway($gatewayId);
++  public function getGateway(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @return bool
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function deleteGateway($gatewayId);
++  public function deleteGateway(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @return \Airavata\Model\Workspace\Gateway[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAllGateways();
++  public function getAllGateways(\Airavata\Model\Security\AuthzToken $authzToken);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @return bool
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function isGatewayExist($gatewayId);
++  public function isGatewayExist(\Airavata\Model\Security\AuthzToken $authzToken, $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);
 -  public function createProject($gatewayId, \Airavata\Model\Workspace\Project $project);
 -  public function updateProject($projectId, \Airavata\Model\Workspace\Project $updatedProject);
 -  public function getProject($projectId);
 -  public function deleteProject($projectId);
 +  /**
 +   * 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 workspace_model
 +   * 
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function createProject($gatewayId, \Airavata\Model\Workspace\Project $project);
++  public function createProject(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\Workspace\Project $project);
 +  /**
 +   * Update a Project
 +   * 
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function updateProject($projectId, \Airavata\Model\Workspace\Project $updatedProject);
++  public function updateProject(\Airavata\Model\Security\AuthzToken $authzToken, $projectId, \Airavata\Model\Workspace\Project $updatedProject);
 +  /**
 +   * Get a Project by ID
 +   * 
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getProject($projectId);
++  public function getProject(\Airavata\Model\Security\AuthzToken $authzToken, $projectId);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function deleteProject($projectId);
++  public function deleteProject(\Airavata\Model\Security\AuthzToken $authzToken, $projectId);
 +  /**
 +   *   * Get all Project by user
 +   *   *
 +   *   * @param gatewayId
 +   *   *    The identifier for the requested gateway.
 +   *   *
 +   *   * @param userName
 +   *   *    The Project Object described in the workspace_model
 +   *   * @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);
 -  public function getAllUserProjectsWithPagination($gatewayId, $userName, $limit, $offset);
 +  /**
 +   *   * 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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAllUserProjectsWithPagination($gatewayId, $userName, $limit, $offset);
++  public function getAllUserProjectsWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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);
 -  public function searchProjectsByProjectNameWithPagination($gatewayId, $userName, $projectName, $limit, $offset);
 +  /**
 +   * 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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function searchProjectsByProjectNameWithPagination($gatewayId, $userName, $projectName, $limit, $offset);
++  public function searchProjectsByProjectNameWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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);
 -  public function searchProjectsByProjectDescWithPagination($gatewayId, $userName, $description, $limit, $offset);
 +  /**
 +   * 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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function searchProjectsByProjectDescWithPagination($gatewayId, $userName, $description, $limit, $offset);
++  public function searchProjectsByProjectDescWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
 +   */
    public function searchExperimentsByName($gatewayId, $userName, $expName);
 -  public function searchExperimentsByNameWithPagination($gatewayId, $userName, $expName, $limit, $offset);
 +  /**
 +   * 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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param string $userName
 +   * @param string $expName
 +   * @param int $limit
 +   * @param int $offset
 +   * @return \Airavata\Model\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function searchExperimentsByNameWithPagination($gatewayId, $userName, $expName, $limit, $offset);
++  public function searchExperimentsByNameWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
 +   */
    public function searchExperimentsByDesc($gatewayId, $userName, $description);
 -  public function searchExperimentsByDescWithPagination($gatewayId, $userName, $description, $limit, $offset);
 +  /**
 +   * 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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param string $userName
 +   * @param string $description
 +   * @param int $limit
 +   * @param int $offset
 +   * @return \Airavata\Model\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function searchExperimentsByDescWithPagination($gatewayId, $userName, $description, $limit, $offset);
++  public function searchExperimentsByDescWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
 +   */
    public function searchExperimentsByApplication($gatewayId, $userName, $applicationId);
 -  public function searchExperimentsByApplicationWithPagination($gatewayId, $userName, $applicationId, $limit, $offset);
 +  /**
 +   * 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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param string $userName
 +   * @param string $applicationId
 +   * @param int $limit
 +   * @param int $offset
 +   * @return \Airavata\Model\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function searchExperimentsByApplicationWithPagination($gatewayId, $userName, $applicationId, $limit, $offset);
++  public function searchExperimentsByApplicationWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
 +   */
    public function searchExperimentsByStatus($gatewayId, $userName, $experimentState);
 -  public function searchExperimentsByStatusWithPagination($gatewayId, $userName, $experimentState, $limit, $offset);
 +  /**
 +   * 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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param string $userName
 +   * @param int $experimentState
 +   * @param int $limit
 +   * @param int $offset
 +   * @return \Airavata\Model\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function searchExperimentsByStatusWithPagination($gatewayId, $userName, $experimentState, $limit, $offset);
++  public function searchExperimentsByStatusWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
 +   */
    public function searchExperimentsByCreationTime($gatewayId, $userName, $fromTime, $toTime);
 -  public function searchExperimentsByCreationTimeWithPagination($gatewayId, $userName, $fromTime, $toTime, $limit, $offset);
 -  public function searchExperiments($gatewayId, $userName, $filters, $limit, $offset);
 -  public function getExperimentStatistics($gatewayId, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param string $userName
 +   * @param int $fromTime
 +   * @param int $toTime
 +   * @param int $limit
 +   * @param int $offset
 +   * @return \Airavata\Model\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function searchExperimentsByCreationTimeWithPagination($gatewayId, $userName, $fromTime, $toTime, $limit, $offset);
++  public function searchExperimentsByCreationTimeWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param string $userName
 +   * @param array $filters
 +   * @param int $limit
 +   * @param int $offset
 +   * @return \Airavata\Model\Experiment\ExperimentSummaryModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function searchExperiments($gatewayId, $userName, array $filters, $limit, $offset);
++  public function searchExperiments(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param int $fromTime
 +   * @param int $toTime
 +   * @return \Airavata\Model\Experiment\ExperimentStatistics
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getExperimentStatistics($gatewayId, $fromTime, $toTime);
++  public function getExperimentStatistics(\Airavata\Model\Security\AuthzToken $authzToken, $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\Experiment\ExperimentModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
 +   * @throws \Airavata\API\Error\ProjectNotFoundException
 +   */
    public function getAllExperimentsInProject($projectId);
 -  public function getAllExperimentsInProjectWithPagination($projectId, $limit, $offset);
 +  /**
 +   * 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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $projectId
 +   * @param int $limit
 +   * @param int $offset
 +   * @return \Airavata\Model\Experiment\ExperimentModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
 +   * @throws \Airavata\API\Error\ProjectNotFoundException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAllExperimentsInProjectWithPagination($projectId, $limit, $offset);
++  public function getAllExperimentsInProjectWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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\Experiment\ExperimentModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
 +   */
    public function getAllUserExperiments($gatewayId, $userName);
 -  public function getAllUserExperimentsWithPagination($gatewayId, $userName, $limit, $offset);
 -  public function createExperiment($gatewayId, \Airavata\Model\Workspace\Experiment\Experiment $experiment);
 -  public function getExperiment($airavataExperimentId);
 -  public function updateExperiment($airavataExperimentId, \Airavata\Model\Workspace\Experiment\Experiment $experiment);
 -  public function updateExperimentConfiguration($airavataExperimentId, \Airavata\Model\Workspace\Experiment\UserConfigurationData $userConfiguration);
 -  public function updateResourceScheduleing($airavataExperimentId, \Airavata\Model\Workspace\Experiment\ComputationalResourceScheduling $resourceScheduling);
 -  public function validateExperiment($airavataExperimentId);
 -  public function launchExperiment($airavataExperimentId, $airavataCredStoreToken);
 -  public function getExperimentStatus($airavataExperimentId);
 -  public function getExperimentOutputs($airavataExperimentId);
 -  public function getIntermediateOutputs($airavataExperimentId);
 -  public function getJobStatuses($airavataExperimentId);
 -  public function getJobDetails($airavataExperimentId);
 -  public function getDataTransferDetails($airavataExperimentId);
 -  public function cloneExperiment($existingExperimentID, $newExperimentName);
 -  public function terminateExperiment($airavataExperimentId, $tokenId);
 -  public function registerApplicationModule($gatewayId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule);
 -  public function getApplicationModule($appModuleId);
 -  public function updateApplicationModule($appModuleId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule);
 -  public function getAllAppModules($gatewayId);
 -  public function deleteApplicationModule($appModuleId);
 -  public function registerApplicationDeployment($gatewayId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription $applicationDeployment);
 -  public function getApplicationDeployment($appDeploymentId);
 -  public function updateApplicationDeployment($appDeploymentId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription $applicationDeployment);
 -  public function deleteApplicationDeployment($appDeploymentId);
 -  public function getAllApplicationDeployments($gatewayId);
 -  public function getAppModuleDeployedResources($appModuleId);
 -  public function registerApplicationInterface($gatewayId, \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription $applicationInterface);
 -  public function getApplicationInterface($appInterfaceId);
 -  public function updateApplicationInterface($appInterfaceId, \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription $applicationInterface);
 -  public function deleteApplicationInterface($appInterfaceId);
 -  public function getAllApplicationInterfaceNames($gatewayId);
 -  public function getAllApplicationInterfaces($gatewayId);
 -  public function getApplicationInputs($appInterfaceId);
 -  public function getApplicationOutputs($appInterfaceId);
 -  public function getAvailableAppInterfaceComputeResources($appInterfaceId);
 -  public function registerComputeResource(\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription);
 -  public function getComputeResource($computeResourceId);
 -  public function getAllComputeResourceNames();
 -  public function updateComputeResource($computeResourceId, \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription);
 -  public function deleteComputeResource($computeResourceId);
 -  public function addLocalSubmissionDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\LOCALSubmission $localSubmission);
 -  public function updateLocalSubmissionDetails($jobSubmissionInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\LOCALSubmission $localSubmission);
 -  public function getLocalJobSubmission($jobSubmissionId);
 -  public function addSSHJobSubmissionDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\SSHJobSubmission $sshJobSubmission);
 -  public function getSSHJobSubmission($jobSubmissionId);
 -  public function addUNICOREJobSubmissionDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\UnicoreJobSubmission $unicoreJobSubmission);
 -  public function getUnicoreJobSubmission($jobSubmissionId);
 -  public function addCloudJobSubmissionDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\CloudJobSubmission $cloudSubmission);
 -  public function getCloudJobSubmission($jobSubmissionId);
 -  public function updateSSHJobSubmissionDetails($jobSubmissionInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\SSHJobSubmission $sshJobSubmission);
 -  public function updateCloudJobSubmissionDetails($jobSubmissionInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\CloudJobSubmission $sshJobSubmission);
 -  public function updateUnicoreJobSubmissionDetails($jobSubmissionInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\UnicoreJobSubmission $unicoreJobSubmission);
 -  public function addLocalDataMovementDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\LOCALDataMovement $localDataMovement);
 -  public function updateLocalDataMovementDetails($dataMovementInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\LOCALDataMovement $localDataMovement);
 -  public function getLocalDataMovement($dataMovementId);
 -  public function addSCPDataMovementDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\SCPDataMovement $scpDataMovement);
 -  public function updateSCPDataMovementDetails($dataMovementInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\SCPDataMovement $scpDataMovement);
 -  public function getSCPDataMovement($dataMovementId);
 -  public function addUnicoreDataMovementDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\UnicoreDataMovement $unicoreDataMovement);
 -  public function updateUnicoreDataMovementDetails($dataMovementInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\UnicoreDataMovement $unicoreDataMovement);
 -  public function getUnicoreDataMovement($dataMovementId);
 -  public function addGridFTPDataMovementDetails($computeResourceId, $priorityOrder, \Airavata\Model\AppCatalog\ComputeResource\GridFTPDataMovement $gridFTPDataMovement);
 -  public function updateGridFTPDataMovementDetails($dataMovementInterfaceId, \Airavata\Model\AppCatalog\ComputeResource\GridFTPDataMovement $gridFTPDataMovement);
 -  public function getGridFTPDataMovement($dataMovementId);
 -  public function changeJobSubmissionPriority($jobSubmissionInterfaceId, $newPriorityOrder);
 -  public function changeDataMovementPriority($dataMovementInterfaceId, $newPriorityOrder);
 -  public function changeJobSubmissionPriorities($jobSubmissionPriorityMap);
 -  public function changeDataMovementPriorities($dataMovementPriorityMap);
 -  public function deleteJobSubmissionInterface($computeResourceId, $jobSubmissionInterfaceId);
 -  public function deleteDataMovementInterface($computeResourceId, $dataMovementInterfaceId);
 -  public function registerResourceJobManager(\Airavata\Model\AppCatalog\ComputeResource\ResourceJobManager $resourceJobManager);
 -  public function updateResourceJobManager($resourceJobManagerId, \Airavata\Model\AppCatalog\ComputeResource\ResourceJobManager $updatedResourceJobManager);
 -  public function getResourceJobManager($resourceJobManagerId);
 -  public function deleteResourceJobManager($resourceJobManagerId);
 -  public function deleteBatchQueue($computeResourceId, $queueName);
 -  public function registerGatewayResourceProfile(\Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile $gatewayResourceProfile);
 -  public function getGatewayResourceProfile($gatewayID);
 -  public function updateGatewayResourceProfile($gatewayID, \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile $gatewayResourceProfile);
 -  public function deleteGatewayResourceProfile($gatewayID);
 -  public function addGatewayComputeResourcePreference($gatewayID, $computeResourceId, \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference $computeResourcePreference);
 -  public function getGatewayComputeResourcePreference($gatewayID, $computeResourceId);
 -  public function getAllGatewayComputeResourcePreferences($gatewayID);
 -  public function getAllGatewayComputeResources();
 -  public function updateGatewayComputeResourcePreference($gatewayID, $computeResourceId, \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference $computeResourcePreference);
 -  public function deleteGatewayComputeResourcePreference($gatewayID, $computeResourceId);
 -  public function getAllWorkflows($gatewayId);
 -  public function getWorkflow($workflowTemplateId);
 -  public function deleteWorkflow($workflowTemplateId);
 -  public function registerWorkflow($gatewayId, \Airavata\Model\Workflow $workflow);
 -  public function updateWorkflow($workflowTemplateId, \Airavata\Model\Workflow $workflow);
 -  public function getWorkflowTemplateId($workflowName);
 -  public function isWorkflowExistWithName($workflowName);
 +  /**
 +   * 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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param string $userName
 +   * @param int $limit
 +   * @param int $offset
 +   * @return \Airavata\Model\Experiment\ExperimentModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAllUserExperimentsWithPagination($gatewayId, $userName, $limit, $offset);
++  public function getAllUserExperimentsWithPagination(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @param \Airavata\Model\Experiment\ExperimentModel $experiment
 +   * @return string
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function createExperiment($gatewayId, \Airavata\Model\Experiment\ExperimentModel $experiment);
++  public function createExperiment(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\Experiment\ExperimentModel $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $airavataExperimentId
 +   * @return \Airavata\Model\Experiment\ExperimentModel 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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getExperiment($airavataExperimentId);
++  public function getExperiment(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $airavataExperimentId
 +   * @param \Airavata\Model\Experiment\ExperimentModel $experiment
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\ExperimentNotFoundException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function updateExperiment($airavataExperimentId, \Airavata\Model\Experiment\ExperimentModel $experiment);
++  public function updateExperiment(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, \Airavata\Model\Experiment\ExperimentModel $experiment);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $airavataExperimentId
 +   * @param \Airavata\Model\Experiment\UserConfigurationDataModel $userConfiguration
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function updateExperimentConfiguration($airavataExperimentId, \Airavata\Model\Experiment\UserConfigurationDataModel $userConfiguration);
++  public function updateExperimentConfiguration(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, \Airavata\Model\Experiment\UserConfigurationDataModel $userConfiguration);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $airavataExperimentId
 +   * @param \Airavata\Model\Scheduling\ComputationalResourceSchedulingModel $resourceScheduling
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function updateResourceScheduleing($airavataExperimentId, \Airavata\Model\Scheduling\ComputationalResourceSchedulingModel $resourceScheduling);
++  public function updateResourceScheduleing(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, \Airavata\Model\Scheduling\ComputationalResourceSchedulingModel $resourceScheduling);
 +  /**
 +   *  *
 +   *  * Validate experiment configuration. A true in general indicates, the experiment is ready to be launched.
 +   *  *
 +   *  * @param experimentID
 +   *  * @return sucess/failure
 +   *  *
 +   * *
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function validateExperiment($airavataExperimentId);
++  public function validateExperiment(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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\AuthorizationException
 +   */
-   public function launchExperiment($airavataExperimentId, $airavataCredStoreToken);
++  public function launchExperiment(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId, $airavataCredStoreToken);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $airavataExperimentId
 +   * @return \Airavata\Model\Status\ExperimentStatus Status: A generic status object.
 +   * 
 +   * state:
 +   *   State .
 +   * 
 +   * timeOfStateChange:
 +   *   time the status was last updated.
 +   * 
 +   * reason:
 +   *   User friendly reason on how the state is inferred.
 +   * 
 +   * 
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\ExperimentNotFoundException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getExperimentStatus($airavataExperimentId);
++  public function getExperimentStatus(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $airavataExperimentId
 +   * @return \Airavata\Model\Application\Io\OutputDataObjectType[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\ExperimentNotFoundException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getExperimentOutputs($airavataExperimentId);
++  public function getExperimentOutputs(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $airavataExperimentId
 +   * @return \Airavata\Model\Application\Io\OutputDataObjectType[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\ExperimentNotFoundException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getIntermediateOutputs($airavataExperimentId);
++  public function getIntermediateOutputs(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getJobStatuses($airavataExperimentId);
++  public function getJobStatuses(\Airavata\Model\Security\AuthzToken $authzToken, $airavataExperimentId);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $airavataExperimentId
 +   * @return \Airavata\Model\job\JobModel[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\ExperimentNotFoundException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getJobDetails($airavataExperimentId);
++  public function getJobDetails(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function cloneExperiment($existingExperimentID, $newExperimentName);
++  public function cloneExperiment(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function terminateExperiment($airavataExperimentId, $tokenId);
++  public function terminateExperiment(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function registerApplicationModule($gatewayId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule);
++  public function registerApplicationModule(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getApplicationModule($appModuleId);
++  public function getApplicationModule(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function updateApplicationModule($appModuleId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule);
++  public function updateApplicationModule(\Airavata\Model\Security\AuthzToken $authzToken, $appModuleId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule);
 +  /**
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @return \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAllAppModules($gatewayId);
++  public function getAllAppModules(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $appModuleId
 +   * @return bool
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function deleteApplicationModule($appModuleId);
++  public function deleteApplicationModule(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function registerApplicationDeployment($gatewayId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription $applicationDeployment);
++  public function registerApplicationDeployment(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getApplicationDeployment($appDeploymentId);
++  public function getApplicationDeployment(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function updateApplicationDeployment($appDeploymentId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription $applicationDeployment);
++  public function updateApplicationDeployment(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $appDeploymentId
 +   * @return bool
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function deleteApplicationDeployment($appDeploymentId);
++  public function deleteApplicationDeployment(\Airavata\Model\Security\AuthzToken $authzToken, $appDeploymentId);
 +  /**
 +   * Fetch all Application Deployment Descriptions.
 +   * 
 +   * @return list<applicationDeployment.
 +   *   Returns the list of all application Deployment Objects.
 +   * 
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @return \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAllApplicationDeployments($gatewayId);
++  public function getAllApplicationDeployments(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $appModuleId
 +   * @return string[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAppModuleDeployedResources($appModuleId);
++  public function getAppModuleDeployedResources(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function registerApplicationInterface($gatewayId, \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription $applicationInterface);
++  public function registerApplicationInterface(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getApplicationInterface($appInterfaceId);
++  public function getApplicationInterface(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function updateApplicationInterface($appInterfaceId, \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription $applicationInterface);
++  public function updateApplicationInterface(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $appInterfaceId
 +   * @return bool
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function deleteApplicationInterface($appInterfaceId);
++  public function deleteApplicationInterface(\Airavata\Model\Security\AuthzToken $authzToken, $appInterfaceId);
 +  /**
 +   * Fetch name and id of  Application Interface documents.
 +   * 
 +   * 
 +   * @return map<applicationId, applicationInterfaceNames>
 +   *   Returns a list of application interfaces with corresponsing id's
 +   * 
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @return array
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAllApplicationInterfaceNames($gatewayId);
++  public function getAllApplicationInterfaceNames(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId);
 +  /**
 +   * Fetch all Application Interface documents.
 +   * 
 +   * 
 +   * @return map<applicationId, applicationInterfaceNames>
 +   *   Returns a list of application interfaces documents
 +   * 
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $gatewayId
 +   * @return \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAllApplicationInterfaces($gatewayId);
++  public function getAllApplicationInterfaces(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId);
 +  /**
 +   * Fetch the list of Application Inputs.
 +   * 
 +   * @param appInterfaceId
 +   *   The identifier for the requested application interface
 +   * 
 +   * @return list<application_interface_model.InputDataObjectType>
 +   *   Returns a list of application inputs.
 +   * 
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $appInterfaceId
 +   * @return \Airavata\Model\Application\Io\InputDataObjectType[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getApplicationInputs($appInterfaceId);
++  public function getApplicationInputs(\Airavata\Model\Security\AuthzToken $authzToken, $appInterfaceId);
 +  /**
 +   * Fetch the list of Application Outputs.
 +   * 
 +   * @param appInterfaceId
 +   *   The identifier for the requested application interface
 +   * 
 +   * @return list<application_interface_model.OutputDataObjectType>
 +   *   Returns a list of application outputs.
 +   * 
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $appInterfaceId
 +   * @return \Airavata\Model\Application\Io\OutputDataObjectType[]
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getApplicationOutputs($appInterfaceId);
++  public function getApplicationOutputs(\Airavata\Model\Security\AuthzToken $authzToken, $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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @param string $appInterfaceId
 +   * @return array
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAvailableAppInterfaceComputeResources($appInterfaceId);
++  public function getAvailableAppInterfaceComputeResources(\Airavata\Model\Security\AuthzToken $authzToken, $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\Security\AuthzToken $authzToken
 +   * @param \Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription
 +   * @return string
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function registerComputeResource(\Airavata\Model\AppCatalog\ComputeResource\ComputeResourceDescription $computeResourceDescription);
++  public function registerComputeResource(\Airavata\Model\Security\AuthzToken $authzToken, \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 \Airavata\Model\Security\AuthzToken $authzToken
 +   * @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
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getComputeResource($computeResourceId);
++  public function getComputeResource(\Airavata\Model\Security\AuthzToken $authzToken, $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..
 +   * 
 +   * 
++   * @param \Airavata\Model\Security\AuthzToken $authzToken
 +   * @return array
 +   * @throws \Airavata\API\Error\InvalidRequestException
 +   * @throws \Airavata\API\Error\AiravataClientException
 +   * @throws \Airavata\API\Error\AiravataSystemException
++   * @throws \Airavata\API\Error\AuthorizationException
 +   */
-   public function getAllComput

<TRUNCATED>