AIRAVATA-2840 Regenerated Thrift stubs
diff --git a/app/libraries/Airavata/API/Airavata.php b/app/libraries/Airavata/API/Airavata.php
index cbb5274..d96fd62 100644
--- a/app/libraries/Airavata/API/Airavata.php
+++ b/app/libraries/Airavata/API/Airavata.php
@@ -246,19 +246,9 @@
   /**
    * 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.
-   * 
    * @param description
    *    The description field for a credential type, all type of credential can have a description.
    * 
-   * @param credentialOwnerType
-   *    The type of owner of this credential. Two possible values: GATEWAY (default) and USER
-   * 
    * @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.
@@ -266,26 +256,16 @@
    * 
    * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param string $gatewayId
-   * @param string $userName
    * @param string $description
-   * @param int $credentialOwnerType
    * @return string
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    */
-  public function generateAndRegisterSSHKeys(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $userName, $description, $credentialOwnerType);
+  public function generateAndRegisterSSHKeys(\Airavata\Model\Security\AuthzToken $authzToken, $description);
   /**
    * Generate and Register Username PWD Pair with Airavata Credential Store.
    * 
-   * @param gatewayId
-   *    The identifier for the requested Gateway.
-   * 
-   * @param portalUserName
-   *    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.
-   * 
    * @param loginUserName
    * 
    * @param password
@@ -297,8 +277,6 @@
    * 
    * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param string $gatewayId
-   * @param string $portalUserName
    * @param string $loginUserName
    * @param string $password
    * @param string $description
@@ -307,116 +285,27 @@
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    */
-  public function registerPwdCredential(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $portalUserName, $loginUserName, $password, $description);
+  public function registerPwdCredential(\Airavata\Model\Security\AuthzToken $authzToken, $loginUserName, $password, $description);
   /**
-   * Get a Public Key by Providing the Token
-   * 
-   * @param CredStoreToken
-   *    Credential Store Token which you want to find the Public Key for.
-   * 
-   * @param gatewayId
-   *    This is the unique identifier of your gateway where the token and public key was generated from.
-   * 
-   * @return publicKey
-   * 
-   * 
-   * 
-   * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param string $airavataCredStoreToken
-   * @param string $gatewayId
-   * @return string
-   * @throws \Airavata\API\Error\InvalidRequestException
-   * @throws \Airavata\API\Error\AiravataClientException
-   * @throws \Airavata\API\Error\AiravataSystemException
-   */
-  public function getSSHPubKey(\Airavata\Model\Security\AuthzToken $authzToken, $airavataCredStoreToken, $gatewayId);
-  /**
-   * 
-   * Get all Public Keys of the Gateway
-   * 
-   * @param CredStoreToken
-   *    Credential Store Token which you want to find the Public Key for.
-   * 
-   * @param gatewayId
-   *    This is the unique identifier of your gateway where the token and public key was generated from.
-   * 
-   * @return publicKey
-   * 
-   * 
-   * 
-   * @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
-   */
-  public function getAllGatewaySSHPubKeys(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId);
-  /**
-   * 
-   * Get all Credential summaries for the Gateway
-   * 
-   * @param CredStoreToken
-   *    Credential Store Token which you want to find the Public Key for.
-   * 
-   * @param credential_store_data_models.SummaryType
-   *    Summary type : SSH,PASSWD or CERT
-   * 
-   * @param gatewayId
-   *    This is the unique identifier of your gateway where the token and public key was generated from.
-   * 
-   * @return List of Credential Summary Objects
-   * 
-   * 
-   * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param int $type
-   * @param string $gatewayId
+   * @param string $tokenId
+   * @return \Airavata\Model\Credential\Store\CredentialSummary
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getCredentialSummary(\Airavata\Model\Security\AuthzToken $authzToken, $type, $tokenId);
+  /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param int $type
    * @return \Airavata\Model\Credential\Store\CredentialSummary[]
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    */
-  public function getAllCredentialSummaryForGateway(\Airavata\Model\Security\AuthzToken $authzToken, $type, $gatewayId);
-  /**
-   * 
-   * Get all Credential summaries for user in a Gateway
-   * 
-   * @param CredStoreToken
-   *    Credential Store Token which you want to find the Public Key for.
-   * 
-   * @param credential_store_data_models.SummaryType
-   *    Summary type : SSH,PASSWD or CERT
-   * 
-   * @param gatewayId
-   *    This is the unique identifier of your gateway where the token and public key was generated from.
-   * 
-   * @param userId
-   *    This is the unique identifier of user whose public keys are to be fetched.
-   * 
-   * @return CredentialSummary
-   * 
-   * 
-   * 
-   * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param int $type
-   * @param string $gatewayId
-   * @param string $userId
-   * @return \Airavata\Model\Credential\Store\CredentialSummary[]
-   * @throws \Airavata\API\Error\InvalidRequestException
-   * @throws \Airavata\API\Error\AiravataClientException
-   * @throws \Airavata\API\Error\AiravataSystemException
-   */
-  public function getAllCredentialSummaryForUsersInGateway(\Airavata\Model\Security\AuthzToken $authzToken, $type, $gatewayId, $userId);
-  /**
-   * @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
-   */
-  public function getAllGatewayPWDCredentials(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId);
+  public function getAllCredentialSummaries(\Airavata\Model\Security\AuthzToken $authzToken, $type);
   /**
    * 
    * Delete a Gateway
@@ -436,6 +325,7 @@
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
    */
   public function deleteSSHPubKey(\Airavata\Model\Security\AuthzToken $authzToken, $airavataCredStoreToken, $gatewayId);
   /**
@@ -446,6 +336,7 @@
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
    */
   public function deletePWDCredential(\Airavata\Model\Security\AuthzToken $authzToken, $airavataCredStoreToken, $gatewayId);
   /**
@@ -1540,8 +1431,6 @@
    * 
    * @param gatewayId
    *    ID of the gateway which need to list all accessible application deployment documentation.
-   * @param permissionType
-   *    ResourcePermissionType to check for this user
    * 
    * @return list
    *    Returns the list of all Application Module Objects that are accessible to the user.
@@ -1549,14 +1438,13 @@
    * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $gatewayId
-   * @param int $permissionType
    * @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 getAccessibleAppModules(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $permissionType);
+  public function getAccessibleAppModules(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId);
   /**
    * 
    * Delete an Application Module.
@@ -1752,6 +1640,29 @@
    */
   public function getAppModuleDeployedResources(\Airavata\Model\Security\AuthzToken $authzToken, $appModuleId);
   /**
+   * Fetch a list of Application Deployments that this user can use for executing the given Application Module using the given Group Resource Profile.
+   * The user must have at least READ access to the Group Resource Profile.
+   * 
+   * @param appModuleId
+   *    The identifier for the Application Module
+   * 
+   * @param groupResourceProfileId
+   *    The identifier for the Group Resource Profile
+   * 
+   * @return list<ApplicationDeploymentDescription>
+   *    Returns a list of Application Deployments
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $appModuleId
+   * @param string $groupResourceProfileId
+   * @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 getApplicationDeploymentsForAppModuleAndGroupResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $appModuleId, $groupResourceProfileId);
+  /**
    * 
    * Register a Application Interface.
    * 
@@ -3573,8 +3484,7 @@
    * @param gatewayID
    *   The identifier to link a gateway for the requested user resource profile.
    * 
-   * @return UserResourceProfile
-   *    User Resource Profile Object.
+   * @return bool
    * 
    * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
@@ -4033,44 +3943,44 @@
    * 
    * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param string $workflowTemplateId
-   * @return \Airavata\Model\WorkflowModel
+   * @param string $workflowId
+   * @return \Airavata\Model\Workflow\AiravataWorkflow
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId);
+  public function getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowId);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param string $workflowTemplateId
+   * @param string $workflowId
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId);
+  public function deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowId);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $gatewayId
-   * @param \Airavata\Model\WorkflowModel $workflow
+   * @param \Airavata\Model\Workflow\AiravataWorkflow $workflow
    * @return string
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\WorkflowModel $workflow);
+  public function registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\Workflow\AiravataWorkflow $workflow);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
-   * @param string $workflowTemplateId
-   * @param \Airavata\Model\WorkflowModel $workflow
+   * @param string $workflowId
+   * @param \Airavata\Model\Workflow\AiravataWorkflow $workflow
    * @throws \Airavata\API\Error\InvalidRequestException
    * @throws \Airavata\API\Error\AiravataClientException
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId, \Airavata\Model\WorkflowModel $workflow);
+  public function updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowId, \Airavata\Model\Workflow\AiravataWorkflow $workflow);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $workflowName
@@ -4080,7 +3990,7 @@
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function getWorkflowTemplateId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName);
+  public function getWorkflowId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $workflowName
@@ -4150,7 +4060,6 @@
    * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $resourceId
-   * @param int $resourceType
    * @param array $userPermissionList
    * @return bool
    * @throws \Airavata\API\Error\InvalidRequestException
@@ -4158,11 +4067,10 @@
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList);
+  public function shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $userPermissionList);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $resourceId
-   * @param int $resourceType
    * @param array $groupPermissionList
    * @return bool
    * @throws \Airavata\API\Error\InvalidRequestException
@@ -4170,11 +4078,10 @@
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function shareResourceWithGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $groupPermissionList);
+  public function shareResourceWithGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $groupPermissionList);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $resourceId
-   * @param int $resourceType
    * @param array $userPermissionList
    * @return bool
    * @throws \Airavata\API\Error\InvalidRequestException
@@ -4182,11 +4089,10 @@
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList);
+  public function revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $userPermissionList);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $resourceId
-   * @param int $resourceType
    * @param array $groupPermissionList
    * @return bool
    * @throws \Airavata\API\Error\InvalidRequestException
@@ -4194,11 +4100,10 @@
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function revokeSharingOfResourceFromGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $groupPermissionList);
+  public function revokeSharingOfResourceFromGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $groupPermissionList);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $resourceId
-   * @param int $resourceType
    * @param int $permissionType
    * @return string[]
    * @throws \Airavata\API\Error\InvalidRequestException
@@ -4206,7 +4111,18 @@
    * @throws \Airavata\API\Error\AiravataSystemException
    * @throws \Airavata\API\Error\AuthorizationException
    */
-  public function getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, $permissionType);
+  public function getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $permissionType);
+  /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $resourceId
+   * @param int $permissionType
+   * @return string[]
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getAllAccessibleGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $permissionType);
   /**
    * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $resourceId
@@ -5299,20 +5215,17 @@
     throw new \Exception("getAllNotifications failed: unknown result");
   }
 
-  public function generateAndRegisterSSHKeys(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $userName, $description, $credentialOwnerType)
+  public function generateAndRegisterSSHKeys(\Airavata\Model\Security\AuthzToken $authzToken, $description)
   {
-    $this->send_generateAndRegisterSSHKeys($authzToken, $gatewayId, $userName, $description, $credentialOwnerType);
+    $this->send_generateAndRegisterSSHKeys($authzToken, $description);
     return $this->recv_generateAndRegisterSSHKeys();
   }
 
-  public function send_generateAndRegisterSSHKeys(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $userName, $description, $credentialOwnerType)
+  public function send_generateAndRegisterSSHKeys(\Airavata\Model\Security\AuthzToken $authzToken, $description)
   {
     $args = new \Airavata\API\Airavata_generateAndRegisterSSHKeys_args();
     $args->authzToken = $authzToken;
-    $args->gatewayId = $gatewayId;
-    $args->userName = $userName;
     $args->description = $description;
-    $args->credentialOwnerType = $credentialOwnerType;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
@@ -5363,18 +5276,16 @@
     throw new \Exception("generateAndRegisterSSHKeys failed: unknown result");
   }
 
-  public function registerPwdCredential(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $portalUserName, $loginUserName, $password, $description)
+  public function registerPwdCredential(\Airavata\Model\Security\AuthzToken $authzToken, $loginUserName, $password, $description)
   {
-    $this->send_registerPwdCredential($authzToken, $gatewayId, $portalUserName, $loginUserName, $password, $description);
+    $this->send_registerPwdCredential($authzToken, $loginUserName, $password, $description);
     return $this->recv_registerPwdCredential();
   }
 
-  public function send_registerPwdCredential(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $portalUserName, $loginUserName, $password, $description)
+  public function send_registerPwdCredential(\Airavata\Model\Security\AuthzToken $authzToken, $loginUserName, $password, $description)
   {
     $args = new \Airavata\API\Airavata_registerPwdCredential_args();
     $args->authzToken = $authzToken;
-    $args->gatewayId = $gatewayId;
-    $args->portalUserName = $portalUserName;
     $args->loginUserName = $loginUserName;
     $args->password = $password;
     $args->description = $description;
@@ -5428,159 +5339,36 @@
     throw new \Exception("registerPwdCredential failed: unknown result");
   }
 
-  public function getSSHPubKey(\Airavata\Model\Security\AuthzToken $authzToken, $airavataCredStoreToken, $gatewayId)
+  public function getCredentialSummary(\Airavata\Model\Security\AuthzToken $authzToken, $type, $tokenId)
   {
-    $this->send_getSSHPubKey($authzToken, $airavataCredStoreToken, $gatewayId);
-    return $this->recv_getSSHPubKey();
+    $this->send_getCredentialSummary($authzToken, $type, $tokenId);
+    return $this->recv_getCredentialSummary();
   }
 
-  public function send_getSSHPubKey(\Airavata\Model\Security\AuthzToken $authzToken, $airavataCredStoreToken, $gatewayId)
+  public function send_getCredentialSummary(\Airavata\Model\Security\AuthzToken $authzToken, $type, $tokenId)
   {
-    $args = new \Airavata\API\Airavata_getSSHPubKey_args();
-    $args->authzToken = $authzToken;
-    $args->airavataCredStoreToken = $airavataCredStoreToken;
-    $args->gatewayId = $gatewayId;
-    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
-    if ($bin_accel)
-    {
-      thrift_protocol_write_binary($this->output_, 'getSSHPubKey', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
-    }
-    else
-    {
-      $this->output_->writeMessageBegin('getSSHPubKey', TMessageType::CALL, $this->seqid_);
-      $args->write($this->output_);
-      $this->output_->writeMessageEnd();
-      $this->output_->getTransport()->flush();
-    }
-  }
-
-  public function recv_getSSHPubKey()
-  {
-    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getSSHPubKey_result', $this->input_->isStrictRead());
-    else
-    {
-      $rseqid = 0;
-      $fname = null;
-      $mtype = 0;
-
-      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
-      if ($mtype == TMessageType::EXCEPTION) {
-        $x = new TApplicationException();
-        $x->read($this->input_);
-        $this->input_->readMessageEnd();
-        throw $x;
-      }
-      $result = new \Airavata\API\Airavata_getSSHPubKey_result();
-      $result->read($this->input_);
-      $this->input_->readMessageEnd();
-    }
-    if ($result->success !== null) {
-      return $result->success;
-    }
-    if ($result->ire !== null) {
-      throw $result->ire;
-    }
-    if ($result->ace !== null) {
-      throw $result->ace;
-    }
-    if ($result->ase !== null) {
-      throw $result->ase;
-    }
-    throw new \Exception("getSSHPubKey failed: unknown result");
-  }
-
-  public function getAllGatewaySSHPubKeys(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
-  {
-    $this->send_getAllGatewaySSHPubKeys($authzToken, $gatewayId);
-    return $this->recv_getAllGatewaySSHPubKeys();
-  }
-
-  public function send_getAllGatewaySSHPubKeys(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
-  {
-    $args = new \Airavata\API\Airavata_getAllGatewaySSHPubKeys_args();
-    $args->authzToken = $authzToken;
-    $args->gatewayId = $gatewayId;
-    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
-    if ($bin_accel)
-    {
-      thrift_protocol_write_binary($this->output_, 'getAllGatewaySSHPubKeys', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
-    }
-    else
-    {
-      $this->output_->writeMessageBegin('getAllGatewaySSHPubKeys', TMessageType::CALL, $this->seqid_);
-      $args->write($this->output_);
-      $this->output_->writeMessageEnd();
-      $this->output_->getTransport()->flush();
-    }
-  }
-
-  public function recv_getAllGatewaySSHPubKeys()
-  {
-    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllGatewaySSHPubKeys_result', $this->input_->isStrictRead());
-    else
-    {
-      $rseqid = 0;
-      $fname = null;
-      $mtype = 0;
-
-      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
-      if ($mtype == TMessageType::EXCEPTION) {
-        $x = new TApplicationException();
-        $x->read($this->input_);
-        $this->input_->readMessageEnd();
-        throw $x;
-      }
-      $result = new \Airavata\API\Airavata_getAllGatewaySSHPubKeys_result();
-      $result->read($this->input_);
-      $this->input_->readMessageEnd();
-    }
-    if ($result->success !== null) {
-      return $result->success;
-    }
-    if ($result->ire !== null) {
-      throw $result->ire;
-    }
-    if ($result->ace !== null) {
-      throw $result->ace;
-    }
-    if ($result->ase !== null) {
-      throw $result->ase;
-    }
-    throw new \Exception("getAllGatewaySSHPubKeys failed: unknown result");
-  }
-
-  public function getAllCredentialSummaryForGateway(\Airavata\Model\Security\AuthzToken $authzToken, $type, $gatewayId)
-  {
-    $this->send_getAllCredentialSummaryForGateway($authzToken, $type, $gatewayId);
-    return $this->recv_getAllCredentialSummaryForGateway();
-  }
-
-  public function send_getAllCredentialSummaryForGateway(\Airavata\Model\Security\AuthzToken $authzToken, $type, $gatewayId)
-  {
-    $args = new \Airavata\API\Airavata_getAllCredentialSummaryForGateway_args();
+    $args = new \Airavata\API\Airavata_getCredentialSummary_args();
     $args->authzToken = $authzToken;
     $args->type = $type;
-    $args->gatewayId = $gatewayId;
+    $args->tokenId = $tokenId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getAllCredentialSummaryForGateway', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getCredentialSummary', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getAllCredentialSummaryForGateway', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getCredentialSummary', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getAllCredentialSummaryForGateway()
+  public function recv_getCredentialSummary()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllCredentialSummaryForGateway_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getCredentialSummary_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -5594,7 +5382,7 @@
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getAllCredentialSummaryForGateway_result();
+      $result = new \Airavata\API\Airavata_getCredentialSummary_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -5610,40 +5398,41 @@
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("getAllCredentialSummaryForGateway failed: unknown result");
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    throw new \Exception("getCredentialSummary failed: unknown result");
   }
 
-  public function getAllCredentialSummaryForUsersInGateway(\Airavata\Model\Security\AuthzToken $authzToken, $type, $gatewayId, $userId)
+  public function getAllCredentialSummaries(\Airavata\Model\Security\AuthzToken $authzToken, $type)
   {
-    $this->send_getAllCredentialSummaryForUsersInGateway($authzToken, $type, $gatewayId, $userId);
-    return $this->recv_getAllCredentialSummaryForUsersInGateway();
+    $this->send_getAllCredentialSummaries($authzToken, $type);
+    return $this->recv_getAllCredentialSummaries();
   }
 
-  public function send_getAllCredentialSummaryForUsersInGateway(\Airavata\Model\Security\AuthzToken $authzToken, $type, $gatewayId, $userId)
+  public function send_getAllCredentialSummaries(\Airavata\Model\Security\AuthzToken $authzToken, $type)
   {
-    $args = new \Airavata\API\Airavata_getAllCredentialSummaryForUsersInGateway_args();
+    $args = new \Airavata\API\Airavata_getAllCredentialSummaries_args();
     $args->authzToken = $authzToken;
     $args->type = $type;
-    $args->gatewayId = $gatewayId;
-    $args->userId = $userId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getAllCredentialSummaryForUsersInGateway', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getAllCredentialSummaries', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getAllCredentialSummaryForUsersInGateway', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getAllCredentialSummaries', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getAllCredentialSummaryForUsersInGateway()
+  public function recv_getAllCredentialSummaries()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllCredentialSummaryForUsersInGateway_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllCredentialSummaries_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -5657,7 +5446,7 @@
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getAllCredentialSummaryForUsersInGateway_result();
+      $result = new \Airavata\API\Airavata_getAllCredentialSummaries_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -5673,68 +5462,7 @@
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("getAllCredentialSummaryForUsersInGateway failed: unknown result");
-  }
-
-  public function getAllGatewayPWDCredentials(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
-  {
-    $this->send_getAllGatewayPWDCredentials($authzToken, $gatewayId);
-    return $this->recv_getAllGatewayPWDCredentials();
-  }
-
-  public function send_getAllGatewayPWDCredentials(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
-  {
-    $args = new \Airavata\API\Airavata_getAllGatewayPWDCredentials_args();
-    $args->authzToken = $authzToken;
-    $args->gatewayId = $gatewayId;
-    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
-    if ($bin_accel)
-    {
-      thrift_protocol_write_binary($this->output_, 'getAllGatewayPWDCredentials', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
-    }
-    else
-    {
-      $this->output_->writeMessageBegin('getAllGatewayPWDCredentials', TMessageType::CALL, $this->seqid_);
-      $args->write($this->output_);
-      $this->output_->writeMessageEnd();
-      $this->output_->getTransport()->flush();
-    }
-  }
-
-  public function recv_getAllGatewayPWDCredentials()
-  {
-    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllGatewayPWDCredentials_result', $this->input_->isStrictRead());
-    else
-    {
-      $rseqid = 0;
-      $fname = null;
-      $mtype = 0;
-
-      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
-      if ($mtype == TMessageType::EXCEPTION) {
-        $x = new TApplicationException();
-        $x->read($this->input_);
-        $this->input_->readMessageEnd();
-        throw $x;
-      }
-      $result = new \Airavata\API\Airavata_getAllGatewayPWDCredentials_result();
-      $result->read($this->input_);
-      $this->input_->readMessageEnd();
-    }
-    if ($result->success !== null) {
-      return $result->success;
-    }
-    if ($result->ire !== null) {
-      throw $result->ire;
-    }
-    if ($result->ace !== null) {
-      throw $result->ace;
-    }
-    if ($result->ase !== null) {
-      throw $result->ase;
-    }
-    throw new \Exception("getAllGatewayPWDCredentials failed: unknown result");
+    throw new \Exception("getAllCredentialSummaries failed: unknown result");
   }
 
   public function deleteSSHPubKey(\Airavata\Model\Security\AuthzToken $authzToken, $airavataCredStoreToken, $gatewayId)
@@ -5796,6 +5524,9 @@
     if ($result->ase !== null) {
       throw $result->ase;
     }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
     throw new \Exception("deleteSSHPubKey failed: unknown result");
   }
 
@@ -5858,6 +5589,9 @@
     if ($result->ase !== null) {
       throw $result->ase;
     }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
     throw new \Exception("deletePWDCredential failed: unknown result");
   }
 
@@ -7968,18 +7702,17 @@
     throw new \Exception("getAllAppModules failed: unknown result");
   }
 
-  public function getAccessibleAppModules(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $permissionType)
+  public function getAccessibleAppModules(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
   {
-    $this->send_getAccessibleAppModules($authzToken, $gatewayId, $permissionType);
+    $this->send_getAccessibleAppModules($authzToken, $gatewayId);
     return $this->recv_getAccessibleAppModules();
   }
 
-  public function send_getAccessibleAppModules(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, $permissionType)
+  public function send_getAccessibleAppModules(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
   {
     $args = new \Airavata\API\Airavata_getAccessibleAppModules_args();
     $args->authzToken = $authzToken;
     $args->gatewayId = $gatewayId;
-    $args->permissionType = $permissionType;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
@@ -8548,6 +8281,71 @@
     throw new \Exception("getAppModuleDeployedResources failed: unknown result");
   }
 
+  public function getApplicationDeploymentsForAppModuleAndGroupResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $appModuleId, $groupResourceProfileId)
+  {
+    $this->send_getApplicationDeploymentsForAppModuleAndGroupResourceProfile($authzToken, $appModuleId, $groupResourceProfileId);
+    return $this->recv_getApplicationDeploymentsForAppModuleAndGroupResourceProfile();
+  }
+
+  public function send_getApplicationDeploymentsForAppModuleAndGroupResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $appModuleId, $groupResourceProfileId)
+  {
+    $args = new \Airavata\API\Airavata_getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args();
+    $args->authzToken = $authzToken;
+    $args->appModuleId = $appModuleId;
+    $args->groupResourceProfileId = $groupResourceProfileId;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getApplicationDeploymentsForAppModuleAndGroupResourceProfile', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getApplicationDeploymentsForAppModuleAndGroupResourceProfile', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getApplicationDeploymentsForAppModuleAndGroupResourceProfile()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    throw new \Exception("getApplicationDeploymentsForAppModuleAndGroupResourceProfile failed: unknown result");
+  }
+
   public function registerApplicationInterface(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription $applicationInterface)
   {
     $this->send_registerApplicationInterface($authzToken, $gatewayId, $applicationInterface);
@@ -14516,17 +14314,17 @@
     throw new \Exception("getLatestQueueStatuses failed: unknown result");
   }
 
-  public function getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
+  public function getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowId)
   {
-    $this->send_getWorkflow($authzToken, $workflowTemplateId);
+    $this->send_getWorkflow($authzToken, $workflowId);
     return $this->recv_getWorkflow();
   }
 
-  public function send_getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
+  public function send_getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowId)
   {
     $args = new \Airavata\API\Airavata_getWorkflow_args();
     $args->authzToken = $authzToken;
-    $args->workflowTemplateId = $workflowTemplateId;
+    $args->workflowId = $workflowId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
@@ -14580,17 +14378,17 @@
     throw new \Exception("getWorkflow failed: unknown result");
   }
 
-  public function deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
+  public function deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowId)
   {
-    $this->send_deleteWorkflow($authzToken, $workflowTemplateId);
+    $this->send_deleteWorkflow($authzToken, $workflowId);
     $this->recv_deleteWorkflow();
   }
 
-  public function send_deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
+  public function send_deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowId)
   {
     $args = new \Airavata\API\Airavata_deleteWorkflow_args();
     $args->authzToken = $authzToken;
-    $args->workflowTemplateId = $workflowTemplateId;
+    $args->workflowId = $workflowId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
@@ -14641,13 +14439,13 @@
     return;
   }
 
-  public function registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\WorkflowModel $workflow)
+  public function registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\Workflow\AiravataWorkflow $workflow)
   {
     $this->send_registerWorkflow($authzToken, $gatewayId, $workflow);
     return $this->recv_registerWorkflow();
   }
 
-  public function send_registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\WorkflowModel $workflow)
+  public function send_registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\Workflow\AiravataWorkflow $workflow)
   {
     $args = new \Airavata\API\Airavata_registerWorkflow_args();
     $args->authzToken = $authzToken;
@@ -14706,17 +14504,17 @@
     throw new \Exception("registerWorkflow failed: unknown result");
   }
 
-  public function updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId, \Airavata\Model\WorkflowModel $workflow)
+  public function updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowId, \Airavata\Model\Workflow\AiravataWorkflow $workflow)
   {
-    $this->send_updateWorkflow($authzToken, $workflowTemplateId, $workflow);
+    $this->send_updateWorkflow($authzToken, $workflowId, $workflow);
     $this->recv_updateWorkflow();
   }
 
-  public function send_updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId, \Airavata\Model\WorkflowModel $workflow)
+  public function send_updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowId, \Airavata\Model\Workflow\AiravataWorkflow $workflow)
   {
     $args = new \Airavata\API\Airavata_updateWorkflow_args();
     $args->authzToken = $authzToken;
-    $args->workflowTemplateId = $workflowTemplateId;
+    $args->workflowId = $workflowId;
     $args->workflow = $workflow;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
@@ -14768,35 +14566,35 @@
     return;
   }
 
-  public function getWorkflowTemplateId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
+  public function getWorkflowId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
   {
-    $this->send_getWorkflowTemplateId($authzToken, $workflowName);
-    return $this->recv_getWorkflowTemplateId();
+    $this->send_getWorkflowId($authzToken, $workflowName);
+    return $this->recv_getWorkflowId();
   }
 
-  public function send_getWorkflowTemplateId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
+  public function send_getWorkflowId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
   {
-    $args = new \Airavata\API\Airavata_getWorkflowTemplateId_args();
+    $args = new \Airavata\API\Airavata_getWorkflowId_args();
     $args->authzToken = $authzToken;
     $args->workflowName = $workflowName;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getWorkflowTemplateId', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getWorkflowId', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getWorkflowTemplateId', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getWorkflowId', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getWorkflowTemplateId()
+  public function recv_getWorkflowId()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getWorkflowTemplateId_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getWorkflowId_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -14810,7 +14608,7 @@
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getWorkflowTemplateId_result();
+      $result = new \Airavata\API\Airavata_getWorkflowId_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -14829,7 +14627,7 @@
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getWorkflowTemplateId failed: unknown result");
+    throw new \Exception("getWorkflowId failed: unknown result");
   }
 
   public function isWorkflowExistWithName(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
@@ -15216,18 +15014,17 @@
     throw new \Exception("getChildDataProducts failed: unknown result");
   }
 
-  public function shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
+  public function shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $userPermissionList)
   {
-    $this->send_shareResourceWithUsers($authzToken, $resourceId, $resourceType, $userPermissionList);
+    $this->send_shareResourceWithUsers($authzToken, $resourceId, $userPermissionList);
     return $this->recv_shareResourceWithUsers();
   }
 
-  public function send_shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
+  public function send_shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $userPermissionList)
   {
     $args = new \Airavata\API\Airavata_shareResourceWithUsers_args();
     $args->authzToken = $authzToken;
     $args->resourceId = $resourceId;
-    $args->resourceType = $resourceType;
     $args->userPermissionList = $userPermissionList;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
@@ -15282,18 +15079,17 @@
     throw new \Exception("shareResourceWithUsers failed: unknown result");
   }
 
-  public function shareResourceWithGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $groupPermissionList)
+  public function shareResourceWithGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $groupPermissionList)
   {
-    $this->send_shareResourceWithGroups($authzToken, $resourceId, $resourceType, $groupPermissionList);
+    $this->send_shareResourceWithGroups($authzToken, $resourceId, $groupPermissionList);
     return $this->recv_shareResourceWithGroups();
   }
 
-  public function send_shareResourceWithGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $groupPermissionList)
+  public function send_shareResourceWithGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $groupPermissionList)
   {
     $args = new \Airavata\API\Airavata_shareResourceWithGroups_args();
     $args->authzToken = $authzToken;
     $args->resourceId = $resourceId;
-    $args->resourceType = $resourceType;
     $args->groupPermissionList = $groupPermissionList;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
@@ -15348,18 +15144,17 @@
     throw new \Exception("shareResourceWithGroups failed: unknown result");
   }
 
-  public function revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
+  public function revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $userPermissionList)
   {
-    $this->send_revokeSharingOfResourceFromUsers($authzToken, $resourceId, $resourceType, $userPermissionList);
+    $this->send_revokeSharingOfResourceFromUsers($authzToken, $resourceId, $userPermissionList);
     return $this->recv_revokeSharingOfResourceFromUsers();
   }
 
-  public function send_revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
+  public function send_revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $userPermissionList)
   {
     $args = new \Airavata\API\Airavata_revokeSharingOfResourceFromUsers_args();
     $args->authzToken = $authzToken;
     $args->resourceId = $resourceId;
-    $args->resourceType = $resourceType;
     $args->userPermissionList = $userPermissionList;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
@@ -15414,18 +15209,17 @@
     throw new \Exception("revokeSharingOfResourceFromUsers failed: unknown result");
   }
 
-  public function revokeSharingOfResourceFromGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $groupPermissionList)
+  public function revokeSharingOfResourceFromGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $groupPermissionList)
   {
-    $this->send_revokeSharingOfResourceFromGroups($authzToken, $resourceId, $resourceType, $groupPermissionList);
+    $this->send_revokeSharingOfResourceFromGroups($authzToken, $resourceId, $groupPermissionList);
     return $this->recv_revokeSharingOfResourceFromGroups();
   }
 
-  public function send_revokeSharingOfResourceFromGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $groupPermissionList)
+  public function send_revokeSharingOfResourceFromGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, array $groupPermissionList)
   {
     $args = new \Airavata\API\Airavata_revokeSharingOfResourceFromGroups_args();
     $args->authzToken = $authzToken;
     $args->resourceId = $resourceId;
-    $args->resourceType = $resourceType;
     $args->groupPermissionList = $groupPermissionList;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
@@ -15480,18 +15274,17 @@
     throw new \Exception("revokeSharingOfResourceFromGroups failed: unknown result");
   }
 
-  public function getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, $permissionType)
+  public function getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $permissionType)
   {
-    $this->send_getAllAccessibleUsers($authzToken, $resourceId, $resourceType, $permissionType);
+    $this->send_getAllAccessibleUsers($authzToken, $resourceId, $permissionType);
     return $this->recv_getAllAccessibleUsers();
   }
 
-  public function send_getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, $permissionType)
+  public function send_getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $permissionType)
   {
     $args = new \Airavata\API\Airavata_getAllAccessibleUsers_args();
     $args->authzToken = $authzToken;
     $args->resourceId = $resourceId;
-    $args->resourceType = $resourceType;
     $args->permissionType = $permissionType;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
@@ -15546,6 +15339,71 @@
     throw new \Exception("getAllAccessibleUsers failed: unknown result");
   }
 
+  public function getAllAccessibleGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $permissionType)
+  {
+    $this->send_getAllAccessibleGroups($authzToken, $resourceId, $permissionType);
+    return $this->recv_getAllAccessibleGroups();
+  }
+
+  public function send_getAllAccessibleGroups(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $permissionType)
+  {
+    $args = new \Airavata\API\Airavata_getAllAccessibleGroups_args();
+    $args->authzToken = $authzToken;
+    $args->resourceId = $resourceId;
+    $args->permissionType = $permissionType;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'getAllAccessibleGroups', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('getAllAccessibleGroups', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_getAllAccessibleGroups()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllAccessibleGroups_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_getAllAccessibleGroups_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    }
+    if ($result->ace !== null) {
+      throw $result->ace;
+    }
+    if ($result->ase !== null) {
+      throw $result->ase;
+    }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
+    throw new \Exception("getAllAccessibleGroups failed: unknown result");
+  }
+
   public function userHasAccess(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $permissionType)
   {
     $this->send_userHasAccess($authzToken, $resourceId, $permissionType);
@@ -20634,19 +20492,7 @@
   /**
    * @var string
    */
-  public $gatewayId = null;
-  /**
-   * @var string
-   */
-  public $userName = null;
-  /**
-   * @var string
-   */
   public $description = null;
-  /**
-   * @var int
-   */
-  public $credentialOwnerType = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -20656,40 +20502,19 @@
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
-        2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'userName',
-          'type' => TType::STRING,
-          ),
         4 => array(
           'var' => 'description',
           'type' => TType::STRING,
           ),
-        5 => array(
-          'var' => 'credentialOwnerType',
-          'type' => TType::I32,
-          ),
         );
     }
     if (is_array($vals)) {
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['userName'])) {
-        $this->userName = $vals['userName'];
-      }
       if (isset($vals['description'])) {
         $this->description = $vals['description'];
       }
-      if (isset($vals['credentialOwnerType'])) {
-        $this->credentialOwnerType = $vals['credentialOwnerType'];
-      }
     }
   }
 
@@ -20720,20 +20545,6 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->userName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 4:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->description);
@@ -20741,13 +20552,6 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 5:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->credentialOwnerType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -20769,26 +20573,11 @@
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->userName !== null) {
-      $xfer += $output->writeFieldBegin('userName', TType::STRING, 3);
-      $xfer += $output->writeString($this->userName);
-      $xfer += $output->writeFieldEnd();
-    }
     if ($this->description !== null) {
       $xfer += $output->writeFieldBegin('description', TType::STRING, 4);
       $xfer += $output->writeString($this->description);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->credentialOwnerType !== null) {
-      $xfer += $output->writeFieldBegin('credentialOwnerType', TType::I32, 5);
-      $xfer += $output->writeI32($this->credentialOwnerType);
-      $xfer += $output->writeFieldEnd();
-    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -20956,14 +20745,6 @@
   /**
    * @var string
    */
-  public $gatewayId = null;
-  /**
-   * @var string
-   */
-  public $portalUserName = null;
-  /**
-   * @var string
-   */
   public $loginUserName = null;
   /**
    * @var string
@@ -20982,14 +20763,6 @@
           'type' => TType::STRUCT,
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
-        2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'portalUserName',
-          'type' => TType::STRING,
-          ),
         4 => array(
           'var' => 'loginUserName',
           'type' => TType::STRING,
@@ -21008,12 +20781,6 @@
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['portalUserName'])) {
-        $this->portalUserName = $vals['portalUserName'];
-      }
       if (isset($vals['loginUserName'])) {
         $this->loginUserName = $vals['loginUserName'];
       }
@@ -21053,20 +20820,6 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->portalUserName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 4:
           if ($ftype == TType::STRING) {
             $xfer += $input->readString($this->loginUserName);
@@ -21109,16 +20862,6 @@
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->portalUserName !== null) {
-      $xfer += $output->writeFieldBegin('portalUserName', TType::STRING, 3);
-      $xfer += $output->writeString($this->portalUserName);
-      $xfer += $output->writeFieldEnd();
-    }
     if ($this->loginUserName !== null) {
       $xfer += $output->writeFieldBegin('loginUserName', TType::STRING, 4);
       $xfer += $output->writeString($this->loginUserName);
@@ -21291,570 +21034,7 @@
 
 }
 
-class Airavata_getSSHPubKey_args {
-  static $_TSPEC;
-
-  /**
-   * @var \Airavata\Model\Security\AuthzToken
-   */
-  public $authzToken = null;
-  /**
-   * @var string
-   */
-  public $airavataCredStoreToken = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'authzToken',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Security\AuthzToken',
-          ),
-        2 => array(
-          'var' => 'airavataCredStoreToken',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['authzToken'])) {
-        $this->authzToken = $vals['authzToken'];
-      }
-      if (isset($vals['airavataCredStoreToken'])) {
-        $this->airavataCredStoreToken = $vals['airavataCredStoreToken'];
-      }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'Airavata_getSSHPubKey_args';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
-            $xfer += $this->authzToken->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->airavataCredStoreToken);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getSSHPubKey_args');
-    if ($this->authzToken !== null) {
-      if (!is_object($this->authzToken)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
-      $xfer += $this->authzToken->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->airavataCredStoreToken !== null) {
-      $xfer += $output->writeFieldBegin('airavataCredStoreToken', TType::STRING, 2);
-      $xfer += $output->writeString($this->airavataCredStoreToken);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 3);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class Airavata_getSSHPubKey_result {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $success = null;
-  /**
-   * @var \Airavata\API\Error\InvalidRequestException
-   */
-  public $ire = null;
-  /**
-   * @var \Airavata\API\Error\AiravataClientException
-   */
-  public $ace = null;
-  /**
-   * @var \Airavata\API\Error\AiravataSystemException
-   */
-  public $ase = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        0 => array(
-          'var' => 'success',
-          'type' => TType::STRING,
-          ),
-        1 => array(
-          'var' => 'ire',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\API\Error\InvalidRequestException',
-          ),
-        2 => array(
-          'var' => 'ace',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\API\Error\AiravataClientException',
-          ),
-        3 => array(
-          'var' => 'ase',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\API\Error\AiravataSystemException',
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['success'])) {
-        $this->success = $vals['success'];
-      }
-      if (isset($vals['ire'])) {
-        $this->ire = $vals['ire'];
-      }
-      if (isset($vals['ace'])) {
-        $this->ace = $vals['ace'];
-      }
-      if (isset($vals['ase'])) {
-        $this->ase = $vals['ase'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'Airavata_getSSHPubKey_result';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 0:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->success);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->ire = new \Airavata\API\Error\InvalidRequestException();
-            $xfer += $this->ire->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRUCT) {
-            $this->ace = new \Airavata\API\Error\AiravataClientException();
-            $xfer += $this->ace->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRUCT) {
-            $this->ase = new \Airavata\API\Error\AiravataSystemException();
-            $xfer += $this->ase->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getSSHPubKey_result');
-    if ($this->success !== null) {
-      $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
-      $xfer += $output->writeString($this->success);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ire !== null) {
-      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
-      $xfer += $this->ire->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ace !== null) {
-      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
-      $xfer += $this->ace->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ase !== null) {
-      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
-      $xfer += $this->ase->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class Airavata_getAllGatewaySSHPubKeys_args {
-  static $_TSPEC;
-
-  /**
-   * @var \Airavata\Model\Security\AuthzToken
-   */
-  public $authzToken = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'authzToken',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Security\AuthzToken',
-          ),
-        2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['authzToken'])) {
-        $this->authzToken = $vals['authzToken'];
-      }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'Airavata_getAllGatewaySSHPubKeys_args';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
-            $xfer += $this->authzToken->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGatewaySSHPubKeys_args');
-    if ($this->authzToken !== null) {
-      if (!is_object($this->authzToken)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
-      $xfer += $this->authzToken->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class Airavata_getAllGatewaySSHPubKeys_result {
-  static $_TSPEC;
-
-  /**
-   * @var array
-   */
-  public $success = null;
-  /**
-   * @var \Airavata\API\Error\InvalidRequestException
-   */
-  public $ire = null;
-  /**
-   * @var \Airavata\API\Error\AiravataClientException
-   */
-  public $ace = null;
-  /**
-   * @var \Airavata\API\Error\AiravataSystemException
-   */
-  public $ase = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        0 => array(
-          'var' => 'success',
-          'type' => TType::MAP,
-          'ktype' => TType::STRING,
-          'vtype' => TType::STRING,
-          'key' => array(
-            'type' => TType::STRING,
-          ),
-          'val' => array(
-            'type' => TType::STRING,
-            ),
-          ),
-        1 => array(
-          'var' => 'ire',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\API\Error\InvalidRequestException',
-          ),
-        2 => array(
-          'var' => 'ace',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\API\Error\AiravataClientException',
-          ),
-        3 => array(
-          'var' => 'ase',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\API\Error\AiravataSystemException',
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['success'])) {
-        $this->success = $vals['success'];
-      }
-      if (isset($vals['ire'])) {
-        $this->ire = $vals['ire'];
-      }
-      if (isset($vals['ace'])) {
-        $this->ace = $vals['ace'];
-      }
-      if (isset($vals['ase'])) {
-        $this->ase = $vals['ase'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'Airavata_getAllGatewaySSHPubKeys_result';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 0:
-          if ($ftype == TType::MAP) {
-            $this->success = array();
-            $_size21 = 0;
-            $_ktype22 = 0;
-            $_vtype23 = 0;
-            $xfer += $input->readMapBegin($_ktype22, $_vtype23, $_size21);
-            for ($_i25 = 0; $_i25 < $_size21; ++$_i25)
-            {
-              $key26 = '';
-              $val27 = '';
-              $xfer += $input->readString($key26);
-              $xfer += $input->readString($val27);
-              $this->success[$key26] = $val27;
-            }
-            $xfer += $input->readMapEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->ire = new \Airavata\API\Error\InvalidRequestException();
-            $xfer += $this->ire->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRUCT) {
-            $this->ace = new \Airavata\API\Error\AiravataClientException();
-            $xfer += $this->ace->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRUCT) {
-            $this->ase = new \Airavata\API\Error\AiravataSystemException();
-            $xfer += $this->ase->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGatewaySSHPubKeys_result');
-    if ($this->success !== null) {
-      if (!is_array($this->success)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('success', TType::MAP, 0);
-      {
-        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
-        {
-          foreach ($this->success as $kiter28 => $viter29)
-          {
-            $xfer += $output->writeString($kiter28);
-            $xfer += $output->writeString($viter29);
-          }
-        }
-        $output->writeMapEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ire !== null) {
-      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
-      $xfer += $this->ire->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ace !== null) {
-      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
-      $xfer += $this->ace->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ase !== null) {
-      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
-      $xfer += $this->ase->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class Airavata_getAllCredentialSummaryForGateway_args {
+class Airavata_getCredentialSummary_args {
   static $_TSPEC;
 
   /**
@@ -21868,7 +21048,7 @@
   /**
    * @var string
    */
-  public $gatewayId = null;
+  public $tokenId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -21883,7 +21063,7 @@
           'type' => TType::I32,
           ),
         3 => array(
-          'var' => 'gatewayId',
+          'var' => 'tokenId',
           'type' => TType::STRING,
           ),
         );
@@ -21895,14 +21075,14 @@
       if (isset($vals['type'])) {
         $this->type = $vals['type'];
       }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
+      if (isset($vals['tokenId'])) {
+        $this->tokenId = $vals['tokenId'];
       }
     }
   }
 
   public function getName() {
-    return 'Airavata_getAllCredentialSummaryForGateway_args';
+    return 'Airavata_getCredentialSummary_args';
   }
 
   public function read($input)
@@ -21937,7 +21117,7 @@
           break;
         case 3:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
+            $xfer += $input->readString($this->tokenId);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -21954,7 +21134,7 @@
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllCredentialSummaryForGateway_args');
+    $xfer += $output->writeStructBegin('Airavata_getCredentialSummary_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -21968,9 +21148,9 @@
       $xfer += $output->writeI32($this->type);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 3);
-      $xfer += $output->writeString($this->gatewayId);
+    if ($this->tokenId !== null) {
+      $xfer += $output->writeFieldBegin('tokenId', TType::STRING, 3);
+      $xfer += $output->writeString($this->tokenId);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -21980,11 +21160,11 @@
 
 }
 
-class Airavata_getAllCredentialSummaryForGateway_result {
+class Airavata_getCredentialSummary_result {
   static $_TSPEC;
 
   /**
-   * @var \Airavata\Model\Credential\Store\CredentialSummary[]
+   * @var \Airavata\Model\Credential\Store\CredentialSummary
    */
   public $success = null;
   /**
@@ -21999,18 +21179,18 @@
    * @var \Airavata\API\Error\AiravataSystemException
    */
   public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         0 => array(
           'var' => 'success',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Credential\Store\CredentialSummary',
-            ),
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Credential\Store\CredentialSummary',
           ),
         1 => array(
           'var' => 'ire',
@@ -22027,6 +21207,11 @@
           'type' => TType::STRUCT,
           'class' => '\Airavata\API\Error\AiravataSystemException',
           ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
         );
     }
     if (is_array($vals)) {
@@ -22042,11 +21227,14 @@
       if (isset($vals['ase'])) {
         $this->ase = $vals['ase'];
       }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
     }
   }
 
   public function getName() {
-    return 'Airavata_getAllCredentialSummaryForGateway_result';
+    return 'Airavata_getCredentialSummary_result';
   }
 
   public function read($input)
@@ -22065,19 +21253,9 @@
       switch ($fid)
       {
         case 0:
-          if ($ftype == TType::LST) {
-            $this->success = array();
-            $_size30 = 0;
-            $_etype33 = 0;
-            $xfer += $input->readListBegin($_etype33, $_size30);
-            for ($_i34 = 0; $_i34 < $_size30; ++$_i34)
-            {
-              $elem35 = null;
-              $elem35 = new \Airavata\Model\Credential\Store\CredentialSummary();
-              $xfer += $elem35->read($input);
-              $this->success []= $elem35;
-            }
-            $xfer += $input->readListEnd();
+          if ($ftype == TType::STRUCT) {
+            $this->success = new \Airavata\Model\Credential\Store\CredentialSummary();
+            $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -22106,160 +21284,10 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllCredentialSummaryForGateway_result');
-    if ($this->success !== null) {
-      if (!is_array($this->success)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->success));
-        {
-          foreach ($this->success as $iter36)
-          {
-            $xfer += $iter36->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ire !== null) {
-      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
-      $xfer += $this->ire->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ace !== null) {
-      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
-      $xfer += $this->ace->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ase !== null) {
-      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
-      $xfer += $this->ase->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class Airavata_getAllCredentialSummaryForUsersInGateway_args {
-  static $_TSPEC;
-
-  /**
-   * @var \Airavata\Model\Security\AuthzToken
-   */
-  public $authzToken = null;
-  /**
-   * @var int
-   */
-  public $type = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-  /**
-   * @var string
-   */
-  public $userId = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'authzToken',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Security\AuthzToken',
-          ),
-        2 => array(
-          'var' => 'type',
-          'type' => TType::I32,
-          ),
-        3 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        4 => array(
-          'var' => 'userId',
-          'type' => TType::STRING,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['authzToken'])) {
-        $this->authzToken = $vals['authzToken'];
-      }
-      if (isset($vals['type'])) {
-        $this->type = $vals['type'];
-      }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['userId'])) {
-        $this->userId = $vals['userId'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'Airavata_getAllCredentialSummaryForUsersInGateway_args';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
-            $xfer += $this->authzToken->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->type);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 4:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->userId);
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -22276,7 +21304,125 @@
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllCredentialSummaryForUsersInGateway_args');
+    $xfer += $output->writeStructBegin('Airavata_getCredentialSummary_result');
+    if ($this->success !== null) {
+      if (!is_object($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+      $xfer += $this->success->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllCredentialSummaries_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var int
+   */
+  public $type = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'type',
+          'type' => TType::I32,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['type'])) {
+        $this->type = $vals['type'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllCredentialSummaries_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->type);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllCredentialSummaries_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -22290,16 +21436,6 @@
       $xfer += $output->writeI32($this->type);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 3);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->userId !== null) {
-      $xfer += $output->writeFieldBegin('userId', TType::STRING, 4);
-      $xfer += $output->writeString($this->userId);
-      $xfer += $output->writeFieldEnd();
-    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -22307,7 +21443,7 @@
 
 }
 
-class Airavata_getAllCredentialSummaryForUsersInGateway_result {
+class Airavata_getAllCredentialSummaries_result {
   static $_TSPEC;
 
   /**
@@ -22373,7 +21509,7 @@
   }
 
   public function getName() {
-    return 'Airavata_getAllCredentialSummaryForUsersInGateway_result';
+    return 'Airavata_getAllCredentialSummaries_result';
   }
 
   public function read($input)
@@ -22394,15 +21530,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size37 = 0;
-            $_etype40 = 0;
-            $xfer += $input->readListBegin($_etype40, $_size37);
-            for ($_i41 = 0; $_i41 < $_size37; ++$_i41)
+            $_size21 = 0;
+            $_etype24 = 0;
+            $xfer += $input->readListBegin($_etype24, $_size21);
+            for ($_i25 = 0; $_i25 < $_size21; ++$_i25)
             {
-              $elem42 = null;
-              $elem42 = new \Airavata\Model\Credential\Store\CredentialSummary();
-              $xfer += $elem42->read($input);
-              $this->success []= $elem42;
+              $elem26 = null;
+              $elem26 = new \Airavata\Model\Credential\Store\CredentialSummary();
+              $xfer += $elem26->read($input);
+              $this->success []= $elem26;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -22445,7 +21581,7 @@
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllCredentialSummaryForUsersInGateway_result');
+    $xfer += $output->writeStructBegin('Airavata_getAllCredentialSummaries_result');
     if ($this->success !== null) {
       if (!is_array($this->success)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -22454,9 +21590,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter43)
+          foreach ($this->success as $iter27)
           {
-            $xfer += $iter43->write($output);
+            $xfer += $iter27->write($output);
           }
         }
         $output->writeListEnd();
@@ -22485,293 +21621,6 @@
 
 }
 
-class Airavata_getAllGatewayPWDCredentials_args {
-  static $_TSPEC;
-
-  /**
-   * @var \Airavata\Model\Security\AuthzToken
-   */
-  public $authzToken = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'authzToken',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Security\AuthzToken',
-          ),
-        2 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['authzToken'])) {
-        $this->authzToken = $vals['authzToken'];
-      }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'Airavata_getAllGatewayPWDCredentials_args';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
-            $xfer += $this->authzToken->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGatewayPWDCredentials_args');
-    if ($this->authzToken !== null) {
-      if (!is_object($this->authzToken)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
-      $xfer += $this->authzToken->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class Airavata_getAllGatewayPWDCredentials_result {
-  static $_TSPEC;
-
-  /**
-   * @var array
-   */
-  public $success = null;
-  /**
-   * @var \Airavata\API\Error\InvalidRequestException
-   */
-  public $ire = null;
-  /**
-   * @var \Airavata\API\Error\AiravataClientException
-   */
-  public $ace = null;
-  /**
-   * @var \Airavata\API\Error\AiravataSystemException
-   */
-  public $ase = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        0 => array(
-          'var' => 'success',
-          'type' => TType::MAP,
-          'ktype' => TType::STRING,
-          'vtype' => TType::STRING,
-          'key' => array(
-            'type' => TType::STRING,
-          ),
-          'val' => array(
-            'type' => TType::STRING,
-            ),
-          ),
-        1 => array(
-          'var' => 'ire',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\API\Error\InvalidRequestException',
-          ),
-        2 => array(
-          'var' => 'ace',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\API\Error\AiravataClientException',
-          ),
-        3 => array(
-          'var' => 'ase',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\API\Error\AiravataSystemException',
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['success'])) {
-        $this->success = $vals['success'];
-      }
-      if (isset($vals['ire'])) {
-        $this->ire = $vals['ire'];
-      }
-      if (isset($vals['ace'])) {
-        $this->ace = $vals['ace'];
-      }
-      if (isset($vals['ase'])) {
-        $this->ase = $vals['ase'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'Airavata_getAllGatewayPWDCredentials_result';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 0:
-          if ($ftype == TType::MAP) {
-            $this->success = array();
-            $_size44 = 0;
-            $_ktype45 = 0;
-            $_vtype46 = 0;
-            $xfer += $input->readMapBegin($_ktype45, $_vtype46, $_size44);
-            for ($_i48 = 0; $_i48 < $_size44; ++$_i48)
-            {
-              $key49 = '';
-              $val50 = '';
-              $xfer += $input->readString($key49);
-              $xfer += $input->readString($val50);
-              $this->success[$key49] = $val50;
-            }
-            $xfer += $input->readMapEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->ire = new \Airavata\API\Error\InvalidRequestException();
-            $xfer += $this->ire->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRUCT) {
-            $this->ace = new \Airavata\API\Error\AiravataClientException();
-            $xfer += $this->ace->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRUCT) {
-            $this->ase = new \Airavata\API\Error\AiravataSystemException();
-            $xfer += $this->ase->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAllGatewayPWDCredentials_result');
-    if ($this->success !== null) {
-      if (!is_array($this->success)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('success', TType::MAP, 0);
-      {
-        $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
-        {
-          foreach ($this->success as $kiter51 => $viter52)
-          {
-            $xfer += $output->writeString($kiter51);
-            $xfer += $output->writeString($viter52);
-          }
-        }
-        $output->writeMapEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ire !== null) {
-      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
-      $xfer += $this->ire->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ace !== null) {
-      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
-      $xfer += $this->ace->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->ase !== null) {
-      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
-      $xfer += $this->ase->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
 class Airavata_deleteSSHPubKey_args {
   static $_TSPEC;
 
@@ -22917,6 +21766,10 @@
    * @var \Airavata\API\Error\AiravataSystemException
    */
   public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -22940,6 +21793,11 @@
           'type' => TType::STRUCT,
           'class' => '\Airavata\API\Error\AiravataSystemException',
           ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
         );
     }
     if (is_array($vals)) {
@@ -22955,6 +21813,9 @@
       if (isset($vals['ase'])) {
         $this->ase = $vals['ase'];
       }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
     }
   }
 
@@ -23008,6 +21869,14 @@
             $xfer += $input->skip($ftype);
           }
           break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -23041,6 +21910,11 @@
       $xfer += $this->ase->write($output);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -23193,6 +22067,10 @@
    * @var \Airavata\API\Error\AiravataSystemException
    */
   public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -23216,6 +22094,11 @@
           'type' => TType::STRUCT,
           'class' => '\Airavata\API\Error\AiravataSystemException',
           ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
         );
     }
     if (is_array($vals)) {
@@ -23231,6 +22114,9 @@
       if (isset($vals['ase'])) {
         $this->ase = $vals['ase'];
       }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
     }
   }
 
@@ -23284,6 +22170,14 @@
             $xfer += $input->skip($ftype);
           }
           break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -23317,6 +22211,11 @@
       $xfer += $this->ase->write($output);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -24820,15 +23719,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size53 = 0;
-            $_etype56 = 0;
-            $xfer += $input->readListBegin($_etype56, $_size53);
-            for ($_i57 = 0; $_i57 < $_size53; ++$_i57)
+            $_size28 = 0;
+            $_etype31 = 0;
+            $xfer += $input->readListBegin($_etype31, $_size28);
+            for ($_i32 = 0; $_i32 < $_size28; ++$_i32)
             {
-              $elem58 = null;
-              $elem58 = new \Airavata\Model\Workspace\Project();
-              $xfer += $elem58->read($input);
-              $this->success []= $elem58;
+              $elem33 = null;
+              $elem33 = new \Airavata\Model\Workspace\Project();
+              $xfer += $elem33->read($input);
+              $this->success []= $elem33;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -24888,9 +23787,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter59)
+          foreach ($this->success as $iter34)
           {
-            $xfer += $iter59->write($output);
+            $xfer += $iter34->write($output);
           }
         }
         $output->writeListEnd();
@@ -25056,17 +23955,17 @@
         case 4:
           if ($ftype == TType::MAP) {
             $this->filters = array();
-            $_size60 = 0;
-            $_ktype61 = 0;
-            $_vtype62 = 0;
-            $xfer += $input->readMapBegin($_ktype61, $_vtype62, $_size60);
-            for ($_i64 = 0; $_i64 < $_size60; ++$_i64)
+            $_size35 = 0;
+            $_ktype36 = 0;
+            $_vtype37 = 0;
+            $xfer += $input->readMapBegin($_ktype36, $_vtype37, $_size35);
+            for ($_i39 = 0; $_i39 < $_size35; ++$_i39)
             {
-              $key65 = 0;
-              $val66 = '';
-              $xfer += $input->readI32($key65);
-              $xfer += $input->readString($val66);
-              $this->filters[$key65] = $val66;
+              $key40 = 0;
+              $val41 = '';
+              $xfer += $input->readI32($key40);
+              $xfer += $input->readString($val41);
+              $this->filters[$key40] = $val41;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -25126,10 +24025,10 @@
       {
         $output->writeMapBegin(TType::I32, TType::STRING, count($this->filters));
         {
-          foreach ($this->filters as $kiter67 => $viter68)
+          foreach ($this->filters as $kiter42 => $viter43)
           {
-            $xfer += $output->writeI32($kiter67);
-            $xfer += $output->writeString($viter68);
+            $xfer += $output->writeI32($kiter42);
+            $xfer += $output->writeString($viter43);
           }
         }
         $output->writeMapEnd();
@@ -25252,15 +24151,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size69 = 0;
-            $_etype72 = 0;
-            $xfer += $input->readListBegin($_etype72, $_size69);
-            for ($_i73 = 0; $_i73 < $_size69; ++$_i73)
+            $_size44 = 0;
+            $_etype47 = 0;
+            $xfer += $input->readListBegin($_etype47, $_size44);
+            for ($_i48 = 0; $_i48 < $_size44; ++$_i48)
             {
-              $elem74 = null;
-              $elem74 = new \Airavata\Model\Workspace\Project();
-              $xfer += $elem74->read($input);
-              $this->success []= $elem74;
+              $elem49 = null;
+              $elem49 = new \Airavata\Model\Workspace\Project();
+              $xfer += $elem49->read($input);
+              $this->success []= $elem49;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -25320,9 +24219,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter75)
+          foreach ($this->success as $iter50)
           {
-            $xfer += $iter75->write($output);
+            $xfer += $iter50->write($output);
           }
         }
         $output->writeListEnd();
@@ -25488,17 +24387,17 @@
         case 4:
           if ($ftype == TType::MAP) {
             $this->filters = array();
-            $_size76 = 0;
-            $_ktype77 = 0;
-            $_vtype78 = 0;
-            $xfer += $input->readMapBegin($_ktype77, $_vtype78, $_size76);
-            for ($_i80 = 0; $_i80 < $_size76; ++$_i80)
+            $_size51 = 0;
+            $_ktype52 = 0;
+            $_vtype53 = 0;
+            $xfer += $input->readMapBegin($_ktype52, $_vtype53, $_size51);
+            for ($_i55 = 0; $_i55 < $_size51; ++$_i55)
             {
-              $key81 = 0;
-              $val82 = '';
-              $xfer += $input->readI32($key81);
-              $xfer += $input->readString($val82);
-              $this->filters[$key81] = $val82;
+              $key56 = 0;
+              $val57 = '';
+              $xfer += $input->readI32($key56);
+              $xfer += $input->readString($val57);
+              $this->filters[$key56] = $val57;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -25558,10 +24457,10 @@
       {
         $output->writeMapBegin(TType::I32, TType::STRING, count($this->filters));
         {
-          foreach ($this->filters as $kiter83 => $viter84)
+          foreach ($this->filters as $kiter58 => $viter59)
           {
-            $xfer += $output->writeI32($kiter83);
-            $xfer += $output->writeString($viter84);
+            $xfer += $output->writeI32($kiter58);
+            $xfer += $output->writeString($viter59);
           }
         }
         $output->writeMapEnd();
@@ -25684,15 +24583,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size85 = 0;
-            $_etype88 = 0;
-            $xfer += $input->readListBegin($_etype88, $_size85);
-            for ($_i89 = 0; $_i89 < $_size85; ++$_i89)
+            $_size60 = 0;
+            $_etype63 = 0;
+            $xfer += $input->readListBegin($_etype63, $_size60);
+            for ($_i64 = 0; $_i64 < $_size60; ++$_i64)
             {
-              $elem90 = null;
-              $elem90 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
-              $xfer += $elem90->read($input);
-              $this->success []= $elem90;
+              $elem65 = null;
+              $elem65 = new \Airavata\Model\Experiment\ExperimentSummaryModel();
+              $xfer += $elem65->read($input);
+              $this->success []= $elem65;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -25752,9 +24651,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter91)
+          foreach ($this->success as $iter66)
           {
-            $xfer += $iter91->write($output);
+            $xfer += $iter66->write($output);
           }
         }
         $output->writeListEnd();
@@ -26446,15 +25345,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size92 = 0;
-            $_etype95 = 0;
-            $xfer += $input->readListBegin($_etype95, $_size92);
-            for ($_i96 = 0; $_i96 < $_size92; ++$_i96)
+            $_size67 = 0;
+            $_etype70 = 0;
+            $xfer += $input->readListBegin($_etype70, $_size67);
+            for ($_i71 = 0; $_i71 < $_size67; ++$_i71)
             {
-              $elem97 = null;
-              $elem97 = new \Airavata\Model\Experiment\ExperimentModel();
-              $xfer += $elem97->read($input);
-              $this->success []= $elem97;
+              $elem72 = null;
+              $elem72 = new \Airavata\Model\Experiment\ExperimentModel();
+              $xfer += $elem72->read($input);
+              $this->success []= $elem72;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -26522,9 +25421,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter98)
+          foreach ($this->success as $iter73)
           {
-            $xfer += $iter98->write($output);
+            $xfer += $iter73->write($output);
           }
         }
         $output->writeListEnd();
@@ -26834,15 +25733,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size99 = 0;
-            $_etype102 = 0;
-            $xfer += $input->readListBegin($_etype102, $_size99);
-            for ($_i103 = 0; $_i103 < $_size99; ++$_i103)
+            $_size74 = 0;
+            $_etype77 = 0;
+            $xfer += $input->readListBegin($_etype77, $_size74);
+            for ($_i78 = 0; $_i78 < $_size74; ++$_i78)
             {
-              $elem104 = null;
-              $elem104 = new \Airavata\Model\Experiment\ExperimentModel();
-              $xfer += $elem104->read($input);
-              $this->success []= $elem104;
+              $elem79 = null;
+              $elem79 = new \Airavata\Model\Experiment\ExperimentModel();
+              $xfer += $elem79->read($input);
+              $this->success []= $elem79;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -26902,9 +25801,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter105)
+          foreach ($this->success as $iter80)
           {
-            $xfer += $iter105->write($output);
+            $xfer += $iter80->write($output);
           }
         }
         $output->writeListEnd();
@@ -30298,15 +29197,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size106 = 0;
-            $_etype109 = 0;
-            $xfer += $input->readListBegin($_etype109, $_size106);
-            for ($_i110 = 0; $_i110 < $_size106; ++$_i110)
+            $_size81 = 0;
+            $_etype84 = 0;
+            $xfer += $input->readListBegin($_etype84, $_size81);
+            for ($_i85 = 0; $_i85 < $_size81; ++$_i85)
             {
-              $elem111 = null;
-              $elem111 = new \Airavata\Model\Application\Io\OutputDataObjectType();
-              $xfer += $elem111->read($input);
-              $this->success []= $elem111;
+              $elem86 = null;
+              $elem86 = new \Airavata\Model\Application\Io\OutputDataObjectType();
+              $xfer += $elem86->read($input);
+              $this->success []= $elem86;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -30374,9 +29273,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter112)
+          foreach ($this->success as $iter87)
           {
-            $xfer += $iter112->write($output);
+            $xfer += $iter87->write($output);
           }
         }
         $output->writeListEnd();
@@ -30629,15 +29528,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size113 = 0;
-            $_etype116 = 0;
-            $xfer += $input->readListBegin($_etype116, $_size113);
-            for ($_i117 = 0; $_i117 < $_size113; ++$_i117)
+            $_size88 = 0;
+            $_etype91 = 0;
+            $xfer += $input->readListBegin($_etype91, $_size88);
+            for ($_i92 = 0; $_i92 < $_size88; ++$_i92)
             {
-              $elem118 = null;
-              $elem118 = new \Airavata\Model\Application\Io\OutputDataObjectType();
-              $xfer += $elem118->read($input);
-              $this->success []= $elem118;
+              $elem93 = null;
+              $elem93 = new \Airavata\Model\Application\Io\OutputDataObjectType();
+              $xfer += $elem93->read($input);
+              $this->success []= $elem93;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -30705,9 +29604,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter119)
+          foreach ($this->success as $iter94)
           {
-            $xfer += $iter119->write($output);
+            $xfer += $iter94->write($output);
           }
         }
         $output->writeListEnd();
@@ -30964,18 +29863,18 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size120 = 0;
-            $_ktype121 = 0;
-            $_vtype122 = 0;
-            $xfer += $input->readMapBegin($_ktype121, $_vtype122, $_size120);
-            for ($_i124 = 0; $_i124 < $_size120; ++$_i124)
+            $_size95 = 0;
+            $_ktype96 = 0;
+            $_vtype97 = 0;
+            $xfer += $input->readMapBegin($_ktype96, $_vtype97, $_size95);
+            for ($_i99 = 0; $_i99 < $_size95; ++$_i99)
             {
-              $key125 = '';
-              $val126 = new \Airavata\Model\Status\JobStatus();
-              $xfer += $input->readString($key125);
-              $val126 = new \Airavata\Model\Status\JobStatus();
-              $xfer += $val126->read($input);
-              $this->success[$key125] = $val126;
+              $key100 = '';
+              $val101 = new \Airavata\Model\Status\JobStatus();
+              $xfer += $input->readString($key100);
+              $val101 = new \Airavata\Model\Status\JobStatus();
+              $xfer += $val101->read($input);
+              $this->success[$key100] = $val101;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -31043,10 +29942,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $kiter127 => $viter128)
+          foreach ($this->success as $kiter102 => $viter103)
           {
-            $xfer += $output->writeString($kiter127);
-            $xfer += $viter128->write($output);
+            $xfer += $output->writeString($kiter102);
+            $xfer += $viter103->write($output);
           }
         }
         $output->writeMapEnd();
@@ -31299,15 +30198,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size129 = 0;
-            $_etype132 = 0;
-            $xfer += $input->readListBegin($_etype132, $_size129);
-            for ($_i133 = 0; $_i133 < $_size129; ++$_i133)
+            $_size104 = 0;
+            $_etype107 = 0;
+            $xfer += $input->readListBegin($_etype107, $_size104);
+            for ($_i108 = 0; $_i108 < $_size104; ++$_i108)
             {
-              $elem134 = null;
-              $elem134 = new \Airavata\Model\Job\JobModel();
-              $xfer += $elem134->read($input);
-              $this->success []= $elem134;
+              $elem109 = null;
+              $elem109 = new \Airavata\Model\Job\JobModel();
+              $xfer += $elem109->read($input);
+              $this->success []= $elem109;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -31375,9 +30274,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter135)
+          foreach ($this->success as $iter110)
           {
-            $xfer += $iter135->write($output);
+            $xfer += $iter110->write($output);
           }
         }
         $output->writeListEnd();
@@ -33564,15 +32463,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size136 = 0;
-            $_etype139 = 0;
-            $xfer += $input->readListBegin($_etype139, $_size136);
-            for ($_i140 = 0; $_i140 < $_size136; ++$_i140)
+            $_size111 = 0;
+            $_etype114 = 0;
+            $xfer += $input->readListBegin($_etype114, $_size111);
+            for ($_i115 = 0; $_i115 < $_size111; ++$_i115)
             {
-              $elem141 = null;
-              $elem141 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule();
-              $xfer += $elem141->read($input);
-              $this->success []= $elem141;
+              $elem116 = null;
+              $elem116 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule();
+              $xfer += $elem116->read($input);
+              $this->success []= $elem116;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -33632,9 +32531,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter142)
+          foreach ($this->success as $iter117)
           {
-            $xfer += $iter142->write($output);
+            $xfer += $iter117->write($output);
           }
         }
         $output->writeListEnd();
@@ -33679,10 +32578,6 @@
    * @var string
    */
   public $gatewayId = null;
-  /**
-   * @var int
-   */
-  public $permissionType = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -33696,10 +32591,6 @@
           'var' => 'gatewayId',
           'type' => TType::STRING,
           ),
-        3 => array(
-          'var' => 'permissionType',
-          'type' => TType::I32,
-          ),
         );
     }
     if (is_array($vals)) {
@@ -33709,9 +32600,6 @@
       if (isset($vals['gatewayId'])) {
         $this->gatewayId = $vals['gatewayId'];
       }
-      if (isset($vals['permissionType'])) {
-        $this->permissionType = $vals['permissionType'];
-      }
     }
   }
 
@@ -33749,13 +32637,6 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 3:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->permissionType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -33782,11 +32663,6 @@
       $xfer += $output->writeString($this->gatewayId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->permissionType !== null) {
-      $xfer += $output->writeFieldBegin('permissionType', TType::I32, 3);
-      $xfer += $output->writeI32($this->permissionType);
-      $xfer += $output->writeFieldEnd();
-    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -33893,15 +32769,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size143 = 0;
-            $_etype146 = 0;
-            $xfer += $input->readListBegin($_etype146, $_size143);
-            for ($_i147 = 0; $_i147 < $_size143; ++$_i147)
+            $_size118 = 0;
+            $_etype121 = 0;
+            $xfer += $input->readListBegin($_etype121, $_size118);
+            for ($_i122 = 0; $_i122 < $_size118; ++$_i122)
             {
-              $elem148 = null;
-              $elem148 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule();
-              $xfer += $elem148->read($input);
-              $this->success []= $elem148;
+              $elem123 = null;
+              $elem123 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule();
+              $xfer += $elem123->read($input);
+              $this->success []= $elem123;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -33961,9 +32837,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter149)
+          foreach ($this->success as $iter124)
           {
-            $xfer += $iter149->write($output);
+            $xfer += $iter124->write($output);
           }
         }
         $output->writeListEnd();
@@ -35650,15 +34526,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size150 = 0;
-            $_etype153 = 0;
-            $xfer += $input->readListBegin($_etype153, $_size150);
-            for ($_i154 = 0; $_i154 < $_size150; ++$_i154)
+            $_size125 = 0;
+            $_etype128 = 0;
+            $xfer += $input->readListBegin($_etype128, $_size125);
+            for ($_i129 = 0; $_i129 < $_size125; ++$_i129)
             {
-              $elem155 = null;
-              $elem155 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
-              $xfer += $elem155->read($input);
-              $this->success []= $elem155;
+              $elem130 = null;
+              $elem130 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
+              $xfer += $elem130->read($input);
+              $this->success []= $elem130;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -35718,9 +34594,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter156)
+          foreach ($this->success as $iter131)
           {
-            $xfer += $iter156->write($output);
+            $xfer += $iter131->write($output);
           }
         }
         $output->writeListEnd();
@@ -35979,15 +34855,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size157 = 0;
-            $_etype160 = 0;
-            $xfer += $input->readListBegin($_etype160, $_size157);
-            for ($_i161 = 0; $_i161 < $_size157; ++$_i161)
+            $_size132 = 0;
+            $_etype135 = 0;
+            $xfer += $input->readListBegin($_etype135, $_size132);
+            for ($_i136 = 0; $_i136 < $_size132; ++$_i136)
             {
-              $elem162 = null;
-              $elem162 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
-              $xfer += $elem162->read($input);
-              $this->success []= $elem162;
+              $elem137 = null;
+              $elem137 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
+              $xfer += $elem137->read($input);
+              $this->success []= $elem137;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -36047,9 +34923,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter163)
+          foreach ($this->success as $iter138)
           {
-            $xfer += $iter163->write($output);
+            $xfer += $iter138->write($output);
           }
         }
         $output->writeListEnd();
@@ -36284,14 +35160,14 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size164 = 0;
-            $_etype167 = 0;
-            $xfer += $input->readListBegin($_etype167, $_size164);
-            for ($_i168 = 0; $_i168 < $_size164; ++$_i168)
+            $_size139 = 0;
+            $_etype142 = 0;
+            $xfer += $input->readListBegin($_etype142, $_size139);
+            for ($_i143 = 0; $_i143 < $_size139; ++$_i143)
             {
-              $elem169 = null;
-              $xfer += $input->readString($elem169);
-              $this->success []= $elem169;
+              $elem144 = null;
+              $xfer += $input->readString($elem144);
+              $this->success []= $elem144;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -36351,9 +35227,338 @@
       {
         $output->writeListBegin(TType::STRING, count($this->success));
         {
-          foreach ($this->success as $iter170)
+          foreach ($this->success as $iter145)
           {
-            $xfer += $output->writeString($iter170);
+            $xfer += $output->writeString($iter145);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $appModuleId = null;
+  /**
+   * @var string
+   */
+  public $groupResourceProfileId = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'appModuleId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'groupResourceProfileId',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['appModuleId'])) {
+        $this->appModuleId = $vals['appModuleId'];
+      }
+      if (isset($vals['groupResourceProfileId'])) {
+        $this->groupResourceProfileId = $vals['groupResourceProfileId'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->appModuleId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->groupResourceProfileId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getApplicationDeploymentsForAppModuleAndGroupResourceProfile_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->appModuleId !== null) {
+      $xfer += $output->writeFieldBegin('appModuleId', TType::STRING, 2);
+      $xfer += $output->writeString($this->appModuleId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->groupResourceProfileId !== null) {
+      $xfer += $output->writeFieldBegin('groupResourceProfileId', TType::STRING, 3);
+      $xfer += $output->writeString($this->groupResourceProfileId);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription[]
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription',
+            ),
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::LST) {
+            $this->success = array();
+            $_size146 = 0;
+            $_etype149 = 0;
+            $xfer += $input->readListBegin($_etype149, $_size146);
+            for ($_i150 = 0; $_i150 < $_size146; ++$_i150)
+            {
+              $elem151 = null;
+              $elem151 = new \Airavata\Model\AppCatalog\AppDeployment\ApplicationDeploymentDescription();
+              $xfer += $elem151->read($input);
+              $this->success []= $elem151;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getApplicationDeploymentsForAppModuleAndGroupResourceProfile_result');
+    if ($this->success !== null) {
+      if (!is_array($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->success));
+        {
+          foreach ($this->success as $iter152)
+          {
+            $xfer += $iter152->write($output);
           }
         }
         $output->writeListEnd();
@@ -38089,17 +37294,17 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size171 = 0;
-            $_ktype172 = 0;
-            $_vtype173 = 0;
-            $xfer += $input->readMapBegin($_ktype172, $_vtype173, $_size171);
-            for ($_i175 = 0; $_i175 < $_size171; ++$_i175)
+            $_size153 = 0;
+            $_ktype154 = 0;
+            $_vtype155 = 0;
+            $xfer += $input->readMapBegin($_ktype154, $_vtype155, $_size153);
+            for ($_i157 = 0; $_i157 < $_size153; ++$_i157)
             {
-              $key176 = '';
-              $val177 = '';
-              $xfer += $input->readString($key176);
-              $xfer += $input->readString($val177);
-              $this->success[$key176] = $val177;
+              $key158 = '';
+              $val159 = '';
+              $xfer += $input->readString($key158);
+              $xfer += $input->readString($val159);
+              $this->success[$key158] = $val159;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -38159,10 +37364,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
         {
-          foreach ($this->success as $kiter178 => $viter179)
+          foreach ($this->success as $kiter160 => $viter161)
           {
-            $xfer += $output->writeString($kiter178);
-            $xfer += $output->writeString($viter179);
+            $xfer += $output->writeString($kiter160);
+            $xfer += $output->writeString($viter161);
           }
         }
         $output->writeMapEnd();
@@ -38398,15 +37603,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size180 = 0;
-            $_etype183 = 0;
-            $xfer += $input->readListBegin($_etype183, $_size180);
-            for ($_i184 = 0; $_i184 < $_size180; ++$_i184)
+            $_size162 = 0;
+            $_etype165 = 0;
+            $xfer += $input->readListBegin($_etype165, $_size162);
+            for ($_i166 = 0; $_i166 < $_size162; ++$_i166)
             {
-              $elem185 = null;
-              $elem185 = new \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription();
-              $xfer += $elem185->read($input);
-              $this->success []= $elem185;
+              $elem167 = null;
+              $elem167 = new \Airavata\Model\AppCatalog\AppInterface\ApplicationInterfaceDescription();
+              $xfer += $elem167->read($input);
+              $this->success []= $elem167;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -38466,9 +37671,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter186)
+          foreach ($this->success as $iter168)
           {
-            $xfer += $iter186->write($output);
+            $xfer += $iter168->write($output);
           }
         }
         $output->writeListEnd();
@@ -38704,15 +37909,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size187 = 0;
-            $_etype190 = 0;
-            $xfer += $input->readListBegin($_etype190, $_size187);
-            for ($_i191 = 0; $_i191 < $_size187; ++$_i191)
+            $_size169 = 0;
+            $_etype172 = 0;
+            $xfer += $input->readListBegin($_etype172, $_size169);
+            for ($_i173 = 0; $_i173 < $_size169; ++$_i173)
             {
-              $elem192 = null;
-              $elem192 = new \Airavata\Model\Application\Io\InputDataObjectType();
-              $xfer += $elem192->read($input);
-              $this->success []= $elem192;
+              $elem174 = null;
+              $elem174 = new \Airavata\Model\Application\Io\InputDataObjectType();
+              $xfer += $elem174->read($input);
+              $this->success []= $elem174;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -38772,9 +37977,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter193)
+          foreach ($this->success as $iter175)
           {
-            $xfer += $iter193->write($output);
+            $xfer += $iter175->write($output);
           }
         }
         $output->writeListEnd();
@@ -39010,15 +38215,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size194 = 0;
-            $_etype197 = 0;
-            $xfer += $input->readListBegin($_etype197, $_size194);
-            for ($_i198 = 0; $_i198 < $_size194; ++$_i198)
+            $_size176 = 0;
+            $_etype179 = 0;
+            $xfer += $input->readListBegin($_etype179, $_size176);
+            for ($_i180 = 0; $_i180 < $_size176; ++$_i180)
             {
-              $elem199 = null;
-              $elem199 = new \Airavata\Model\Application\Io\OutputDataObjectType();
-              $xfer += $elem199->read($input);
-              $this->success []= $elem199;
+              $elem181 = null;
+              $elem181 = new \Airavata\Model\Application\Io\OutputDataObjectType();
+              $xfer += $elem181->read($input);
+              $this->success []= $elem181;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -39078,9 +38283,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter200)
+          foreach ($this->success as $iter182)
           {
-            $xfer += $iter200->write($output);
+            $xfer += $iter182->write($output);
           }
         }
         $output->writeListEnd();
@@ -39319,17 +38524,17 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size201 = 0;
-            $_ktype202 = 0;
-            $_vtype203 = 0;
-            $xfer += $input->readMapBegin($_ktype202, $_vtype203, $_size201);
-            for ($_i205 = 0; $_i205 < $_size201; ++$_i205)
+            $_size183 = 0;
+            $_ktype184 = 0;
+            $_vtype185 = 0;
+            $xfer += $input->readMapBegin($_ktype184, $_vtype185, $_size183);
+            for ($_i187 = 0; $_i187 < $_size183; ++$_i187)
             {
-              $key206 = '';
-              $val207 = '';
-              $xfer += $input->readString($key206);
-              $xfer += $input->readString($val207);
-              $this->success[$key206] = $val207;
+              $key188 = '';
+              $val189 = '';
+              $xfer += $input->readString($key188);
+              $xfer += $input->readString($val189);
+              $this->success[$key188] = $val189;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -39389,10 +38594,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
         {
-          foreach ($this->success as $kiter208 => $viter209)
+          foreach ($this->success as $kiter190 => $viter191)
           {
-            $xfer += $output->writeString($kiter208);
-            $xfer += $output->writeString($viter209);
+            $xfer += $output->writeString($kiter190);
+            $xfer += $output->writeString($viter191);
           }
         }
         $output->writeMapEnd();
@@ -40174,17 +39379,17 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size210 = 0;
-            $_ktype211 = 0;
-            $_vtype212 = 0;
-            $xfer += $input->readMapBegin($_ktype211, $_vtype212, $_size210);
-            for ($_i214 = 0; $_i214 < $_size210; ++$_i214)
+            $_size192 = 0;
+            $_ktype193 = 0;
+            $_vtype194 = 0;
+            $xfer += $input->readMapBegin($_ktype193, $_vtype194, $_size192);
+            for ($_i196 = 0; $_i196 < $_size192; ++$_i196)
             {
-              $key215 = '';
-              $val216 = '';
-              $xfer += $input->readString($key215);
-              $xfer += $input->readString($val216);
-              $this->success[$key215] = $val216;
+              $key197 = '';
+              $val198 = '';
+              $xfer += $input->readString($key197);
+              $xfer += $input->readString($val198);
+              $this->success[$key197] = $val198;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -40244,10 +39449,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
         {
-          foreach ($this->success as $kiter217 => $viter218)
+          foreach ($this->success as $kiter199 => $viter200)
           {
-            $xfer += $output->writeString($kiter217);
-            $xfer += $output->writeString($viter218);
+            $xfer += $output->writeString($kiter199);
+            $xfer += $output->writeString($viter200);
           }
         }
         $output->writeMapEnd();
@@ -41613,17 +40818,17 @@
         case 0:
           if ($ftype == TType::MAP) {
             $this->success = array();
-            $_size219 = 0;
-            $_ktype220 = 0;
-            $_vtype221 = 0;
-            $xfer += $input->readMapBegin($_ktype220, $_vtype221, $_size219);
-            for ($_i223 = 0; $_i223 < $_size219; ++$_i223)
+            $_size201 = 0;
+            $_ktype202 = 0;
+            $_vtype203 = 0;
+            $xfer += $input->readMapBegin($_ktype202, $_vtype203, $_size201);
+            for ($_i205 = 0; $_i205 < $_size201; ++$_i205)
             {
-              $key224 = '';
-              $val225 = '';
-              $xfer += $input->readString($key224);
-              $xfer += $input->readString($val225);
-              $this->success[$key224] = $val225;
+              $key206 = '';
+              $val207 = '';
+              $xfer += $input->readString($key206);
+              $xfer += $input->readString($val207);
+              $this->success[$key206] = $val207;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -41683,10 +40888,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::STRING, count($this->success));
         {
-          foreach ($this->success as $kiter226 => $viter227)
+          foreach ($this->success as $kiter208 => $viter209)
           {
-            $xfer += $output->writeString($kiter226);
-            $xfer += $output->writeString($viter227);
+            $xfer += $output->writeString($kiter208);
+            $xfer += $output->writeString($viter209);
           }
         }
         $output->writeMapEnd();
@@ -50745,17 +49950,17 @@
         case 2:
           if ($ftype == TType::MAP) {
             $this->jobSubmissionPriorityMap = array();
-            $_size228 = 0;
-            $_ktype229 = 0;
-            $_vtype230 = 0;
-            $xfer += $input->readMapBegin($_ktype229, $_vtype230, $_size228);
-            for ($_i232 = 0; $_i232 < $_size228; ++$_i232)
+            $_size210 = 0;
+            $_ktype211 = 0;
+            $_vtype212 = 0;
+            $xfer += $input->readMapBegin($_ktype211, $_vtype212, $_size210);
+            for ($_i214 = 0; $_i214 < $_size210; ++$_i214)
             {
-              $key233 = '';
-              $val234 = 0;
-              $xfer += $input->readString($key233);
-              $xfer += $input->readI32($val234);
-              $this->jobSubmissionPriorityMap[$key233] = $val234;
+              $key215 = '';
+              $val216 = 0;
+              $xfer += $input->readString($key215);
+              $xfer += $input->readI32($val216);
+              $this->jobSubmissionPriorityMap[$key215] = $val216;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -50791,10 +49996,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->jobSubmissionPriorityMap));
         {
-          foreach ($this->jobSubmissionPriorityMap as $kiter235 => $viter236)
+          foreach ($this->jobSubmissionPriorityMap as $kiter217 => $viter218)
           {
-            $xfer += $output->writeString($kiter235);
-            $xfer += $output->writeI32($viter236);
+            $xfer += $output->writeString($kiter217);
+            $xfer += $output->writeI32($viter218);
           }
         }
         $output->writeMapEnd();
@@ -51057,17 +50262,17 @@
         case 2:
           if ($ftype == TType::MAP) {
             $this->dataMovementPriorityMap = array();
-            $_size237 = 0;
-            $_ktype238 = 0;
-            $_vtype239 = 0;
-            $xfer += $input->readMapBegin($_ktype238, $_vtype239, $_size237);
-            for ($_i241 = 0; $_i241 < $_size237; ++$_i241)
+            $_size219 = 0;
+            $_ktype220 = 0;
+            $_vtype221 = 0;
+            $xfer += $input->readMapBegin($_ktype220, $_vtype221, $_size219);
+            for ($_i223 = 0; $_i223 < $_size219; ++$_i223)
             {
-              $key242 = '';
-              $val243 = 0;
-              $xfer += $input->readString($key242);
-              $xfer += $input->readI32($val243);
-              $this->dataMovementPriorityMap[$key242] = $val243;
+              $key224 = '';
+              $val225 = 0;
+              $xfer += $input->readString($key224);
+              $xfer += $input->readI32($val225);
+              $this->dataMovementPriorityMap[$key224] = $val225;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -51103,10 +50308,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->dataMovementPriorityMap));
         {
-          foreach ($this->dataMovementPriorityMap as $kiter244 => $viter245)
+          foreach ($this->dataMovementPriorityMap as $kiter226 => $viter227)
           {
-            $xfer += $output->writeString($kiter244);
-            $xfer += $output->writeI32($viter245);
+            $xfer += $output->writeString($kiter226);
+            $xfer += $output->writeI32($viter227);
           }
         }
         $output->writeMapEnd();
@@ -55993,15 +55198,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size246 = 0;
-            $_etype249 = 0;
-            $xfer += $input->readListBegin($_etype249, $_size246);
-            for ($_i250 = 0; $_i250 < $_size246; ++$_i250)
+            $_size228 = 0;
+            $_etype231 = 0;
+            $xfer += $input->readListBegin($_etype231, $_size228);
+            for ($_i232 = 0; $_i232 < $_size228; ++$_i232)
             {
-              $elem251 = null;
-              $elem251 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
-              $xfer += $elem251->read($input);
-              $this->success []= $elem251;
+              $elem233 = null;
+              $elem233 = new \Airavata\Model\AppCatalog\GatewayProfile\ComputeResourcePreference();
+              $xfer += $elem233->read($input);
+              $this->success []= $elem233;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -56061,9 +55266,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter252)
+          foreach ($this->success as $iter234)
           {
-            $xfer += $iter252->write($output);
+            $xfer += $iter234->write($output);
           }
         }
         $output->writeListEnd();
@@ -56299,15 +55504,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size253 = 0;
-            $_etype256 = 0;
-            $xfer += $input->readListBegin($_etype256, $_size253);
-            for ($_i257 = 0; $_i257 < $_size253; ++$_i257)
+            $_size235 = 0;
+            $_etype238 = 0;
+            $xfer += $input->readListBegin($_etype238, $_size235);
+            for ($_i239 = 0; $_i239 < $_size235; ++$_i239)
             {
-              $elem258 = null;
-              $elem258 = new \Airavata\Model\AppCatalog\GatewayProfile\StoragePreference();
-              $xfer += $elem258->read($input);
-              $this->success []= $elem258;
+              $elem240 = null;
+              $elem240 = new \Airavata\Model\AppCatalog\GatewayProfile\StoragePreference();
+              $xfer += $elem240->read($input);
+              $this->success []= $elem240;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -56367,9 +55572,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter259)
+          foreach ($this->success as $iter241)
           {
-            $xfer += $iter259->write($output);
+            $xfer += $iter241->write($output);
           }
         }
         $output->writeListEnd();
@@ -56582,15 +55787,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size260 = 0;
-            $_etype263 = 0;
-            $xfer += $input->readListBegin($_etype263, $_size260);
-            for ($_i264 = 0; $_i264 < $_size260; ++$_i264)
+            $_size242 = 0;
+            $_etype245 = 0;
+            $xfer += $input->readListBegin($_etype245, $_size242);
+            for ($_i246 = 0; $_i246 < $_size242; ++$_i246)
             {
-              $elem265 = null;
-              $elem265 = new \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile();
-              $xfer += $elem265->read($input);
-              $this->success []= $elem265;
+              $elem247 = null;
+              $elem247 = new \Airavata\Model\AppCatalog\GatewayProfile\GatewayResourceProfile();
+              $xfer += $elem247->read($input);
+              $this->success []= $elem247;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -56650,9 +55855,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter266)
+          foreach ($this->success as $iter248)
           {
-            $xfer += $iter266->write($output);
+            $xfer += $iter248->write($output);
           }
         }
         $output->writeListEnd();
@@ -58125,15 +57330,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size267 = 0;
-            $_etype270 = 0;
-            $xfer += $input->readListBegin($_etype270, $_size267);
-            for ($_i271 = 0; $_i271 < $_size267; ++$_i271)
+            $_size249 = 0;
+            $_etype252 = 0;
+            $xfer += $input->readListBegin($_etype252, $_size249);
+            for ($_i253 = 0; $_i253 < $_size249; ++$_i253)
             {
-              $elem272 = null;
-              $elem272 = new \Airavata\Model\AppCatalog\AccountProvisioning\SSHAccountProvisioner();
-              $xfer += $elem272->read($input);
-              $this->success []= $elem272;
+              $elem254 = null;
+              $elem254 = new \Airavata\Model\AppCatalog\AccountProvisioning\SSHAccountProvisioner();
+              $xfer += $elem254->read($input);
+              $this->success []= $elem254;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -58193,9 +57398,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter273)
+          foreach ($this->success as $iter255)
           {
-            $xfer += $iter273->write($output);
+            $xfer += $iter255->write($output);
           }
         }
         $output->writeListEnd();
@@ -61966,15 +61171,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size274 = 0;
-            $_etype277 = 0;
-            $xfer += $input->readListBegin($_etype277, $_size274);
-            for ($_i278 = 0; $_i278 < $_size274; ++$_i278)
+            $_size256 = 0;
+            $_etype259 = 0;
+            $xfer += $input->readListBegin($_etype259, $_size256);
+            for ($_i260 = 0; $_i260 < $_size256; ++$_i260)
             {
-              $elem279 = null;
-              $elem279 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserComputeResourcePreference();
-              $xfer += $elem279->read($input);
-              $this->success []= $elem279;
+              $elem261 = null;
+              $elem261 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserComputeResourcePreference();
+              $xfer += $elem261->read($input);
+              $this->success []= $elem261;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -62034,9 +61239,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter280)
+          foreach ($this->success as $iter262)
           {
-            $xfer += $iter280->write($output);
+            $xfer += $iter262->write($output);
           }
         }
         $output->writeListEnd();
@@ -62295,15 +61500,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size281 = 0;
-            $_etype284 = 0;
-            $xfer += $input->readListBegin($_etype284, $_size281);
-            for ($_i285 = 0; $_i285 < $_size281; ++$_i285)
+            $_size263 = 0;
+            $_etype266 = 0;
+            $xfer += $input->readListBegin($_etype266, $_size263);
+            for ($_i267 = 0; $_i267 < $_size263; ++$_i267)
             {
-              $elem286 = null;
-              $elem286 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserStoragePreference();
-              $xfer += $elem286->read($input);
-              $this->success []= $elem286;
+              $elem268 = null;
+              $elem268 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserStoragePreference();
+              $xfer += $elem268->read($input);
+              $this->success []= $elem268;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -62363,9 +61568,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter287)
+          foreach ($this->success as $iter269)
           {
-            $xfer += $iter287->write($output);
+            $xfer += $iter269->write($output);
           }
         }
         $output->writeListEnd();
@@ -62578,15 +61783,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size288 = 0;
-            $_etype291 = 0;
-            $xfer += $input->readListBegin($_etype291, $_size288);
-            for ($_i292 = 0; $_i292 < $_size288; ++$_i292)
+            $_size270 = 0;
+            $_etype273 = 0;
+            $xfer += $input->readListBegin($_etype273, $_size270);
+            for ($_i274 = 0; $_i274 < $_size270; ++$_i274)
             {
-              $elem293 = null;
-              $elem293 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile();
-              $xfer += $elem293->read($input);
-              $this->success []= $elem293;
+              $elem275 = null;
+              $elem275 = new \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile();
+              $xfer += $elem275->read($input);
+              $this->success []= $elem275;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -62646,9 +61851,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter294)
+          foreach ($this->success as $iter276)
           {
-            $xfer += $iter294->write($output);
+            $xfer += $iter276->write($output);
           }
         }
         $output->writeListEnd();
@@ -64235,14 +63440,14 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size295 = 0;
-            $_etype298 = 0;
-            $xfer += $input->readListBegin($_etype298, $_size295);
-            for ($_i299 = 0; $_i299 < $_size295; ++$_i299)
+            $_size277 = 0;
+            $_etype280 = 0;
+            $xfer += $input->readListBegin($_etype280, $_size277);
+            for ($_i281 = 0; $_i281 < $_size277; ++$_i281)
             {
-              $elem300 = null;
-              $xfer += $input->readString($elem300);
-              $this->success []= $elem300;
+              $elem282 = null;
+              $xfer += $input->readString($elem282);
+              $this->success []= $elem282;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -64302,9 +63507,9 @@
       {
         $output->writeListBegin(TType::STRING, count($this->success));
         {
-          foreach ($this->success as $iter301)
+          foreach ($this->success as $iter283)
           {
-            $xfer += $output->writeString($iter301);
+            $xfer += $output->writeString($iter283);
           }
         }
         $output->writeListEnd();
@@ -64517,15 +63722,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size302 = 0;
-            $_etype305 = 0;
-            $xfer += $input->readListBegin($_etype305, $_size302);
-            for ($_i306 = 0; $_i306 < $_size302; ++$_i306)
+            $_size284 = 0;
+            $_etype287 = 0;
+            $xfer += $input->readListBegin($_etype287, $_size284);
+            for ($_i288 = 0; $_i288 < $_size284; ++$_i288)
             {
-              $elem307 = null;
-              $elem307 = new \Airavata\Model\Status\QueueStatusModel();
-              $xfer += $elem307->read($input);
-              $this->success []= $elem307;
+              $elem289 = null;
+              $elem289 = new \Airavata\Model\Status\QueueStatusModel();
+              $xfer += $elem289->read($input);
+              $this->success []= $elem289;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -64585,9 +63790,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter308)
+          foreach ($this->success as $iter290)
           {
-            $xfer += $iter308->write($output);
+            $xfer += $iter290->write($output);
           }
         }
         $output->writeListEnd();
@@ -64631,7 +63836,7 @@
   /**
    * @var string
    */
-  public $workflowTemplateId = null;
+  public $workflowId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -64642,7 +63847,7 @@
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
         2 => array(
-          'var' => 'workflowTemplateId',
+          'var' => 'workflowId',
           'type' => TType::STRING,
           ),
         );
@@ -64651,8 +63856,8 @@
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
-      if (isset($vals['workflowTemplateId'])) {
-        $this->workflowTemplateId = $vals['workflowTemplateId'];
+      if (isset($vals['workflowId'])) {
+        $this->workflowId = $vals['workflowId'];
       }
     }
   }
@@ -64686,7 +63891,7 @@
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->workflowTemplateId);
+            $xfer += $input->readString($this->workflowId);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -64712,9 +63917,9 @@
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->workflowTemplateId !== null) {
-      $xfer += $output->writeFieldBegin('workflowTemplateId', TType::STRING, 2);
-      $xfer += $output->writeString($this->workflowTemplateId);
+    if ($this->workflowId !== null) {
+      $xfer += $output->writeFieldBegin('workflowId', TType::STRING, 2);
+      $xfer += $output->writeString($this->workflowId);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -64728,7 +63933,7 @@
   static $_TSPEC;
 
   /**
-   * @var \Airavata\Model\WorkflowModel
+   * @var \Airavata\Model\Workflow\AiravataWorkflow
    */
   public $success = null;
   /**
@@ -64754,7 +63959,7 @@
         0 => array(
           'var' => 'success',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\WorkflowModel',
+          'class' => '\Airavata\Model\Workflow\AiravataWorkflow',
           ),
         1 => array(
           'var' => 'ire',
@@ -64818,7 +64023,7 @@
       {
         case 0:
           if ($ftype == TType::STRUCT) {
-            $this->success = new \Airavata\Model\WorkflowModel();
+            $this->success = new \Airavata\Model\Workflow\AiravataWorkflow();
             $xfer += $this->success->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -64914,7 +64119,7 @@
   /**
    * @var string
    */
-  public $workflowTemplateId = null;
+  public $workflowId = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -64925,7 +64130,7 @@
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
         2 => array(
-          'var' => 'workflowTemplateId',
+          'var' => 'workflowId',
           'type' => TType::STRING,
           ),
         );
@@ -64934,8 +64139,8 @@
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
-      if (isset($vals['workflowTemplateId'])) {
-        $this->workflowTemplateId = $vals['workflowTemplateId'];
+      if (isset($vals['workflowId'])) {
+        $this->workflowId = $vals['workflowId'];
       }
     }
   }
@@ -64969,7 +64174,7 @@
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->workflowTemplateId);
+            $xfer += $input->readString($this->workflowId);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -64995,9 +64200,9 @@
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->workflowTemplateId !== null) {
-      $xfer += $output->writeFieldBegin('workflowTemplateId', TType::STRING, 2);
-      $xfer += $output->writeString($this->workflowTemplateId);
+    if ($this->workflowId !== null) {
+      $xfer += $output->writeFieldBegin('workflowId', TType::STRING, 2);
+      $xfer += $output->writeString($this->workflowId);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -65171,7 +64376,7 @@
    */
   public $gatewayId = null;
   /**
-   * @var \Airavata\Model\WorkflowModel
+   * @var \Airavata\Model\Workflow\AiravataWorkflow
    */
   public $workflow = null;
 
@@ -65190,7 +64395,7 @@
         3 => array(
           'var' => 'workflow',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\WorkflowModel',
+          'class' => '\Airavata\Model\Workflow\AiravataWorkflow',
           ),
         );
     }
@@ -65243,7 +64448,7 @@
           break;
         case 3:
           if ($ftype == TType::STRUCT) {
-            $this->workflow = new \Airavata\Model\WorkflowModel();
+            $this->workflow = new \Airavata\Model\Workflow\AiravataWorkflow();
             $xfer += $this->workflow->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -65475,9 +64680,9 @@
   /**
    * @var string
    */
-  public $workflowTemplateId = null;
+  public $workflowId = null;
   /**
-   * @var \Airavata\Model\WorkflowModel
+   * @var \Airavata\Model\Workflow\AiravataWorkflow
    */
   public $workflow = null;
 
@@ -65490,13 +64695,13 @@
           'class' => '\Airavata\Model\Security\AuthzToken',
           ),
         2 => array(
-          'var' => 'workflowTemplateId',
+          'var' => 'workflowId',
           'type' => TType::STRING,
           ),
         3 => array(
           'var' => 'workflow',
           'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\WorkflowModel',
+          'class' => '\Airavata\Model\Workflow\AiravataWorkflow',
           ),
         );
     }
@@ -65504,8 +64709,8 @@
       if (isset($vals['authzToken'])) {
         $this->authzToken = $vals['authzToken'];
       }
-      if (isset($vals['workflowTemplateId'])) {
-        $this->workflowTemplateId = $vals['workflowTemplateId'];
+      if (isset($vals['workflowId'])) {
+        $this->workflowId = $vals['workflowId'];
       }
       if (isset($vals['workflow'])) {
         $this->workflow = $vals['workflow'];
@@ -65542,14 +64747,14 @@
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->workflowTemplateId);
+            $xfer += $input->readString($this->workflowId);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 3:
           if ($ftype == TType::STRUCT) {
-            $this->workflow = new \Airavata\Model\WorkflowModel();
+            $this->workflow = new \Airavata\Model\Workflow\AiravataWorkflow();
             $xfer += $this->workflow->read($input);
           } else {
             $xfer += $input->skip($ftype);
@@ -65576,9 +64781,9 @@
       $xfer += $this->authzToken->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->workflowTemplateId !== null) {
-      $xfer += $output->writeFieldBegin('workflowTemplateId', TType::STRING, 2);
-      $xfer += $output->writeString($this->workflowTemplateId);
+    if ($this->workflowId !== null) {
+      $xfer += $output->writeFieldBegin('workflowId', TType::STRING, 2);
+      $xfer += $output->writeString($this->workflowId);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->workflow !== null) {
@@ -65748,7 +64953,7 @@
 
 }
 
-class Airavata_getWorkflowTemplateId_args {
+class Airavata_getWorkflowId_args {
   static $_TSPEC;
 
   /**
@@ -65785,7 +64990,7 @@
   }
 
   public function getName() {
-    return 'Airavata_getWorkflowTemplateId_args';
+    return 'Airavata_getWorkflowId_args';
   }
 
   public function read($input)
@@ -65830,7 +65035,7 @@
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getWorkflowTemplateId_args');
+    $xfer += $output->writeStructBegin('Airavata_getWorkflowId_args');
     if ($this->authzToken !== null) {
       if (!is_object($this->authzToken)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -65851,7 +65056,7 @@
 
 }
 
-class Airavata_getWorkflowTemplateId_result {
+class Airavata_getWorkflowId_result {
   static $_TSPEC;
 
   /**
@@ -65924,7 +65129,7 @@
   }
 
   public function getName() {
-    return 'Airavata_getWorkflowTemplateId_result';
+    return 'Airavata_getWorkflowId_result';
   }
 
   public function read($input)
@@ -65993,7 +65198,7 @@
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getWorkflowTemplateId_result');
+    $xfer += $output->writeStructBegin('Airavata_getWorkflowId_result');
     if ($this->success !== null) {
       $xfer += $output->writeFieldBegin('success', TType::STRING, 0);
       $xfer += $output->writeString($this->success);
@@ -67638,15 +66843,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size309 = 0;
-            $_etype312 = 0;
-            $xfer += $input->readListBegin($_etype312, $_size309);
-            for ($_i313 = 0; $_i313 < $_size309; ++$_i313)
+            $_size291 = 0;
+            $_etype294 = 0;
+            $xfer += $input->readListBegin($_etype294, $_size291);
+            for ($_i295 = 0; $_i295 < $_size291; ++$_i295)
             {
-              $elem314 = null;
-              $elem314 = new \Airavata\Model\Data\Replica\DataProductModel();
-              $xfer += $elem314->read($input);
-              $this->success []= $elem314;
+              $elem296 = null;
+              $elem296 = new \Airavata\Model\Data\Replica\DataProductModel();
+              $xfer += $elem296->read($input);
+              $this->success []= $elem296;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -67706,9 +66911,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter315)
+          foreach ($this->success as $iter297)
           {
-            $xfer += $iter315->write($output);
+            $xfer += $iter297->write($output);
           }
         }
         $output->writeListEnd();
@@ -67754,10 +66959,6 @@
    */
   public $resourceId = null;
   /**
-   * @var int
-   */
-  public $resourceType = null;
-  /**
    * @var array
    */
   public $userPermissionList = null;
@@ -67774,10 +66975,6 @@
           'var' => 'resourceId',
           'type' => TType::STRING,
           ),
-        3 => array(
-          'var' => 'resourceType',
-          'type' => TType::I32,
-          ),
         4 => array(
           'var' => 'userPermissionList',
           'type' => TType::MAP,
@@ -67799,9 +66996,6 @@
       if (isset($vals['resourceId'])) {
         $this->resourceId = $vals['resourceId'];
       }
-      if (isset($vals['resourceType'])) {
-        $this->resourceType = $vals['resourceType'];
-      }
       if (isset($vals['userPermissionList'])) {
         $this->userPermissionList = $vals['userPermissionList'];
       }
@@ -67842,27 +67036,20 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 3:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->resourceType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 4:
           if ($ftype == TType::MAP) {
             $this->userPermissionList = array();
-            $_size316 = 0;
-            $_ktype317 = 0;
-            $_vtype318 = 0;
-            $xfer += $input->readMapBegin($_ktype317, $_vtype318, $_size316);
-            for ($_i320 = 0; $_i320 < $_size316; ++$_i320)
+            $_size298 = 0;
+            $_ktype299 = 0;
+            $_vtype300 = 0;
+            $xfer += $input->readMapBegin($_ktype299, $_vtype300, $_size298);
+            for ($_i302 = 0; $_i302 < $_size298; ++$_i302)
             {
-              $key321 = '';
-              $val322 = 0;
-              $xfer += $input->readString($key321);
-              $xfer += $input->readI32($val322);
-              $this->userPermissionList[$key321] = $val322;
+              $key303 = '';
+              $val304 = 0;
+              $xfer += $input->readString($key303);
+              $xfer += $input->readI32($val304);
+              $this->userPermissionList[$key303] = $val304;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -67895,11 +67082,6 @@
       $xfer += $output->writeString($this->resourceId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->resourceType !== null) {
-      $xfer += $output->writeFieldBegin('resourceType', TType::I32, 3);
-      $xfer += $output->writeI32($this->resourceType);
-      $xfer += $output->writeFieldEnd();
-    }
     if ($this->userPermissionList !== null) {
       if (!is_array($this->userPermissionList)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -67908,10 +67090,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->userPermissionList));
         {
-          foreach ($this->userPermissionList as $kiter323 => $viter324)
+          foreach ($this->userPermissionList as $kiter305 => $viter306)
           {
-            $xfer += $output->writeString($kiter323);
-            $xfer += $output->writeI32($viter324);
+            $xfer += $output->writeString($kiter305);
+            $xfer += $output->writeI32($viter306);
           }
         }
         $output->writeMapEnd();
@@ -68112,10 +67294,6 @@
    */
   public $resourceId = null;
   /**
-   * @var int
-   */
-  public $resourceType = null;
-  /**
    * @var array
    */
   public $groupPermissionList = null;
@@ -68132,10 +67310,6 @@
           'var' => 'resourceId',
           'type' => TType::STRING,
           ),
-        3 => array(
-          'var' => 'resourceType',
-          'type' => TType::I32,
-          ),
         4 => array(
           'var' => 'groupPermissionList',
           'type' => TType::MAP,
@@ -68157,9 +67331,6 @@
       if (isset($vals['resourceId'])) {
         $this->resourceId = $vals['resourceId'];
       }
-      if (isset($vals['resourceType'])) {
-        $this->resourceType = $vals['resourceType'];
-      }
       if (isset($vals['groupPermissionList'])) {
         $this->groupPermissionList = $vals['groupPermissionList'];
       }
@@ -68200,27 +67371,20 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 3:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->resourceType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 4:
           if ($ftype == TType::MAP) {
             $this->groupPermissionList = array();
-            $_size325 = 0;
-            $_ktype326 = 0;
-            $_vtype327 = 0;
-            $xfer += $input->readMapBegin($_ktype326, $_vtype327, $_size325);
-            for ($_i329 = 0; $_i329 < $_size325; ++$_i329)
+            $_size307 = 0;
+            $_ktype308 = 0;
+            $_vtype309 = 0;
+            $xfer += $input->readMapBegin($_ktype308, $_vtype309, $_size307);
+            for ($_i311 = 0; $_i311 < $_size307; ++$_i311)
             {
-              $key330 = '';
-              $val331 = 0;
-              $xfer += $input->readString($key330);
-              $xfer += $input->readI32($val331);
-              $this->groupPermissionList[$key330] = $val331;
+              $key312 = '';
+              $val313 = 0;
+              $xfer += $input->readString($key312);
+              $xfer += $input->readI32($val313);
+              $this->groupPermissionList[$key312] = $val313;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -68253,11 +67417,6 @@
       $xfer += $output->writeString($this->resourceId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->resourceType !== null) {
-      $xfer += $output->writeFieldBegin('resourceType', TType::I32, 3);
-      $xfer += $output->writeI32($this->resourceType);
-      $xfer += $output->writeFieldEnd();
-    }
     if ($this->groupPermissionList !== null) {
       if (!is_array($this->groupPermissionList)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -68266,10 +67425,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->groupPermissionList));
         {
-          foreach ($this->groupPermissionList as $kiter332 => $viter333)
+          foreach ($this->groupPermissionList as $kiter314 => $viter315)
           {
-            $xfer += $output->writeString($kiter332);
-            $xfer += $output->writeI32($viter333);
+            $xfer += $output->writeString($kiter314);
+            $xfer += $output->writeI32($viter315);
           }
         }
         $output->writeMapEnd();
@@ -68470,10 +67629,6 @@
    */
   public $resourceId = null;
   /**
-   * @var int
-   */
-  public $resourceType = null;
-  /**
    * @var array
    */
   public $userPermissionList = null;
@@ -68490,10 +67645,6 @@
           'var' => 'resourceId',
           'type' => TType::STRING,
           ),
-        3 => array(
-          'var' => 'resourceType',
-          'type' => TType::I32,
-          ),
         4 => array(
           'var' => 'userPermissionList',
           'type' => TType::MAP,
@@ -68515,9 +67666,6 @@
       if (isset($vals['resourceId'])) {
         $this->resourceId = $vals['resourceId'];
       }
-      if (isset($vals['resourceType'])) {
-        $this->resourceType = $vals['resourceType'];
-      }
       if (isset($vals['userPermissionList'])) {
         $this->userPermissionList = $vals['userPermissionList'];
       }
@@ -68558,27 +67706,20 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 3:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->resourceType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 4:
           if ($ftype == TType::MAP) {
             $this->userPermissionList = array();
-            $_size334 = 0;
-            $_ktype335 = 0;
-            $_vtype336 = 0;
-            $xfer += $input->readMapBegin($_ktype335, $_vtype336, $_size334);
-            for ($_i338 = 0; $_i338 < $_size334; ++$_i338)
+            $_size316 = 0;
+            $_ktype317 = 0;
+            $_vtype318 = 0;
+            $xfer += $input->readMapBegin($_ktype317, $_vtype318, $_size316);
+            for ($_i320 = 0; $_i320 < $_size316; ++$_i320)
             {
-              $key339 = '';
-              $val340 = 0;
-              $xfer += $input->readString($key339);
-              $xfer += $input->readI32($val340);
-              $this->userPermissionList[$key339] = $val340;
+              $key321 = '';
+              $val322 = 0;
+              $xfer += $input->readString($key321);
+              $xfer += $input->readI32($val322);
+              $this->userPermissionList[$key321] = $val322;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -68611,11 +67752,6 @@
       $xfer += $output->writeString($this->resourceId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->resourceType !== null) {
-      $xfer += $output->writeFieldBegin('resourceType', TType::I32, 3);
-      $xfer += $output->writeI32($this->resourceType);
-      $xfer += $output->writeFieldEnd();
-    }
     if ($this->userPermissionList !== null) {
       if (!is_array($this->userPermissionList)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -68624,10 +67760,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->userPermissionList));
         {
-          foreach ($this->userPermissionList as $kiter341 => $viter342)
+          foreach ($this->userPermissionList as $kiter323 => $viter324)
           {
-            $xfer += $output->writeString($kiter341);
-            $xfer += $output->writeI32($viter342);
+            $xfer += $output->writeString($kiter323);
+            $xfer += $output->writeI32($viter324);
           }
         }
         $output->writeMapEnd();
@@ -68828,10 +67964,6 @@
    */
   public $resourceId = null;
   /**
-   * @var int
-   */
-  public $resourceType = null;
-  /**
    * @var array
    */
   public $groupPermissionList = null;
@@ -68848,10 +67980,6 @@
           'var' => 'resourceId',
           'type' => TType::STRING,
           ),
-        3 => array(
-          'var' => 'resourceType',
-          'type' => TType::I32,
-          ),
         4 => array(
           'var' => 'groupPermissionList',
           'type' => TType::MAP,
@@ -68873,9 +68001,6 @@
       if (isset($vals['resourceId'])) {
         $this->resourceId = $vals['resourceId'];
       }
-      if (isset($vals['resourceType'])) {
-        $this->resourceType = $vals['resourceType'];
-      }
       if (isset($vals['groupPermissionList'])) {
         $this->groupPermissionList = $vals['groupPermissionList'];
       }
@@ -68916,27 +68041,20 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 3:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->resourceType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 4:
           if ($ftype == TType::MAP) {
             $this->groupPermissionList = array();
-            $_size343 = 0;
-            $_ktype344 = 0;
-            $_vtype345 = 0;
-            $xfer += $input->readMapBegin($_ktype344, $_vtype345, $_size343);
-            for ($_i347 = 0; $_i347 < $_size343; ++$_i347)
+            $_size325 = 0;
+            $_ktype326 = 0;
+            $_vtype327 = 0;
+            $xfer += $input->readMapBegin($_ktype326, $_vtype327, $_size325);
+            for ($_i329 = 0; $_i329 < $_size325; ++$_i329)
             {
-              $key348 = '';
-              $val349 = 0;
-              $xfer += $input->readString($key348);
-              $xfer += $input->readI32($val349);
-              $this->groupPermissionList[$key348] = $val349;
+              $key330 = '';
+              $val331 = 0;
+              $xfer += $input->readString($key330);
+              $xfer += $input->readI32($val331);
+              $this->groupPermissionList[$key330] = $val331;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -68969,11 +68087,6 @@
       $xfer += $output->writeString($this->resourceId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->resourceType !== null) {
-      $xfer += $output->writeFieldBegin('resourceType', TType::I32, 3);
-      $xfer += $output->writeI32($this->resourceType);
-      $xfer += $output->writeFieldEnd();
-    }
     if ($this->groupPermissionList !== null) {
       if (!is_array($this->groupPermissionList)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
@@ -68982,10 +68095,10 @@
       {
         $output->writeMapBegin(TType::STRING, TType::I32, count($this->groupPermissionList));
         {
-          foreach ($this->groupPermissionList as $kiter350 => $viter351)
+          foreach ($this->groupPermissionList as $kiter332 => $viter333)
           {
-            $xfer += $output->writeString($kiter350);
-            $xfer += $output->writeI32($viter351);
+            $xfer += $output->writeString($kiter332);
+            $xfer += $output->writeI32($viter333);
           }
         }
         $output->writeMapEnd();
@@ -69188,10 +68301,6 @@
   /**
    * @var int
    */
-  public $resourceType = null;
-  /**
-   * @var int
-   */
   public $permissionType = null;
 
   public function __construct($vals=null) {
@@ -69206,10 +68315,6 @@
           'var' => 'resourceId',
           'type' => TType::STRING,
           ),
-        3 => array(
-          'var' => 'resourceType',
-          'type' => TType::I32,
-          ),
         4 => array(
           'var' => 'permissionType',
           'type' => TType::I32,
@@ -69223,9 +68328,6 @@
       if (isset($vals['resourceId'])) {
         $this->resourceId = $vals['resourceId'];
       }
-      if (isset($vals['resourceType'])) {
-        $this->resourceType = $vals['resourceType'];
-      }
       if (isset($vals['permissionType'])) {
         $this->permissionType = $vals['permissionType'];
       }
@@ -69266,13 +68368,6 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 3:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->resourceType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         case 4:
           if ($ftype == TType::I32) {
             $xfer += $input->readI32($this->permissionType);
@@ -69306,11 +68401,6 @@
       $xfer += $output->writeString($this->resourceId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->resourceType !== null) {
-      $xfer += $output->writeFieldBegin('resourceType', TType::I32, 3);
-      $xfer += $output->writeI32($this->resourceType);
-      $xfer += $output->writeFieldEnd();
-    }
     if ($this->permissionType !== null) {
       $xfer += $output->writeFieldBegin('permissionType', TType::I32, 4);
       $xfer += $output->writeI32($this->permissionType);
@@ -69421,14 +68511,14 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size352 = 0;
-            $_etype355 = 0;
-            $xfer += $input->readListBegin($_etype355, $_size352);
-            for ($_i356 = 0; $_i356 < $_size352; ++$_i356)
+            $_size334 = 0;
+            $_etype337 = 0;
+            $xfer += $input->readListBegin($_etype337, $_size334);
+            for ($_i338 = 0; $_i338 < $_size334; ++$_i338)
             {
-              $elem357 = null;
-              $xfer += $input->readString($elem357);
-              $this->success []= $elem357;
+              $elem339 = null;
+              $xfer += $input->readString($elem339);
+              $this->success []= $elem339;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -69488,9 +68578,336 @@
       {
         $output->writeListBegin(TType::STRING, count($this->success));
         {
-          foreach ($this->success as $iter358)
+          foreach ($this->success as $iter340)
           {
-            $xfer += $output->writeString($iter358);
+            $xfer += $output->writeString($iter340);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ire !== null) {
+      $xfer += $output->writeFieldBegin('ire', TType::STRUCT, 1);
+      $xfer += $this->ire->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ace !== null) {
+      $xfer += $output->writeFieldBegin('ace', TType::STRUCT, 2);
+      $xfer += $this->ace->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ase !== null) {
+      $xfer += $output->writeFieldBegin('ase', TType::STRUCT, 3);
+      $xfer += $this->ase->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllAccessibleGroups_args {
+  static $_TSPEC;
+
+  /**
+   * @var \Airavata\Model\Security\AuthzToken
+   */
+  public $authzToken = null;
+  /**
+   * @var string
+   */
+  public $resourceId = null;
+  /**
+   * @var int
+   */
+  public $permissionType = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
+        2 => array(
+          'var' => 'resourceId',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'permissionType',
+          'type' => TType::I32,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+      if (isset($vals['resourceId'])) {
+        $this->resourceId = $vals['resourceId'];
+      }
+      if (isset($vals['permissionType'])) {
+        $this->permissionType = $vals['permissionType'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllAccessibleGroups_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->resourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->permissionType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllAccessibleGroups_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->resourceId !== null) {
+      $xfer += $output->writeFieldBegin('resourceId', TType::STRING, 2);
+      $xfer += $output->writeString($this->resourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->permissionType !== null) {
+      $xfer += $output->writeFieldBegin('permissionType', TType::I32, 4);
+      $xfer += $output->writeI32($this->permissionType);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Airavata_getAllAccessibleGroups_result {
+  static $_TSPEC;
+
+  /**
+   * @var string[]
+   */
+  public $success = null;
+  /**
+   * @var \Airavata\API\Error\InvalidRequestException
+   */
+  public $ire = null;
+  /**
+   * @var \Airavata\API\Error\AiravataClientException
+   */
+  public $ace = null;
+  /**
+   * @var \Airavata\API\Error\AiravataSystemException
+   */
+  public $ase = null;
+  /**
+   * @var \Airavata\API\Error\AuthorizationException
+   */
+  public $ae = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        1 => array(
+          'var' => 'ire',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\InvalidRequestException',
+          ),
+        2 => array(
+          'var' => 'ace',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataClientException',
+          ),
+        3 => array(
+          'var' => 'ase',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AiravataSystemException',
+          ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+      if (isset($vals['ire'])) {
+        $this->ire = $vals['ire'];
+      }
+      if (isset($vals['ace'])) {
+        $this->ace = $vals['ace'];
+      }
+      if (isset($vals['ase'])) {
+        $this->ase = $vals['ase'];
+      }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Airavata_getAllAccessibleGroups_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::LST) {
+            $this->success = array();
+            $_size341 = 0;
+            $_etype344 = 0;
+            $xfer += $input->readListBegin($_etype344, $_size341);
+            for ($_i345 = 0; $_i345 < $_size341; ++$_i345)
+            {
+              $elem346 = null;
+              $xfer += $input->readString($elem346);
+              $this->success []= $elem346;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->ire = new \Airavata\API\Error\InvalidRequestException();
+            $xfer += $this->ire->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->ace = new \Airavata\API\Error\AiravataClientException();
+            $xfer += $this->ace->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRUCT) {
+            $this->ase = new \Airavata\API\Error\AiravataSystemException();
+            $xfer += $this->ase->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Airavata_getAllAccessibleGroups_result');
+    if ($this->success !== null) {
+      if (!is_array($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::LST, 0);
+      {
+        $output->writeListBegin(TType::STRING, count($this->success));
+        {
+          foreach ($this->success as $iter347)
+          {
+            $xfer += $output->writeString($iter347);
           }
         }
         $output->writeListEnd();
@@ -71131,15 +70548,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size359 = 0;
-            $_etype362 = 0;
-            $xfer += $input->readListBegin($_etype362, $_size359);
-            for ($_i363 = 0; $_i363 < $_size359; ++$_i363)
+            $_size348 = 0;
+            $_etype351 = 0;
+            $xfer += $input->readListBegin($_etype351, $_size348);
+            for ($_i352 = 0; $_i352 < $_size348; ++$_i352)
             {
-              $elem364 = null;
-              $elem364 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupResourceProfile();
-              $xfer += $elem364->read($input);
-              $this->success []= $elem364;
+              $elem353 = null;
+              $elem353 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupResourceProfile();
+              $xfer += $elem353->read($input);
+              $this->success []= $elem353;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -71199,9 +70616,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter365)
+          foreach ($this->success as $iter354)
           {
-            $xfer += $iter365->write($output);
+            $xfer += $iter354->write($output);
           }
         }
         $output->writeListEnd();
@@ -73166,15 +72583,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size366 = 0;
-            $_etype369 = 0;
-            $xfer += $input->readListBegin($_etype369, $_size366);
-            for ($_i370 = 0; $_i370 < $_size366; ++$_i370)
+            $_size355 = 0;
+            $_etype358 = 0;
+            $xfer += $input->readListBegin($_etype358, $_size355);
+            for ($_i359 = 0; $_i359 < $_size355; ++$_i359)
             {
-              $elem371 = null;
-              $elem371 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupComputeResourcePreference();
-              $xfer += $elem371->read($input);
-              $this->success []= $elem371;
+              $elem360 = null;
+              $elem360 = new \Airavata\Model\AppCatalog\GroupResourceProfile\GroupComputeResourcePreference();
+              $xfer += $elem360->read($input);
+              $this->success []= $elem360;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -73234,9 +72651,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter372)
+          foreach ($this->success as $iter361)
           {
-            $xfer += $iter372->write($output);
+            $xfer += $iter361->write($output);
           }
         }
         $output->writeListEnd();
@@ -73472,15 +72889,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size373 = 0;
-            $_etype376 = 0;
-            $xfer += $input->readListBegin($_etype376, $_size373);
-            for ($_i377 = 0; $_i377 < $_size373; ++$_i377)
+            $_size362 = 0;
+            $_etype365 = 0;
+            $xfer += $input->readListBegin($_etype365, $_size362);
+            for ($_i366 = 0; $_i366 < $_size362; ++$_i366)
             {
-              $elem378 = null;
-              $elem378 = new \Airavata\Model\AppCatalog\GroupResourceProfile\BatchQueueResourcePolicy();
-              $xfer += $elem378->read($input);
-              $this->success []= $elem378;
+              $elem367 = null;
+              $elem367 = new \Airavata\Model\AppCatalog\GroupResourceProfile\BatchQueueResourcePolicy();
+              $xfer += $elem367->read($input);
+              $this->success []= $elem367;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -73540,9 +72957,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter379)
+          foreach ($this->success as $iter368)
           {
-            $xfer += $iter379->write($output);
+            $xfer += $iter368->write($output);
           }
         }
         $output->writeListEnd();
@@ -73778,15 +73195,15 @@
         case 0:
           if ($ftype == TType::LST) {
             $this->success = array();
-            $_size380 = 0;
-            $_etype383 = 0;
-            $xfer += $input->readListBegin($_etype383, $_size380);
-            for ($_i384 = 0; $_i384 < $_size380; ++$_i384)
+            $_size369 = 0;
+            $_etype372 = 0;
+            $xfer += $input->readListBegin($_etype372, $_size369);
+            for ($_i373 = 0; $_i373 < $_size369; ++$_i373)
             {
-              $elem385 = null;
-              $elem385 = new \Airavata\Model\AppCatalog\GroupResourceProfile\ComputeResourcePolicy();
-              $xfer += $elem385->read($input);
-              $this->success []= $elem385;
+              $elem374 = null;
+              $elem374 = new \Airavata\Model\AppCatalog\GroupResourceProfile\ComputeResourcePolicy();
+              $xfer += $elem374->read($input);
+              $this->success []= $elem374;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -73846,9 +73263,9 @@
       {
         $output->writeListBegin(TType::STRUCT, count($this->success));
         {
-          foreach ($this->success as $iter386)
+          foreach ($this->success as $iter375)
           {
-            $xfer += $iter386->write($output);
+            $xfer += $iter375->write($output);
           }
         }
         $output->writeListEnd();
diff --git a/app/libraries/Airavata/API/Sharing/SharingRegistryService.php b/app/libraries/Airavata/API/Sharing/SharingRegistryService.php
index 1747920..3c99e58 100644
--- a/app/libraries/Airavata/API/Sharing/SharingRegistryService.php
+++ b/app/libraries/Airavata/API/Sharing/SharingRegistryService.php
@@ -194,6 +194,7 @@
    *  <li><b>groupCardinality</b> : Group cardinality (SINGLE_USER, MULTI_USER)</li>
    *  <li>createdTime : Will be set by the system</li>
    *  <li>updatedTime : Will be set by the system</li>
+   *  <li>groupAdmins : Admins for the group</li>
    *  
    * 
    * @throws \Airavata\Model\Sharing\SharingRegistryException
diff --git a/app/libraries/Airavata/Model/Credential/Store/Types.php b/app/libraries/Airavata/Model/Credential/Store/Types.php
index 625b8c7..da47e85 100644
--- a/app/libraries/Airavata/Model/Credential/Store/Types.php
+++ b/app/libraries/Airavata/Model/Credential/Store/Types.php
@@ -17,15 +17,6 @@
 use Thrift\Exception\TApplicationException;
 
 
-final class CredentialOwnerType {
-  const GATEWAY = 0;
-  const USER = 1;
-  static public $__names = array(
-    0 => 'GATEWAY',
-    1 => 'USER',
-  );
-}
-
 /**
  * Data Types supported in Airavata. The primitive data types
  * 
@@ -76,10 +67,6 @@
    * @var string
    */
   public $description = null;
-  /**
-   * @var int
-   */
-  public $credentialOwnerType =   0;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -116,10 +103,6 @@
           'var' => 'description',
           'type' => TType::STRING,
           ),
-        9 => array(
-          'var' => 'credentialOwnerType',
-          'type' => TType::I32,
-          ),
         );
     }
     if (is_array($vals)) {
@@ -147,9 +130,6 @@
       if (isset($vals['description'])) {
         $this->description = $vals['description'];
       }
-      if (isset($vals['credentialOwnerType'])) {
-        $this->credentialOwnerType = $vals['credentialOwnerType'];
-      }
     }
   }
 
@@ -228,13 +208,6 @@
             $xfer += $input->skip($ftype);
           }
           break;
-        case 9:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->credentialOwnerType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -288,11 +261,6 @@
       $xfer += $output->writeString($this->description);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->credentialOwnerType !== null) {
-      $xfer += $output->writeFieldBegin('credentialOwnerType', TType::I32, 9);
-      $xfer += $output->writeI32($this->credentialOwnerType);
-      $xfer += $output->writeFieldEnd();
-    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
diff --git a/app/libraries/Airavata/Model/Group/Types.php b/app/libraries/Airavata/Model/Group/Types.php
index a1552ff..0ccb16b 100644
--- a/app/libraries/Airavata/Model/Group/Types.php
+++ b/app/libraries/Airavata/Model/Group/Types.php
@@ -23,14 +23,16 @@
   const DATA = 2;
   const APPLICATION_DEPLOYMENT = 3;
   const GROUP_RESOURCE_PROFILE = 4;
-  const OTHER = 5;
+  const CREDENTIAL_TOKEN = 5;
+  const OTHER = 6;
   static public $__names = array(
     0 => 'PROJECT',
     1 => 'EXPERIMENT',
     2 => 'DATA',
     3 => 'APPLICATION_DEPLOYMENT',
     4 => 'GROUP_RESOURCE_PROFILE',
-    5 => 'OTHER',
+    5 => 'CREDENTIAL_TOKEN',
+    6 => 'OTHER',
   );
 }
 
diff --git a/app/libraries/Airavata/Model/Sharing/Types.php b/app/libraries/Airavata/Model/Sharing/Types.php
index 03722c0..7a74f6d 100644
--- a/app/libraries/Airavata/Model/Sharing/Types.php
+++ b/app/libraries/Airavata/Model/Sharing/Types.php
@@ -718,6 +718,7 @@
  *  <li><b>groupCardinality</b> : Group cardinality (SINGLE_USER, MULTI_USER)</li>
  *  <li>createdTime : Will be set by the system</li>
  *  <li>updatedTime : Will be set by the system</li>
+ *  <li>groupAdmins : Admins for the group</li>
  *  
  */
 class UserGroup {
@@ -759,6 +760,10 @@
    * @var int
    */
   public $updatedTime = null;
+  /**
+   * @var \Airavata\Model\Sharing\GroupAdmin[]
+   */
+  public $groupAdmins = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -799,6 +804,15 @@
           'var' => 'updatedTime',
           'type' => TType::I64,
           ),
+        10 => array(
+          'var' => 'groupAdmins',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Sharing\GroupAdmin',
+            ),
+          ),
         );
     }
     if (is_array($vals)) {
@@ -829,6 +843,9 @@
       if (isset($vals['updatedTime'])) {
         $this->updatedTime = $vals['updatedTime'];
       }
+      if (isset($vals['groupAdmins'])) {
+        $this->groupAdmins = $vals['groupAdmins'];
+      }
     }
   }
 
@@ -914,6 +931,24 @@
             $xfer += $input->skip($ftype);
           }
           break;
+        case 10:
+          if ($ftype == TType::LST) {
+            $this->groupAdmins = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $elem5 = new \Airavata\Model\Sharing\GroupAdmin();
+              $xfer += $elem5->read($input);
+              $this->groupAdmins []= $elem5;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -972,6 +1007,23 @@
       $xfer += $output->writeI64($this->updatedTime);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->groupAdmins !== null) {
+      if (!is_array($this->groupAdmins)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('groupAdmins', TType::LST, 10);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->groupAdmins));
+        {
+          foreach ($this->groupAdmins as $iter6)
+          {
+            $xfer += $iter6->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
diff --git a/app/libraries/Airavata/Model/Types.php b/app/libraries/Airavata/Model/Types.php
index bbd041b..fcfe8dc 100644
--- a/app/libraries/Airavata/Model/Types.php
+++ b/app/libraries/Airavata/Model/Types.php
@@ -17,1115 +17,4 @@
 use Thrift\Exception\TApplicationException;
 
 
-final class WorkflowState {
-  const CREATED = 0;
-  const STARTED = 1;
-  const EXECUTING = 2;
-  const COMPLETED = 3;
-  const FAILED = 4;
-  const CANCELLING = 5;
-  const CANCELED = 6;
-  static public $__names = array(
-    0 => 'CREATED',
-    1 => 'STARTED',
-    2 => 'EXECUTING',
-    3 => 'COMPLETED',
-    4 => 'FAILED',
-    5 => 'CANCELLING',
-    6 => 'CANCELED',
-  );
-}
-
-final class ComponentState {
-  const CREATED = 0;
-  const WAITING = 1;
-  const READY = 2;
-  const RUNNING = 3;
-  const COMPLETED = 4;
-  const FAILED = 5;
-  const CANCELED = 6;
-  static public $__names = array(
-    0 => 'CREATED',
-    1 => 'WAITING',
-    2 => 'READY',
-    3 => 'RUNNING',
-    4 => 'COMPLETED',
-    5 => 'FAILED',
-    6 => 'CANCELED',
-  );
-}
-
-class WorkflowModel {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $templateId = "DO_NOT_SET_AT_CLIENTS";
-  /**
-   * @var string
-   */
-  public $name = null;
-  /**
-   * @var string
-   */
-  public $graph = null;
-  /**
-   * @var string
-   */
-  public $gatewayId = null;
-  /**
-   * @var string
-   */
-  public $createdUser = null;
-  /**
-   * @var string
-   */
-  public $image = null;
-  /**
-   * @var \Airavata\Model\Application\Io\InputDataObjectType[]
-   */
-  public $workflowInputs = null;
-  /**
-   * @var \Airavata\Model\Application\Io\OutputDataObjectType[]
-   */
-  public $workflowOutputs = null;
-  /**
-   * @var int
-   */
-  public $creationTime = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'templateId',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'name',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'graph',
-          'type' => TType::STRING,
-          ),
-        4 => array(
-          'var' => 'gatewayId',
-          'type' => TType::STRING,
-          ),
-        5 => array(
-          'var' => 'createdUser',
-          'type' => TType::STRING,
-          ),
-        6 => array(
-          'var' => 'image',
-          'type' => TType::STRING,
-          ),
-        7 => array(
-          'var' => 'workflowInputs',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Application\Io\InputDataObjectType',
-            ),
-          ),
-        8 => array(
-          'var' => 'workflowOutputs',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Application\Io\OutputDataObjectType',
-            ),
-          ),
-        9 => array(
-          'var' => 'creationTime',
-          'type' => TType::I64,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['templateId'])) {
-        $this->templateId = $vals['templateId'];
-      }
-      if (isset($vals['name'])) {
-        $this->name = $vals['name'];
-      }
-      if (isset($vals['graph'])) {
-        $this->graph = $vals['graph'];
-      }
-      if (isset($vals['gatewayId'])) {
-        $this->gatewayId = $vals['gatewayId'];
-      }
-      if (isset($vals['createdUser'])) {
-        $this->createdUser = $vals['createdUser'];
-      }
-      if (isset($vals['image'])) {
-        $this->image = $vals['image'];
-      }
-      if (isset($vals['workflowInputs'])) {
-        $this->workflowInputs = $vals['workflowInputs'];
-      }
-      if (isset($vals['workflowOutputs'])) {
-        $this->workflowOutputs = $vals['workflowOutputs'];
-      }
-      if (isset($vals['creationTime'])) {
-        $this->creationTime = $vals['creationTime'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'WorkflowModel';
-  }
-
-  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->templateId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->name);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->graph);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->createdUser);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 6:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->image);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 7:
-          if ($ftype == TType::LST) {
-            $this->workflowInputs = array();
-            $_size0 = 0;
-            $_etype3 = 0;
-            $xfer += $input->readListBegin($_etype3, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
-            {
-              $elem5 = null;
-              $elem5 = new \Airavata\Model\Application\Io\InputDataObjectType();
-              $xfer += $elem5->read($input);
-              $this->workflowInputs []= $elem5;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 8:
-          if ($ftype == TType::LST) {
-            $this->workflowOutputs = array();
-            $_size6 = 0;
-            $_etype9 = 0;
-            $xfer += $input->readListBegin($_etype9, $_size6);
-            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
-            {
-              $elem11 = null;
-              $elem11 = new \Airavata\Model\Application\Io\OutputDataObjectType();
-              $xfer += $elem11->read($input);
-              $this->workflowOutputs []= $elem11;
-            }
-            $xfer += $input->readListEnd();
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 9:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->creationTime);
-          } 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('WorkflowModel');
-    if ($this->templateId !== null) {
-      $xfer += $output->writeFieldBegin('templateId', TType::STRING, 1);
-      $xfer += $output->writeString($this->templateId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->name !== null) {
-      $xfer += $output->writeFieldBegin('name', TType::STRING, 2);
-      $xfer += $output->writeString($this->name);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->graph !== null) {
-      $xfer += $output->writeFieldBegin('graph', TType::STRING, 3);
-      $xfer += $output->writeString($this->graph);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->gatewayId !== null) {
-      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 4);
-      $xfer += $output->writeString($this->gatewayId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->createdUser !== null) {
-      $xfer += $output->writeFieldBegin('createdUser', TType::STRING, 5);
-      $xfer += $output->writeString($this->createdUser);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->image !== null) {
-      $xfer += $output->writeFieldBegin('image', TType::STRING, 6);
-      $xfer += $output->writeString($this->image);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->workflowInputs !== null) {
-      if (!is_array($this->workflowInputs)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('workflowInputs', TType::LST, 7);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->workflowInputs));
-        {
-          foreach ($this->workflowInputs as $iter12)
-          {
-            $xfer += $iter12->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->workflowOutputs !== null) {
-      if (!is_array($this->workflowOutputs)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('workflowOutputs', TType::LST, 8);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->workflowOutputs));
-        {
-          foreach ($this->workflowOutputs as $iter13)
-          {
-            $xfer += $iter13->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->creationTime !== null) {
-      $xfer += $output->writeFieldBegin('creationTime', TType::I64, 9);
-      $xfer += $output->writeI64($this->creationTime);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class ComponentStatus {
-  static $_TSPEC;
-
-  /**
-   * @var int
-   */
-  public $state =   0;
-  /**
-   * @var string
-   */
-  public $reason = null;
-  /**
-   * @var int
-   */
-  public $timeofStateChange = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'state',
-          'type' => TType::I32,
-          ),
-        2 => array(
-          'var' => 'reason',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'timeofStateChange',
-          'type' => TType::I64,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['state'])) {
-        $this->state = $vals['state'];
-      }
-      if (isset($vals['reason'])) {
-        $this->reason = $vals['reason'];
-      }
-      if (isset($vals['timeofStateChange'])) {
-        $this->timeofStateChange = $vals['timeofStateChange'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'ComponentStatus';
-  }
-
-  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::I32) {
-            $xfer += $input->readI32($this->state);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->reason);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->timeofStateChange);
-          } 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('ComponentStatus');
-    if ($this->state !== null) {
-      $xfer += $output->writeFieldBegin('state', TType::I32, 1);
-      $xfer += $output->writeI32($this->state);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->reason !== null) {
-      $xfer += $output->writeFieldBegin('reason', TType::STRING, 2);
-      $xfer += $output->writeString($this->reason);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->timeofStateChange !== null) {
-      $xfer += $output->writeFieldBegin('timeofStateChange', TType::I64, 3);
-      $xfer += $output->writeI64($this->timeofStateChange);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class WorkflowStatus {
-  static $_TSPEC;
-
-  /**
-   * @var int
-   */
-  public $state = null;
-  /**
-   * @var int
-   */
-  public $timeOfStateChange = null;
-  /**
-   * @var string
-   */
-  public $reason = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'state',
-          'type' => TType::I32,
-          ),
-        2 => array(
-          'var' => 'timeOfStateChange',
-          'type' => TType::I64,
-          ),
-        3 => array(
-          'var' => 'reason',
-          'type' => TType::STRING,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['state'])) {
-        $this->state = $vals['state'];
-      }
-      if (isset($vals['timeOfStateChange'])) {
-        $this->timeOfStateChange = $vals['timeOfStateChange'];
-      }
-      if (isset($vals['reason'])) {
-        $this->reason = $vals['reason'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'WorkflowStatus';
-  }
-
-  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::I32) {
-            $xfer += $input->readI32($this->state);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::I64) {
-            $xfer += $input->readI64($this->timeOfStateChange);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->reason);
-          } 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('WorkflowStatus');
-    if ($this->state !== null) {
-      $xfer += $output->writeFieldBegin('state', TType::I32, 1);
-      $xfer += $output->writeI32($this->state);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->timeOfStateChange !== null) {
-      $xfer += $output->writeFieldBegin('timeOfStateChange', TType::I64, 2);
-      $xfer += $output->writeI64($this->timeOfStateChange);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->reason !== null) {
-      $xfer += $output->writeFieldBegin('reason', TType::STRING, 3);
-      $xfer += $output->writeString($this->reason);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class EdgeModel {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $edgeId = "DO_NOT_SET_AT_CLIENTS";
-  /**
-   * @var string
-   */
-  public $name = null;
-  /**
-   * @var \Airavata\Model\ComponentStatus
-   */
-  public $status = null;
-  /**
-   * @var string
-   */
-  public $description = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'edgeId',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'name',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'status',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\ComponentStatus',
-          ),
-        4 => array(
-          'var' => 'description',
-          'type' => TType::STRING,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['edgeId'])) {
-        $this->edgeId = $vals['edgeId'];
-      }
-      if (isset($vals['name'])) {
-        $this->name = $vals['name'];
-      }
-      if (isset($vals['status'])) {
-        $this->status = $vals['status'];
-      }
-      if (isset($vals['description'])) {
-        $this->description = $vals['description'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'EdgeModel';
-  }
-
-  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->edgeId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->name);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRUCT) {
-            $this->status = new \Airavata\Model\ComponentStatus();
-            $xfer += $this->status->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->description);
-          } 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('EdgeModel');
-    if ($this->edgeId !== null) {
-      $xfer += $output->writeFieldBegin('edgeId', TType::STRING, 1);
-      $xfer += $output->writeString($this->edgeId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->name !== null) {
-      $xfer += $output->writeFieldBegin('name', TType::STRING, 2);
-      $xfer += $output->writeString($this->name);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->status !== null) {
-      if (!is_object($this->status)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('status', TType::STRUCT, 3);
-      $xfer += $this->status->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->description !== null) {
-      $xfer += $output->writeFieldBegin('description', TType::STRING, 4);
-      $xfer += $output->writeString($this->description);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class PortModel {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $portId = "DO_NOT_SET_AT_CLIENTS";
-  /**
-   * @var string
-   */
-  public $name = null;
-  /**
-   * @var \Airavata\Model\ComponentStatus
-   */
-  public $status = null;
-  /**
-   * @var string
-   */
-  public $value = null;
-  /**
-   * @var string
-   */
-  public $description = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'portId',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'name',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'status',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\ComponentStatus',
-          ),
-        4 => array(
-          'var' => 'value',
-          'type' => TType::STRING,
-          ),
-        5 => array(
-          'var' => 'description',
-          'type' => TType::STRING,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['portId'])) {
-        $this->portId = $vals['portId'];
-      }
-      if (isset($vals['name'])) {
-        $this->name = $vals['name'];
-      }
-      if (isset($vals['status'])) {
-        $this->status = $vals['status'];
-      }
-      if (isset($vals['value'])) {
-        $this->value = $vals['value'];
-      }
-      if (isset($vals['description'])) {
-        $this->description = $vals['description'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'PortModel';
-  }
-
-  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->portId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->name);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRUCT) {
-            $this->status = new \Airavata\Model\ComponentStatus();
-            $xfer += $this->status->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->value);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->description);
-          } 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('PortModel');
-    if ($this->portId !== null) {
-      $xfer += $output->writeFieldBegin('portId', TType::STRING, 1);
-      $xfer += $output->writeString($this->portId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->name !== null) {
-      $xfer += $output->writeFieldBegin('name', TType::STRING, 2);
-      $xfer += $output->writeString($this->name);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->status !== null) {
-      if (!is_object($this->status)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('status', TType::STRUCT, 3);
-      $xfer += $this->status->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->value !== null) {
-      $xfer += $output->writeFieldBegin('value', TType::STRING, 4);
-      $xfer += $output->writeString($this->value);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->description !== null) {
-      $xfer += $output->writeFieldBegin('description', TType::STRING, 5);
-      $xfer += $output->writeString($this->description);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class NodeModel {
-  static $_TSPEC;
-
-  /**
-   * @var string
-   */
-  public $nodeId = "DO_NOT_SET_AT_CLIENTS";
-  /**
-   * @var string
-   */
-  public $name = null;
-  /**
-   * @var string
-   */
-  public $applicationId = null;
-  /**
-   * @var string
-   */
-  public $applicationName = null;
-  /**
-   * @var \Airavata\Model\ComponentStatus
-   */
-  public $status = null;
-  /**
-   * @var string
-   */
-  public $description = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'nodeId',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'name',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'applicationId',
-          'type' => TType::STRING,
-          ),
-        4 => array(
-          'var' => 'applicationName',
-          'type' => TType::STRING,
-          ),
-        5 => array(
-          'var' => 'status',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\ComponentStatus',
-          ),
-        6 => array(
-          'var' => 'description',
-          'type' => TType::STRING,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['nodeId'])) {
-        $this->nodeId = $vals['nodeId'];
-      }
-      if (isset($vals['name'])) {
-        $this->name = $vals['name'];
-      }
-      if (isset($vals['applicationId'])) {
-        $this->applicationId = $vals['applicationId'];
-      }
-      if (isset($vals['applicationName'])) {
-        $this->applicationName = $vals['applicationName'];
-      }
-      if (isset($vals['status'])) {
-        $this->status = $vals['status'];
-      }
-      if (isset($vals['description'])) {
-        $this->description = $vals['description'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'NodeModel';
-  }
-
-  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->nodeId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->name);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->applicationId);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->applicationName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::STRUCT) {
-            $this->status = new \Airavata\Model\ComponentStatus();
-            $xfer += $this->status->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 6:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->description);
-          } 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('NodeModel');
-    if ($this->nodeId !== null) {
-      $xfer += $output->writeFieldBegin('nodeId', TType::STRING, 1);
-      $xfer += $output->writeString($this->nodeId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->name !== null) {
-      $xfer += $output->writeFieldBegin('name', TType::STRING, 2);
-      $xfer += $output->writeString($this->name);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->applicationId !== null) {
-      $xfer += $output->writeFieldBegin('applicationId', TType::STRING, 3);
-      $xfer += $output->writeString($this->applicationId);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->applicationName !== null) {
-      $xfer += $output->writeFieldBegin('applicationName', TType::STRING, 4);
-      $xfer += $output->writeString($this->applicationName);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->status !== null) {
-      if (!is_object($this->status)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('status', TType::STRUCT, 5);
-      $xfer += $this->status->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->description !== null) {
-      $xfer += $output->writeFieldBegin('description', TType::STRING, 6);
-      $xfer += $output->writeString($this->description);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
 
diff --git a/app/libraries/Airavata/Model/Workflow/Types.php b/app/libraries/Airavata/Model/Workflow/Types.php
new file mode 100644
index 0000000..e9cc2c4
--- /dev/null
+++ b/app/libraries/Airavata/Model/Workflow/Types.php
@@ -0,0 +1,2518 @@
+<?php
+namespace Airavata\Model\Workflow;
+
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * 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;
+
+
+final class WorkflowState {
+  const CREATED = 0;
+  const VALIDATED = 1;
+  const SCHEDULED = 2;
+  const LAUNCHED = 3;
+  const EXECUTING = 4;
+  const PAUSING = 5;
+  const PAUSED = 6;
+  const RESTARTING = 7;
+  const CANCELING = 8;
+  const CANCELED = 9;
+  const COMPLETED = 10;
+  const FAILED = 11;
+  static public $__names = array(
+    0 => 'CREATED',
+    1 => 'VALIDATED',
+    2 => 'SCHEDULED',
+    3 => 'LAUNCHED',
+    4 => 'EXECUTING',
+    5 => 'PAUSING',
+    6 => 'PAUSED',
+    7 => 'RESTARTING',
+    8 => 'CANCELING',
+    9 => 'CANCELED',
+    10 => 'COMPLETED',
+    11 => 'FAILED',
+  );
+}
+
+final class ApplicationState {
+  const CREATED = 0;
+  const VALIDATED = 1;
+  const SCHEDULED = 2;
+  const LAUNCHED = 3;
+  const EXECUTING = 4;
+  const CANCELING = 5;
+  const CANCELED = 6;
+  const COMPLETED = 7;
+  const FAILED = 8;
+  static public $__names = array(
+    0 => 'CREATED',
+    1 => 'VALIDATED',
+    2 => 'SCHEDULED',
+    3 => 'LAUNCHED',
+    4 => 'EXECUTING',
+    5 => 'CANCELING',
+    6 => 'CANCELED',
+    7 => 'COMPLETED',
+    8 => 'FAILED',
+  );
+}
+
+final class HandlerType {
+  const FLOW_STARTER = 0;
+  const FLOW_TERMINATOR = 1;
+  const DOWHILE_LOOP = 2;
+  const FOREACH_LOOP = 3;
+  static public $__names = array(
+    0 => 'FLOW_STARTER',
+    1 => 'FLOW_TERMINATOR',
+    2 => 'DOWHILE_LOOP',
+    3 => 'FOREACH_LOOP',
+  );
+}
+
+final class HandlerState {
+  const CREATED = 0;
+  const VALIDATED = 1;
+  const SCHEDULED = 2;
+  const LAUNCHED = 3;
+  const EXECUTING = 4;
+  const CANCELING = 5;
+  const CANCELED = 6;
+  const COMPLETED = 7;
+  const FAILED = 8;
+  static public $__names = array(
+    0 => 'CREATED',
+    1 => 'VALIDATED',
+    2 => 'SCHEDULED',
+    3 => 'LAUNCHED',
+    4 => 'EXECUTING',
+    5 => 'CANCELING',
+    6 => 'CANCELED',
+    7 => 'COMPLETED',
+    8 => 'FAILED',
+  );
+}
+
+final class ComponentType {
+  const APPLICATION = 0;
+  const HANDLER = 1;
+  static public $__names = array(
+    0 => 'APPLICATION',
+    1 => 'HANDLER',
+  );
+}
+
+class WorkflowStatus {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $id = null;
+  /**
+   * @var int
+   */
+  public $state = null;
+  /**
+   * @var string
+   */
+  public $description = null;
+  /**
+   * @var int
+   */
+  public $updatedAt = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'id',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'state',
+          'type' => TType::I32,
+          ),
+        3 => array(
+          'var' => 'description',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'updatedAt',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['id'])) {
+        $this->id = $vals['id'];
+      }
+      if (isset($vals['state'])) {
+        $this->state = $vals['state'];
+      }
+      if (isset($vals['description'])) {
+        $this->description = $vals['description'];
+      }
+      if (isset($vals['updatedAt'])) {
+        $this->updatedAt = $vals['updatedAt'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'WorkflowStatus';
+  }
+
+  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->id);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->state);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->description);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->updatedAt);
+          } 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('WorkflowStatus');
+    if ($this->id !== null) {
+      $xfer += $output->writeFieldBegin('id', TType::STRING, 1);
+      $xfer += $output->writeString($this->id);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->state !== null) {
+      $xfer += $output->writeFieldBegin('state', TType::I32, 2);
+      $xfer += $output->writeI32($this->state);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->description !== null) {
+      $xfer += $output->writeFieldBegin('description', TType::STRING, 3);
+      $xfer += $output->writeString($this->description);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->updatedAt !== null) {
+      $xfer += $output->writeFieldBegin('updatedAt', TType::I64, 4);
+      $xfer += $output->writeI64($this->updatedAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class NotificationEmail {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $email = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'email',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['email'])) {
+        $this->email = $vals['email'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'NotificationEmail';
+  }
+
+  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->email);
+          } 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('NotificationEmail');
+    if ($this->email !== null) {
+      $xfer += $output->writeFieldBegin('email', TType::STRING, 1);
+      $xfer += $output->writeString($this->email);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ApplicationStatus {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $id = null;
+  /**
+   * @var int
+   */
+  public $state = null;
+  /**
+   * @var string
+   */
+  public $description = null;
+  /**
+   * @var int
+   */
+  public $updatedAt = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'id',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'state',
+          'type' => TType::I32,
+          ),
+        3 => array(
+          'var' => 'description',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'updatedAt',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['id'])) {
+        $this->id = $vals['id'];
+      }
+      if (isset($vals['state'])) {
+        $this->state = $vals['state'];
+      }
+      if (isset($vals['description'])) {
+        $this->description = $vals['description'];
+      }
+      if (isset($vals['updatedAt'])) {
+        $this->updatedAt = $vals['updatedAt'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ApplicationStatus';
+  }
+
+  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->id);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->state);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->description);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->updatedAt);
+          } 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('ApplicationStatus');
+    if ($this->id !== null) {
+      $xfer += $output->writeFieldBegin('id', TType::STRING, 1);
+      $xfer += $output->writeString($this->id);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->state !== null) {
+      $xfer += $output->writeFieldBegin('state', TType::I32, 2);
+      $xfer += $output->writeI32($this->state);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->description !== null) {
+      $xfer += $output->writeFieldBegin('description', TType::STRING, 3);
+      $xfer += $output->writeString($this->description);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->updatedAt !== null) {
+      $xfer += $output->writeFieldBegin('updatedAt', TType::I64, 4);
+      $xfer += $output->writeI64($this->updatedAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class WorkflowApplication {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $id = null;
+  /**
+   * @var bool
+   */
+  public $belongsToMainWorkflow = null;
+  /**
+   * @var string
+   */
+  public $applicationInterfaceId = null;
+  /**
+   * @var string
+   */
+  public $computeResourceId = null;
+  /**
+   * @var string
+   */
+  public $queueName = null;
+  /**
+   * @var int
+   */
+  public $nodeCount = null;
+  /**
+   * @var int
+   */
+  public $coreCount = null;
+  /**
+   * @var int
+   */
+  public $wallTimeLimit = null;
+  /**
+   * @var int
+   */
+  public $physicalMemory = null;
+  /**
+   * @var \Airavata\Model\Workflow\ApplicationStatus[]
+   */
+  public $statuses = null;
+  /**
+   * @var \Airavata\Model\Commons\ErrorModel[]
+   */
+  public $errors = null;
+  /**
+   * @var int
+   */
+  public $createdAt = null;
+  /**
+   * @var int
+   */
+  public $updatedAt = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'id',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'belongsToMainWorkflow',
+          'type' => TType::BOOL,
+          ),
+        3 => array(
+          'var' => 'applicationInterfaceId',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'computeResourceId',
+          'type' => TType::STRING,
+          ),
+        5 => array(
+          'var' => 'queueName',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'nodeCount',
+          'type' => TType::I32,
+          ),
+        7 => array(
+          'var' => 'coreCount',
+          'type' => TType::I32,
+          ),
+        8 => array(
+          'var' => 'wallTimeLimit',
+          'type' => TType::I32,
+          ),
+        9 => array(
+          'var' => 'physicalMemory',
+          'type' => TType::I32,
+          ),
+        10 => array(
+          'var' => 'statuses',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workflow\ApplicationStatus',
+            ),
+          ),
+        11 => array(
+          'var' => 'errors',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Commons\ErrorModel',
+            ),
+          ),
+        12 => array(
+          'var' => 'createdAt',
+          'type' => TType::I64,
+          ),
+        13 => array(
+          'var' => 'updatedAt',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['id'])) {
+        $this->id = $vals['id'];
+      }
+      if (isset($vals['belongsToMainWorkflow'])) {
+        $this->belongsToMainWorkflow = $vals['belongsToMainWorkflow'];
+      }
+      if (isset($vals['applicationInterfaceId'])) {
+        $this->applicationInterfaceId = $vals['applicationInterfaceId'];
+      }
+      if (isset($vals['computeResourceId'])) {
+        $this->computeResourceId = $vals['computeResourceId'];
+      }
+      if (isset($vals['queueName'])) {
+        $this->queueName = $vals['queueName'];
+      }
+      if (isset($vals['nodeCount'])) {
+        $this->nodeCount = $vals['nodeCount'];
+      }
+      if (isset($vals['coreCount'])) {
+        $this->coreCount = $vals['coreCount'];
+      }
+      if (isset($vals['wallTimeLimit'])) {
+        $this->wallTimeLimit = $vals['wallTimeLimit'];
+      }
+      if (isset($vals['physicalMemory'])) {
+        $this->physicalMemory = $vals['physicalMemory'];
+      }
+      if (isset($vals['statuses'])) {
+        $this->statuses = $vals['statuses'];
+      }
+      if (isset($vals['errors'])) {
+        $this->errors = $vals['errors'];
+      }
+      if (isset($vals['createdAt'])) {
+        $this->createdAt = $vals['createdAt'];
+      }
+      if (isset($vals['updatedAt'])) {
+        $this->updatedAt = $vals['updatedAt'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'WorkflowApplication';
+  }
+
+  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->id);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->belongsToMainWorkflow);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->applicationInterfaceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->computeResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->queueName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->nodeCount);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->coreCount);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->wallTimeLimit);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->physicalMemory);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::LST) {
+            $this->statuses = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $elem5 = new \Airavata\Model\Workflow\ApplicationStatus();
+              $xfer += $elem5->read($input);
+              $this->statuses []= $elem5;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 11:
+          if ($ftype == TType::LST) {
+            $this->errors = array();
+            $_size6 = 0;
+            $_etype9 = 0;
+            $xfer += $input->readListBegin($_etype9, $_size6);
+            for ($_i10 = 0; $_i10 < $_size6; ++$_i10)
+            {
+              $elem11 = null;
+              $elem11 = new \Airavata\Model\Commons\ErrorModel();
+              $xfer += $elem11->read($input);
+              $this->errors []= $elem11;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->createdAt);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 13:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->updatedAt);
+          } 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('WorkflowApplication');
+    if ($this->id !== null) {
+      $xfer += $output->writeFieldBegin('id', TType::STRING, 1);
+      $xfer += $output->writeString($this->id);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->belongsToMainWorkflow !== null) {
+      $xfer += $output->writeFieldBegin('belongsToMainWorkflow', TType::BOOL, 2);
+      $xfer += $output->writeBool($this->belongsToMainWorkflow);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->applicationInterfaceId !== null) {
+      $xfer += $output->writeFieldBegin('applicationInterfaceId', TType::STRING, 3);
+      $xfer += $output->writeString($this->applicationInterfaceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->computeResourceId !== null) {
+      $xfer += $output->writeFieldBegin('computeResourceId', TType::STRING, 4);
+      $xfer += $output->writeString($this->computeResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->queueName !== null) {
+      $xfer += $output->writeFieldBegin('queueName', TType::STRING, 5);
+      $xfer += $output->writeString($this->queueName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->nodeCount !== null) {
+      $xfer += $output->writeFieldBegin('nodeCount', TType::I32, 6);
+      $xfer += $output->writeI32($this->nodeCount);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->coreCount !== null) {
+      $xfer += $output->writeFieldBegin('coreCount', TType::I32, 7);
+      $xfer += $output->writeI32($this->coreCount);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->wallTimeLimit !== null) {
+      $xfer += $output->writeFieldBegin('wallTimeLimit', TType::I32, 8);
+      $xfer += $output->writeI32($this->wallTimeLimit);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->physicalMemory !== null) {
+      $xfer += $output->writeFieldBegin('physicalMemory', TType::I32, 9);
+      $xfer += $output->writeI32($this->physicalMemory);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->statuses !== null) {
+      if (!is_array($this->statuses)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('statuses', TType::LST, 10);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->statuses));
+        {
+          foreach ($this->statuses as $iter12)
+          {
+            $xfer += $iter12->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->errors !== null) {
+      if (!is_array($this->errors)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('errors', TType::LST, 11);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->errors));
+        {
+          foreach ($this->errors as $iter13)
+          {
+            $xfer += $iter13->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->createdAt !== null) {
+      $xfer += $output->writeFieldBegin('createdAt', TType::I64, 12);
+      $xfer += $output->writeI64($this->createdAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->updatedAt !== null) {
+      $xfer += $output->writeFieldBegin('updatedAt', TType::I64, 13);
+      $xfer += $output->writeI64($this->updatedAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class WorkflowConnection {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $id = "DO_NOT_SET_AT_CLIENTS";
+  /**
+   * @var bool
+   */
+  public $belongsToMainWorkflow = null;
+  /**
+   * @var int
+   */
+  public $fromType = null;
+  /**
+   * @var string
+   */
+  public $fromId = null;
+  /**
+   * @var string
+   */
+  public $fromOutputName = null;
+  /**
+   * @var int
+   */
+  public $toType = null;
+  /**
+   * @var string
+   */
+  public $toId = null;
+  /**
+   * @var string
+   */
+  public $toInputName = null;
+  /**
+   * @var int
+   */
+  public $createdAt = null;
+  /**
+   * @var int
+   */
+  public $updatedAt = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'id',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'belongsToMainWorkflow',
+          'type' => TType::BOOL,
+          ),
+        3 => array(
+          'var' => 'fromType',
+          'type' => TType::I32,
+          ),
+        4 => array(
+          'var' => 'fromId',
+          'type' => TType::STRING,
+          ),
+        5 => array(
+          'var' => 'fromOutputName',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'toType',
+          'type' => TType::I32,
+          ),
+        7 => array(
+          'var' => 'toId',
+          'type' => TType::STRING,
+          ),
+        8 => array(
+          'var' => 'toInputName',
+          'type' => TType::STRING,
+          ),
+        9 => array(
+          'var' => 'createdAt',
+          'type' => TType::I64,
+          ),
+        10 => array(
+          'var' => 'updatedAt',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['id'])) {
+        $this->id = $vals['id'];
+      }
+      if (isset($vals['belongsToMainWorkflow'])) {
+        $this->belongsToMainWorkflow = $vals['belongsToMainWorkflow'];
+      }
+      if (isset($vals['fromType'])) {
+        $this->fromType = $vals['fromType'];
+      }
+      if (isset($vals['fromId'])) {
+        $this->fromId = $vals['fromId'];
+      }
+      if (isset($vals['fromOutputName'])) {
+        $this->fromOutputName = $vals['fromOutputName'];
+      }
+      if (isset($vals['toType'])) {
+        $this->toType = $vals['toType'];
+      }
+      if (isset($vals['toId'])) {
+        $this->toId = $vals['toId'];
+      }
+      if (isset($vals['toInputName'])) {
+        $this->toInputName = $vals['toInputName'];
+      }
+      if (isset($vals['createdAt'])) {
+        $this->createdAt = $vals['createdAt'];
+      }
+      if (isset($vals['updatedAt'])) {
+        $this->updatedAt = $vals['updatedAt'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'WorkflowConnection';
+  }
+
+  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->id);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->belongsToMainWorkflow);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->fromType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->fromId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->fromOutputName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->toType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->toId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->toInputName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->createdAt);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->updatedAt);
+          } 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('WorkflowConnection');
+    if ($this->id !== null) {
+      $xfer += $output->writeFieldBegin('id', TType::STRING, 1);
+      $xfer += $output->writeString($this->id);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->belongsToMainWorkflow !== null) {
+      $xfer += $output->writeFieldBegin('belongsToMainWorkflow', TType::BOOL, 2);
+      $xfer += $output->writeBool($this->belongsToMainWorkflow);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fromType !== null) {
+      $xfer += $output->writeFieldBegin('fromType', TType::I32, 3);
+      $xfer += $output->writeI32($this->fromType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fromId !== null) {
+      $xfer += $output->writeFieldBegin('fromId', TType::STRING, 4);
+      $xfer += $output->writeString($this->fromId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fromOutputName !== null) {
+      $xfer += $output->writeFieldBegin('fromOutputName', TType::STRING, 5);
+      $xfer += $output->writeString($this->fromOutputName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->toType !== null) {
+      $xfer += $output->writeFieldBegin('toType', TType::I32, 6);
+      $xfer += $output->writeI32($this->toType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->toId !== null) {
+      $xfer += $output->writeFieldBegin('toId', TType::STRING, 7);
+      $xfer += $output->writeString($this->toId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->toInputName !== null) {
+      $xfer += $output->writeFieldBegin('toInputName', TType::STRING, 8);
+      $xfer += $output->writeString($this->toInputName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->createdAt !== null) {
+      $xfer += $output->writeFieldBegin('createdAt', TType::I64, 9);
+      $xfer += $output->writeI64($this->createdAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->updatedAt !== null) {
+      $xfer += $output->writeFieldBegin('updatedAt', TType::I64, 10);
+      $xfer += $output->writeI64($this->updatedAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class HandlerStatus {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $id = null;
+  /**
+   * @var int
+   */
+  public $state = null;
+  /**
+   * @var string
+   */
+  public $description = null;
+  /**
+   * @var int
+   */
+  public $updatedAt = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'id',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'state',
+          'type' => TType::I32,
+          ),
+        3 => array(
+          'var' => 'description',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'updatedAt',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['id'])) {
+        $this->id = $vals['id'];
+      }
+      if (isset($vals['state'])) {
+        $this->state = $vals['state'];
+      }
+      if (isset($vals['description'])) {
+        $this->description = $vals['description'];
+      }
+      if (isset($vals['updatedAt'])) {
+        $this->updatedAt = $vals['updatedAt'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'HandlerStatus';
+  }
+
+  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->id);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->state);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->description);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->updatedAt);
+          } 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('HandlerStatus');
+    if ($this->id !== null) {
+      $xfer += $output->writeFieldBegin('id', TType::STRING, 1);
+      $xfer += $output->writeString($this->id);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->state !== null) {
+      $xfer += $output->writeFieldBegin('state', TType::I32, 2);
+      $xfer += $output->writeI32($this->state);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->description !== null) {
+      $xfer += $output->writeFieldBegin('description', TType::STRING, 3);
+      $xfer += $output->writeString($this->description);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->updatedAt !== null) {
+      $xfer += $output->writeFieldBegin('updatedAt', TType::I64, 4);
+      $xfer += $output->writeI64($this->updatedAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class DataBlock {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $id = null;
+  /**
+   * @var string
+   */
+  public $value = null;
+  /**
+   * @var int
+   */
+  public $type = null;
+  /**
+   * @var int
+   */
+  public $createdAt = null;
+  /**
+   * @var int
+   */
+  public $updatedAt = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'id',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'value',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'type',
+          'type' => TType::I32,
+          ),
+        4 => array(
+          'var' => 'createdAt',
+          'type' => TType::I64,
+          ),
+        5 => array(
+          'var' => 'updatedAt',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['id'])) {
+        $this->id = $vals['id'];
+      }
+      if (isset($vals['value'])) {
+        $this->value = $vals['value'];
+      }
+      if (isset($vals['type'])) {
+        $this->type = $vals['type'];
+      }
+      if (isset($vals['createdAt'])) {
+        $this->createdAt = $vals['createdAt'];
+      }
+      if (isset($vals['updatedAt'])) {
+        $this->updatedAt = $vals['updatedAt'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'DataBlock';
+  }
+
+  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->id);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->value);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->type);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->createdAt);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->updatedAt);
+          } 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('DataBlock');
+    if ($this->id !== null) {
+      $xfer += $output->writeFieldBegin('id', TType::STRING, 1);
+      $xfer += $output->writeString($this->id);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->value !== null) {
+      $xfer += $output->writeFieldBegin('value', TType::STRING, 2);
+      $xfer += $output->writeString($this->value);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->type !== null) {
+      $xfer += $output->writeFieldBegin('type', TType::I32, 3);
+      $xfer += $output->writeI32($this->type);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->createdAt !== null) {
+      $xfer += $output->writeFieldBegin('createdAt', TType::I64, 4);
+      $xfer += $output->writeI64($this->createdAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->updatedAt !== null) {
+      $xfer += $output->writeFieldBegin('updatedAt', TType::I64, 5);
+      $xfer += $output->writeI64($this->updatedAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class WorkflowHandler {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $id = null;
+  /**
+   * @var bool
+   */
+  public $belongsToMainWorkflow = null;
+  /**
+   * @var int
+   */
+  public $type = null;
+  /**
+   * @var \Airavata\Model\Application\Io\InputDataObjectType[]
+   */
+  public $inputs = null;
+  /**
+   * @var \Airavata\Model\Application\Io\OutputDataObjectType[]
+   */
+  public $outputs = null;
+  /**
+   * @var \Airavata\Model\Workflow\WorkflowApplication[]
+   */
+  public $applications = null;
+  /**
+   * @var \Airavata\Model\Workflow\WorkflowConnection[]
+   */
+  public $connections = null;
+  /**
+   * @var \Airavata\Model\Workflow\HandlerStatus[]
+   */
+  public $statuses = null;
+  /**
+   * @var \Airavata\Model\Commons\ErrorModel[]
+   */
+  public $errors = null;
+  /**
+   * @var int
+   */
+  public $createdAt = null;
+  /**
+   * @var int
+   */
+  public $updatedAt = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'id',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'belongsToMainWorkflow',
+          'type' => TType::BOOL,
+          ),
+        3 => array(
+          'var' => 'type',
+          'type' => TType::I32,
+          ),
+        4 => array(
+          'var' => 'inputs',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Application\Io\InputDataObjectType',
+            ),
+          ),
+        5 => array(
+          'var' => 'outputs',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Application\Io\OutputDataObjectType',
+            ),
+          ),
+        6 => array(
+          'var' => 'applications',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workflow\WorkflowApplication',
+            ),
+          ),
+        7 => array(
+          'var' => 'connections',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workflow\WorkflowConnection',
+            ),
+          ),
+        8 => array(
+          'var' => 'statuses',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workflow\HandlerStatus',
+            ),
+          ),
+        9 => array(
+          'var' => 'errors',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Commons\ErrorModel',
+            ),
+          ),
+        10 => array(
+          'var' => 'createdAt',
+          'type' => TType::I64,
+          ),
+        11 => array(
+          'var' => 'updatedAt',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['id'])) {
+        $this->id = $vals['id'];
+      }
+      if (isset($vals['belongsToMainWorkflow'])) {
+        $this->belongsToMainWorkflow = $vals['belongsToMainWorkflow'];
+      }
+      if (isset($vals['type'])) {
+        $this->type = $vals['type'];
+      }
+      if (isset($vals['inputs'])) {
+        $this->inputs = $vals['inputs'];
+      }
+      if (isset($vals['outputs'])) {
+        $this->outputs = $vals['outputs'];
+      }
+      if (isset($vals['applications'])) {
+        $this->applications = $vals['applications'];
+      }
+      if (isset($vals['connections'])) {
+        $this->connections = $vals['connections'];
+      }
+      if (isset($vals['statuses'])) {
+        $this->statuses = $vals['statuses'];
+      }
+      if (isset($vals['errors'])) {
+        $this->errors = $vals['errors'];
+      }
+      if (isset($vals['createdAt'])) {
+        $this->createdAt = $vals['createdAt'];
+      }
+      if (isset($vals['updatedAt'])) {
+        $this->updatedAt = $vals['updatedAt'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'WorkflowHandler';
+  }
+
+  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->id);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->belongsToMainWorkflow);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->type);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::LST) {
+            $this->inputs = array();
+            $_size14 = 0;
+            $_etype17 = 0;
+            $xfer += $input->readListBegin($_etype17, $_size14);
+            for ($_i18 = 0; $_i18 < $_size14; ++$_i18)
+            {
+              $elem19 = null;
+              $elem19 = new \Airavata\Model\Application\Io\InputDataObjectType();
+              $xfer += $elem19->read($input);
+              $this->inputs []= $elem19;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::LST) {
+            $this->outputs = array();
+            $_size20 = 0;
+            $_etype23 = 0;
+            $xfer += $input->readListBegin($_etype23, $_size20);
+            for ($_i24 = 0; $_i24 < $_size20; ++$_i24)
+            {
+              $elem25 = null;
+              $elem25 = new \Airavata\Model\Application\Io\OutputDataObjectType();
+              $xfer += $elem25->read($input);
+              $this->outputs []= $elem25;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::LST) {
+            $this->applications = array();
+            $_size26 = 0;
+            $_etype29 = 0;
+            $xfer += $input->readListBegin($_etype29, $_size26);
+            for ($_i30 = 0; $_i30 < $_size26; ++$_i30)
+            {
+              $elem31 = null;
+              $elem31 = new \Airavata\Model\Workflow\WorkflowApplication();
+              $xfer += $elem31->read($input);
+              $this->applications []= $elem31;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::LST) {
+            $this->connections = array();
+            $_size32 = 0;
+            $_etype35 = 0;
+            $xfer += $input->readListBegin($_etype35, $_size32);
+            for ($_i36 = 0; $_i36 < $_size32; ++$_i36)
+            {
+              $elem37 = null;
+              $elem37 = new \Airavata\Model\Workflow\WorkflowConnection();
+              $xfer += $elem37->read($input);
+              $this->connections []= $elem37;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::LST) {
+            $this->statuses = array();
+            $_size38 = 0;
+            $_etype41 = 0;
+            $xfer += $input->readListBegin($_etype41, $_size38);
+            for ($_i42 = 0; $_i42 < $_size38; ++$_i42)
+            {
+              $elem43 = null;
+              $elem43 = new \Airavata\Model\Workflow\HandlerStatus();
+              $xfer += $elem43->read($input);
+              $this->statuses []= $elem43;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::LST) {
+            $this->errors = array();
+            $_size44 = 0;
+            $_etype47 = 0;
+            $xfer += $input->readListBegin($_etype47, $_size44);
+            for ($_i48 = 0; $_i48 < $_size44; ++$_i48)
+            {
+              $elem49 = null;
+              $elem49 = new \Airavata\Model\Commons\ErrorModel();
+              $xfer += $elem49->read($input);
+              $this->errors []= $elem49;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->createdAt);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 11:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->updatedAt);
+          } 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('WorkflowHandler');
+    if ($this->id !== null) {
+      $xfer += $output->writeFieldBegin('id', TType::STRING, 1);
+      $xfer += $output->writeString($this->id);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->belongsToMainWorkflow !== null) {
+      $xfer += $output->writeFieldBegin('belongsToMainWorkflow', TType::BOOL, 2);
+      $xfer += $output->writeBool($this->belongsToMainWorkflow);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->type !== null) {
+      $xfer += $output->writeFieldBegin('type', TType::I32, 3);
+      $xfer += $output->writeI32($this->type);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->inputs !== null) {
+      if (!is_array($this->inputs)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('inputs', TType::LST, 4);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->inputs));
+        {
+          foreach ($this->inputs as $iter50)
+          {
+            $xfer += $iter50->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->outputs !== null) {
+      if (!is_array($this->outputs)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('outputs', TType::LST, 5);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->outputs));
+        {
+          foreach ($this->outputs as $iter51)
+          {
+            $xfer += $iter51->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->applications !== null) {
+      if (!is_array($this->applications)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('applications', TType::LST, 6);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->applications));
+        {
+          foreach ($this->applications as $iter52)
+          {
+            $xfer += $iter52->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->connections !== null) {
+      if (!is_array($this->connections)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('connections', TType::LST, 7);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->connections));
+        {
+          foreach ($this->connections as $iter53)
+          {
+            $xfer += $iter53->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->statuses !== null) {
+      if (!is_array($this->statuses)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('statuses', TType::LST, 8);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->statuses));
+        {
+          foreach ($this->statuses as $iter54)
+          {
+            $xfer += $iter54->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->errors !== null) {
+      if (!is_array($this->errors)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('errors', TType::LST, 9);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->errors));
+        {
+          foreach ($this->errors as $iter55)
+          {
+            $xfer += $iter55->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->createdAt !== null) {
+      $xfer += $output->writeFieldBegin('createdAt', TType::I64, 10);
+      $xfer += $output->writeI64($this->createdAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->updatedAt !== null) {
+      $xfer += $output->writeFieldBegin('updatedAt', TType::I64, 11);
+      $xfer += $output->writeI64($this->updatedAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class AiravataWorkflow {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $id = "DO_NOT_SET_AT_CLIENTS";
+  /**
+   * @var string
+   */
+  public $name = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+  /**
+   * @var string
+   */
+  public $userName = null;
+  /**
+   * @var string
+   */
+  public $storageResourceId = null;
+  /**
+   * @var string
+   */
+  public $description = null;
+  /**
+   * @var bool
+   */
+  public $enableEmailNotification = null;
+  /**
+   * @var \Airavata\Model\Workflow\NotificationEmail[]
+   */
+  public $notificationEmails = null;
+  /**
+   * @var \Airavata\Model\Workflow\WorkflowApplication[]
+   */
+  public $applications = null;
+  /**
+   * @var \Airavata\Model\Workflow\WorkflowHandler[]
+   */
+  public $handlers = null;
+  /**
+   * @var \Airavata\Model\Workflow\WorkflowConnection[]
+   */
+  public $connections = null;
+  /**
+   * @var \Airavata\Model\Workflow\WorkflowStatus[]
+   */
+  public $statuses = null;
+  /**
+   * @var \Airavata\Model\Commons\ErrorModel[]
+   */
+  public $errors = null;
+  /**
+   * @var int
+   */
+  public $createdAt = null;
+  /**
+   * @var int
+   */
+  public $updatedAt = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'id',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'name',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'userName',
+          'type' => TType::STRING,
+          ),
+        5 => array(
+          'var' => 'storageResourceId',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'description',
+          'type' => TType::STRING,
+          ),
+        7 => array(
+          'var' => 'enableEmailNotification',
+          'type' => TType::BOOL,
+          ),
+        8 => array(
+          'var' => 'notificationEmails',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workflow\NotificationEmail',
+            ),
+          ),
+        9 => array(
+          'var' => 'applications',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workflow\WorkflowApplication',
+            ),
+          ),
+        10 => array(
+          'var' => 'handlers',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workflow\WorkflowHandler',
+            ),
+          ),
+        11 => array(
+          'var' => 'connections',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workflow\WorkflowConnection',
+            ),
+          ),
+        12 => array(
+          'var' => 'statuses',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Workflow\WorkflowStatus',
+            ),
+          ),
+        13 => array(
+          'var' => 'errors',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\Airavata\Model\Commons\ErrorModel',
+            ),
+          ),
+        14 => array(
+          'var' => 'createdAt',
+          'type' => TType::I64,
+          ),
+        15 => array(
+          'var' => 'updatedAt',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['id'])) {
+        $this->id = $vals['id'];
+      }
+      if (isset($vals['name'])) {
+        $this->name = $vals['name'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+      if (isset($vals['userName'])) {
+        $this->userName = $vals['userName'];
+      }
+      if (isset($vals['storageResourceId'])) {
+        $this->storageResourceId = $vals['storageResourceId'];
+      }
+      if (isset($vals['description'])) {
+        $this->description = $vals['description'];
+      }
+      if (isset($vals['enableEmailNotification'])) {
+        $this->enableEmailNotification = $vals['enableEmailNotification'];
+      }
+      if (isset($vals['notificationEmails'])) {
+        $this->notificationEmails = $vals['notificationEmails'];
+      }
+      if (isset($vals['applications'])) {
+        $this->applications = $vals['applications'];
+      }
+      if (isset($vals['handlers'])) {
+        $this->handlers = $vals['handlers'];
+      }
+      if (isset($vals['connections'])) {
+        $this->connections = $vals['connections'];
+      }
+      if (isset($vals['statuses'])) {
+        $this->statuses = $vals['statuses'];
+      }
+      if (isset($vals['errors'])) {
+        $this->errors = $vals['errors'];
+      }
+      if (isset($vals['createdAt'])) {
+        $this->createdAt = $vals['createdAt'];
+      }
+      if (isset($vals['updatedAt'])) {
+        $this->updatedAt = $vals['updatedAt'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'AiravataWorkflow';
+  }
+
+  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->id);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->name);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->userName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->storageResourceId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->description);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->enableEmailNotification);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::LST) {
+            $this->notificationEmails = array();
+            $_size56 = 0;
+            $_etype59 = 0;
+            $xfer += $input->readListBegin($_etype59, $_size56);
+            for ($_i60 = 0; $_i60 < $_size56; ++$_i60)
+            {
+              $elem61 = null;
+              $elem61 = new \Airavata\Model\Workflow\NotificationEmail();
+              $xfer += $elem61->read($input);
+              $this->notificationEmails []= $elem61;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::LST) {
+            $this->applications = array();
+            $_size62 = 0;
+            $_etype65 = 0;
+            $xfer += $input->readListBegin($_etype65, $_size62);
+            for ($_i66 = 0; $_i66 < $_size62; ++$_i66)
+            {
+              $elem67 = null;
+              $elem67 = new \Airavata\Model\Workflow\WorkflowApplication();
+              $xfer += $elem67->read($input);
+              $this->applications []= $elem67;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::LST) {
+            $this->handlers = array();
+            $_size68 = 0;
+            $_etype71 = 0;
+            $xfer += $input->readListBegin($_etype71, $_size68);
+            for ($_i72 = 0; $_i72 < $_size68; ++$_i72)
+            {
+              $elem73 = null;
+              $elem73 = new \Airavata\Model\Workflow\WorkflowHandler();
+              $xfer += $elem73->read($input);
+              $this->handlers []= $elem73;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 11:
+          if ($ftype == TType::LST) {
+            $this->connections = array();
+            $_size74 = 0;
+            $_etype77 = 0;
+            $xfer += $input->readListBegin($_etype77, $_size74);
+            for ($_i78 = 0; $_i78 < $_size74; ++$_i78)
+            {
+              $elem79 = null;
+              $elem79 = new \Airavata\Model\Workflow\WorkflowConnection();
+              $xfer += $elem79->read($input);
+              $this->connections []= $elem79;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
+          if ($ftype == TType::LST) {
+            $this->statuses = array();
+            $_size80 = 0;
+            $_etype83 = 0;
+            $xfer += $input->readListBegin($_etype83, $_size80);
+            for ($_i84 = 0; $_i84 < $_size80; ++$_i84)
+            {
+              $elem85 = null;
+              $elem85 = new \Airavata\Model\Workflow\WorkflowStatus();
+              $xfer += $elem85->read($input);
+              $this->statuses []= $elem85;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 13:
+          if ($ftype == TType::LST) {
+            $this->errors = array();
+            $_size86 = 0;
+            $_etype89 = 0;
+            $xfer += $input->readListBegin($_etype89, $_size86);
+            for ($_i90 = 0; $_i90 < $_size86; ++$_i90)
+            {
+              $elem91 = null;
+              $elem91 = new \Airavata\Model\Commons\ErrorModel();
+              $xfer += $elem91->read($input);
+              $this->errors []= $elem91;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 14:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->createdAt);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 15:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->updatedAt);
+          } 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('AiravataWorkflow');
+    if ($this->id !== null) {
+      $xfer += $output->writeFieldBegin('id', TType::STRING, 1);
+      $xfer += $output->writeString($this->id);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->name !== null) {
+      $xfer += $output->writeFieldBegin('name', TType::STRING, 2);
+      $xfer += $output->writeString($this->name);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 3);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->userName !== null) {
+      $xfer += $output->writeFieldBegin('userName', TType::STRING, 4);
+      $xfer += $output->writeString($this->userName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->storageResourceId !== null) {
+      $xfer += $output->writeFieldBegin('storageResourceId', TType::STRING, 5);
+      $xfer += $output->writeString($this->storageResourceId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->description !== null) {
+      $xfer += $output->writeFieldBegin('description', TType::STRING, 6);
+      $xfer += $output->writeString($this->description);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->enableEmailNotification !== null) {
+      $xfer += $output->writeFieldBegin('enableEmailNotification', TType::BOOL, 7);
+      $xfer += $output->writeBool($this->enableEmailNotification);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->notificationEmails !== null) {
+      if (!is_array($this->notificationEmails)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('notificationEmails', TType::LST, 8);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->notificationEmails));
+        {
+          foreach ($this->notificationEmails as $iter92)
+          {
+            $xfer += $iter92->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->applications !== null) {
+      if (!is_array($this->applications)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('applications', TType::LST, 9);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->applications));
+        {
+          foreach ($this->applications as $iter93)
+          {
+            $xfer += $iter93->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->handlers !== null) {
+      if (!is_array($this->handlers)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('handlers', TType::LST, 10);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->handlers));
+        {
+          foreach ($this->handlers as $iter94)
+          {
+            $xfer += $iter94->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->connections !== null) {
+      if (!is_array($this->connections)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('connections', TType::LST, 11);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->connections));
+        {
+          foreach ($this->connections as $iter95)
+          {
+            $xfer += $iter95->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->statuses !== null) {
+      if (!is_array($this->statuses)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('statuses', TType::LST, 12);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->statuses));
+        {
+          foreach ($this->statuses as $iter96)
+          {
+            $xfer += $iter96->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->errors !== null) {
+      if (!is_array($this->errors)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('errors', TType::LST, 13);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->errors));
+        {
+          foreach ($this->errors as $iter97)
+          {
+            $xfer += $iter97->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->createdAt !== null) {
+      $xfer += $output->writeFieldBegin('createdAt', TType::I64, 14);
+      $xfer += $output->writeI64($this->createdAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->updatedAt !== null) {
+      $xfer += $output->writeFieldBegin('updatedAt', TType::I64, 15);
+      $xfer += $output->writeI64($this->updatedAt);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+