You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/03/02 21:27:47 UTC

[1/7] airavata git commit: adding CRUD operations to gateway - AIRAVATA-1608, AIRAVATA-1604

Repository: airavata
Updated Branches:
  refs/heads/master ed6d1af7e -> 658e5e9e6


http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/RegistryModelType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/RegistryModelType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/RegistryModelType.java
index 13a4134..b6557f3 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/RegistryModelType.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/RegistryModelType.java
@@ -24,6 +24,7 @@ public enum RegistryModelType {
     GROUP,
     USER,
     PROJECT,
+    GATEWAY,
     EXPERIMENT,
     EXPERIMENT_INPUT,
     EXPERIMENT_OUTPUT,


[4/7] airavata git commit: adding CRUD operations to gateway - AIRAVATA-1608, AIRAVATA-1604

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index 397421e..776ee04 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -33,6 +33,12 @@ class AiravataIf {
  public:
   virtual ~AiravataIf() {}
   virtual void getAPIVersion(std::string& _return) = 0;
+  virtual void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway) = 0;
+  virtual void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) = 0;
+  virtual void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId) = 0;
+  virtual bool deleteGateway(const std::string& gatewayId) = 0;
+  virtual void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return) = 0;
+  virtual bool isGatewayExist(const std::string& gatewayId) = 0;
   virtual void createProject(std::string& _return, const  ::apache::airavata::model::workspace::Project& project) = 0;
   virtual void updateProject(const std::string& projectId, const  ::apache::airavata::model::workspace::Project& updatedProject) = 0;
   virtual void getProject( ::apache::airavata::model::workspace::Project& _return, const std::string& projectId) = 0;
@@ -169,6 +175,26 @@ class AiravataNull : virtual public AiravataIf {
   void getAPIVersion(std::string& /* _return */) {
     return;
   }
+  void addGateway(std::string& /* _return */, const  ::apache::airavata::model::workspace::Gateway& /* gateway */) {
+    return;
+  }
+  void updateGateway(const std::string& /* gatewayId */, const  ::apache::airavata::model::workspace::Gateway& /* updatedGateway */) {
+    return;
+  }
+  void getGateway( ::apache::airavata::model::workspace::Gateway& /* _return */, const std::string& /* gatewayId */) {
+    return;
+  }
+  bool deleteGateway(const std::string& /* gatewayId */) {
+    bool _return = false;
+    return _return;
+  }
+  void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & /* _return */) {
+    return;
+  }
+  bool isGatewayExist(const std::string& /* gatewayId */) {
+    bool _return = false;
+    return _return;
+  }
   void createProject(std::string& /* _return */, const  ::apache::airavata::model::workspace::Project& /* project */) {
     return;
   }
@@ -459,81 +485,862 @@ class AiravataNull : virtual public AiravataIf {
   void registerGatewayResourceProfile(std::string& /* _return */, const  ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile& /* gatewayResourceProfile */) {
     return;
   }
-  void getGatewayResourceProfile( ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile& /* _return */, const std::string& /* gatewayID */) {
-    return;
+  void getGatewayResourceProfile( ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile& /* _return */, const std::string& /* gatewayID */) {
+    return;
+  }
+  bool updateGatewayResourceProfile(const std::string& /* gatewayID */, const  ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile& /* gatewayResourceProfile */) {
+    bool _return = false;
+    return _return;
+  }
+  bool deleteGatewayResourceProfile(const std::string& /* gatewayID */) {
+    bool _return = false;
+    return _return;
+  }
+  bool addGatewayComputeResourcePreference(const std::string& /* gatewayID */, const std::string& /* computeResourceId */, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& /* computeResourcePreference */) {
+    bool _return = false;
+    return _return;
+  }
+  void getGatewayComputeResourcePreference( ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& /* _return */, const std::string& /* gatewayID */, const std::string& /* computeResourceId */) {
+    return;
+  }
+  void getAllGatewayComputeResourcePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & /* _return */, const std::string& /* gatewayID */) {
+    return;
+  }
+  void getAllGatewayComputeResources(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & /* _return */) {
+    return;
+  }
+  bool updateGatewayComputeResourcePreference(const std::string& /* gatewayID */, const std::string& /* computeResourceId */, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& /* computeResourcePreference */) {
+    bool _return = false;
+    return _return;
+  }
+  bool deleteGatewayComputeResourcePreference(const std::string& /* gatewayID */, const std::string& /* computeResourceId */) {
+    bool _return = false;
+    return _return;
+  }
+  void getAllWorkflows(std::vector<std::string> & /* _return */) {
+    return;
+  }
+  void getWorkflow( ::Workflow& /* _return */, const std::string& /* workflowTemplateId */) {
+    return;
+  }
+  void deleteWorkflow(const std::string& /* workflowTemplateId */) {
+    return;
+  }
+  void registerWorkflow(std::string& /* _return */, const  ::Workflow& /* workflow */) {
+    return;
+  }
+  void updateWorkflow(const std::string& /* workflowTemplateId */, const  ::Workflow& /* workflow */) {
+    return;
+  }
+  void getWorkflowTemplateId(std::string& /* _return */, const std::string& /* workflowName */) {
+    return;
+  }
+  bool isWorkflowExistWithName(const std::string& /* workflowName */) {
+    bool _return = false;
+    return _return;
+  }
+};
+
+
+class Airavata_getAPIVersion_args {
+ public:
+
+  Airavata_getAPIVersion_args() {
+  }
+
+  virtual ~Airavata_getAPIVersion_args() throw() {}
+
+
+  bool operator == (const Airavata_getAPIVersion_args & /* rhs */) const
+  {
+    return true;
+  }
+  bool operator != (const Airavata_getAPIVersion_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAPIVersion_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getAPIVersion_pargs {
+ public:
+
+
+  virtual ~Airavata_getAPIVersion_pargs() throw() {}
+
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAPIVersion_result__isset {
+  _Airavata_getAPIVersion_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getAPIVersion_result__isset;
+
+class Airavata_getAPIVersion_result {
+ public:
+
+  Airavata_getAPIVersion_result() : success() {
+  }
+
+  virtual ~Airavata_getAPIVersion_result() throw() {}
+
+  std::string success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getAPIVersion_result__isset __isset;
+
+  void __set_success(const std::string& val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_getAPIVersion_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAPIVersion_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAPIVersion_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAPIVersion_presult__isset {
+  _Airavata_getAPIVersion_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getAPIVersion_presult__isset;
+
+class Airavata_getAPIVersion_presult {
+ public:
+
+
+  virtual ~Airavata_getAPIVersion_presult() throw() {}
+
+  std::string* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getAPIVersion_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_addGateway_args {
+ public:
+
+  Airavata_addGateway_args() {
+  }
+
+  virtual ~Airavata_addGateway_args() throw() {}
+
+   ::apache::airavata::model::workspace::Gateway gateway;
+
+  void __set_gateway(const  ::apache::airavata::model::workspace::Gateway& val) {
+    gateway = val;
+  }
+
+  bool operator == (const Airavata_addGateway_args & rhs) const
+  {
+    if (!(gateway == rhs.gateway))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_addGateway_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_addGateway_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_addGateway_pargs {
+ public:
+
+
+  virtual ~Airavata_addGateway_pargs() throw() {}
+
+  const  ::apache::airavata::model::workspace::Gateway* gateway;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_addGateway_result__isset {
+  _Airavata_addGateway_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_addGateway_result__isset;
+
+class Airavata_addGateway_result {
+ public:
+
+  Airavata_addGateway_result() : success() {
+  }
+
+  virtual ~Airavata_addGateway_result() throw() {}
+
+  std::string success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_addGateway_result__isset __isset;
+
+  void __set_success(const std::string& val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_addGateway_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_addGateway_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_addGateway_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_addGateway_presult__isset {
+  _Airavata_addGateway_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_addGateway_presult__isset;
+
+class Airavata_addGateway_presult {
+ public:
+
+
+  virtual ~Airavata_addGateway_presult() throw() {}
+
+  std::string* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_addGateway_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_updateGateway_args {
+ public:
+
+  Airavata_updateGateway_args() : gatewayId() {
+  }
+
+  virtual ~Airavata_updateGateway_args() throw() {}
+
+  std::string gatewayId;
+   ::apache::airavata::model::workspace::Gateway updatedGateway;
+
+  void __set_gatewayId(const std::string& val) {
+    gatewayId = val;
+  }
+
+  void __set_updatedGateway(const  ::apache::airavata::model::workspace::Gateway& val) {
+    updatedGateway = val;
+  }
+
+  bool operator == (const Airavata_updateGateway_args & rhs) const
+  {
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    if (!(updatedGateway == rhs.updatedGateway))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateGateway_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateGateway_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_updateGateway_pargs {
+ public:
+
+
+  virtual ~Airavata_updateGateway_pargs() throw() {}
+
+  const std::string* gatewayId;
+  const  ::apache::airavata::model::workspace::Gateway* updatedGateway;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateGateway_result__isset {
+  _Airavata_updateGateway_result__isset() : ire(false), ace(false), ase(false) {}
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_updateGateway_result__isset;
+
+class Airavata_updateGateway_result {
+ public:
+
+  Airavata_updateGateway_result() {
+  }
+
+  virtual ~Airavata_updateGateway_result() throw() {}
+
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_updateGateway_result__isset __isset;
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_updateGateway_result & rhs) const
+  {
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateGateway_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateGateway_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateGateway_presult__isset {
+  _Airavata_updateGateway_presult__isset() : ire(false), ace(false), ase(false) {}
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_updateGateway_presult__isset;
+
+class Airavata_updateGateway_presult {
+ public:
+
+
+  virtual ~Airavata_updateGateway_presult() throw() {}
+
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_updateGateway_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getGateway_args {
+ public:
+
+  Airavata_getGateway_args() : gatewayId() {
+  }
+
+  virtual ~Airavata_getGateway_args() throw() {}
+
+  std::string gatewayId;
+
+  void __set_gatewayId(const std::string& val) {
+    gatewayId = val;
+  }
+
+  bool operator == (const Airavata_getGateway_args & rhs) const
+  {
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getGateway_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getGateway_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getGateway_pargs {
+ public:
+
+
+  virtual ~Airavata_getGateway_pargs() throw() {}
+
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getGateway_result__isset {
+  _Airavata_getGateway_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getGateway_result__isset;
+
+class Airavata_getGateway_result {
+ public:
+
+  Airavata_getGateway_result() {
+  }
+
+  virtual ~Airavata_getGateway_result() throw() {}
+
+   ::apache::airavata::model::workspace::Gateway success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getGateway_result__isset __isset;
+
+  void __set_success(const  ::apache::airavata::model::workspace::Gateway& val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_getGateway_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getGateway_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getGateway_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getGateway_presult__isset {
+  _Airavata_getGateway_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getGateway_presult__isset;
+
+class Airavata_getGateway_presult {
+ public:
+
+
+  virtual ~Airavata_getGateway_presult() throw() {}
+
+   ::apache::airavata::model::workspace::Gateway* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getGateway_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_deleteGateway_args {
+ public:
+
+  Airavata_deleteGateway_args() : gatewayId() {
+  }
+
+  virtual ~Airavata_deleteGateway_args() throw() {}
+
+  std::string gatewayId;
+
+  void __set_gatewayId(const std::string& val) {
+    gatewayId = val;
+  }
+
+  bool operator == (const Airavata_deleteGateway_args & rhs) const
+  {
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteGateway_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteGateway_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_deleteGateway_pargs {
+ public:
+
+
+  virtual ~Airavata_deleteGateway_pargs() throw() {}
+
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteGateway_result__isset {
+  _Airavata_deleteGateway_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_deleteGateway_result__isset;
+
+class Airavata_deleteGateway_result {
+ public:
+
+  Airavata_deleteGateway_result() : success(0) {
+  }
+
+  virtual ~Airavata_deleteGateway_result() throw() {}
+
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_deleteGateway_result__isset __isset;
+
+  void __set_success(const bool val) {
+    success = val;
   }
-  bool updateGatewayResourceProfile(const std::string& /* gatewayID */, const  ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile& /* gatewayResourceProfile */) {
-    bool _return = false;
-    return _return;
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
   }
-  bool deleteGatewayResourceProfile(const std::string& /* gatewayID */) {
-    bool _return = false;
-    return _return;
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
+    ace = val;
   }
-  bool addGatewayComputeResourcePreference(const std::string& /* gatewayID */, const std::string& /* computeResourceId */, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& /* computeResourcePreference */) {
-    bool _return = false;
-    return _return;
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
   }
-  void getGatewayComputeResourcePreference( ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& /* _return */, const std::string& /* gatewayID */, const std::string& /* computeResourceId */) {
-    return;
+
+  bool operator == (const Airavata_deleteGateway_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
   }
-  void getAllGatewayComputeResourcePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & /* _return */, const std::string& /* gatewayID */) {
-    return;
+  bool operator != (const Airavata_deleteGateway_result &rhs) const {
+    return !(*this == rhs);
   }
-  void getAllGatewayComputeResources(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & /* _return */) {
-    return;
+
+  bool operator < (const Airavata_deleteGateway_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteGateway_presult__isset {
+  _Airavata_deleteGateway_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_deleteGateway_presult__isset;
+
+class Airavata_deleteGateway_presult {
+ public:
+
+
+  virtual ~Airavata_deleteGateway_presult() throw() {}
+
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_deleteGateway_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getAllGateways_args {
+ public:
+
+  Airavata_getAllGateways_args() {
   }
-  bool updateGatewayComputeResourcePreference(const std::string& /* gatewayID */, const std::string& /* computeResourceId */, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& /* computeResourcePreference */) {
-    bool _return = false;
-    return _return;
+
+  virtual ~Airavata_getAllGateways_args() throw() {}
+
+
+  bool operator == (const Airavata_getAllGateways_args & /* rhs */) const
+  {
+    return true;
   }
-  bool deleteGatewayComputeResourcePreference(const std::string& /* gatewayID */, const std::string& /* computeResourceId */) {
-    bool _return = false;
-    return _return;
+  bool operator != (const Airavata_getAllGateways_args &rhs) const {
+    return !(*this == rhs);
   }
-  void getAllWorkflows(std::vector<std::string> & /* _return */) {
-    return;
+
+  bool operator < (const Airavata_getAllGateways_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getAllGateways_pargs {
+ public:
+
+
+  virtual ~Airavata_getAllGateways_pargs() throw() {}
+
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllGateways_result__isset {
+  _Airavata_getAllGateways_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getAllGateways_result__isset;
+
+class Airavata_getAllGateways_result {
+ public:
+
+  Airavata_getAllGateways_result() {
   }
-  void getWorkflow( ::Workflow& /* _return */, const std::string& /* workflowTemplateId */) {
-    return;
+
+  virtual ~Airavata_getAllGateways_result() throw() {}
+
+  std::vector< ::apache::airavata::model::workspace::Gateway>  success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getAllGateways_result__isset __isset;
+
+  void __set_success(const std::vector< ::apache::airavata::model::workspace::Gateway> & val) {
+    success = val;
   }
-  void deleteWorkflow(const std::string& /* workflowTemplateId */) {
-    return;
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
   }
-  void registerWorkflow(std::string& /* _return */, const  ::Workflow& /* workflow */) {
-    return;
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
+    ace = val;
   }
-  void updateWorkflow(const std::string& /* workflowTemplateId */, const  ::Workflow& /* workflow */) {
-    return;
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
   }
-  void getWorkflowTemplateId(std::string& /* _return */, const std::string& /* workflowName */) {
-    return;
+
+  bool operator == (const Airavata_getAllGateways_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
   }
-  bool isWorkflowExistWithName(const std::string& /* workflowName */) {
-    bool _return = false;
-    return _return;
+  bool operator != (const Airavata_getAllGateways_result &rhs) const {
+    return !(*this == rhs);
   }
+
+  bool operator < (const Airavata_getAllGateways_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
 };
 
+typedef struct _Airavata_getAllGateways_presult__isset {
+  _Airavata_getAllGateways_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getAllGateways_presult__isset;
 
-class Airavata_getAPIVersion_args {
+class Airavata_getAllGateways_presult {
  public:
 
-  Airavata_getAPIVersion_args() {
+
+  virtual ~Airavata_getAllGateways_presult() throw() {}
+
+  std::vector< ::apache::airavata::model::workspace::Gateway> * success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getAllGateways_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_isGatewayExist_args {
+ public:
+
+  Airavata_isGatewayExist_args() : gatewayId() {
   }
 
-  virtual ~Airavata_getAPIVersion_args() throw() {}
+  virtual ~Airavata_isGatewayExist_args() throw() {}
 
+  std::string gatewayId;
 
-  bool operator == (const Airavata_getAPIVersion_args & /* rhs */) const
+  void __set_gatewayId(const std::string& val) {
+    gatewayId = val;
+  }
+
+  bool operator == (const Airavata_isGatewayExist_args & rhs) const
   {
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
     return true;
   }
-  bool operator != (const Airavata_getAPIVersion_args &rhs) const {
+  bool operator != (const Airavata_isGatewayExist_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAPIVersion_args & ) const;
+  bool operator < (const Airavata_isGatewayExist_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -541,41 +1348,42 @@ class Airavata_getAPIVersion_args {
 };
 
 
-class Airavata_getAPIVersion_pargs {
+class Airavata_isGatewayExist_pargs {
  public:
 
 
-  virtual ~Airavata_getAPIVersion_pargs() throw() {}
+  virtual ~Airavata_isGatewayExist_pargs() throw() {}
 
+  const std::string* gatewayId;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_getAPIVersion_result__isset {
-  _Airavata_getAPIVersion_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+typedef struct _Airavata_isGatewayExist_result__isset {
+  _Airavata_isGatewayExist_result__isset() : success(false), ire(false), ace(false), ase(false) {}
   bool success;
   bool ire;
   bool ace;
   bool ase;
-} _Airavata_getAPIVersion_result__isset;
+} _Airavata_isGatewayExist_result__isset;
 
-class Airavata_getAPIVersion_result {
+class Airavata_isGatewayExist_result {
  public:
 
-  Airavata_getAPIVersion_result() : success() {
+  Airavata_isGatewayExist_result() : success(0) {
   }
 
-  virtual ~Airavata_getAPIVersion_result() throw() {}
+  virtual ~Airavata_isGatewayExist_result() throw() {}
 
-  std::string success;
+  bool success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
 
-  _Airavata_getAPIVersion_result__isset __isset;
+  _Airavata_isGatewayExist_result__isset __isset;
 
-  void __set_success(const std::string& val) {
+  void __set_success(const bool val) {
     success = val;
   }
 
@@ -591,7 +1399,7 @@ class Airavata_getAPIVersion_result {
     ase = val;
   }
 
-  bool operator == (const Airavata_getAPIVersion_result & rhs) const
+  bool operator == (const Airavata_isGatewayExist_result & rhs) const
   {
     if (!(success == rhs.success))
       return false;
@@ -603,37 +1411,37 @@ class Airavata_getAPIVersion_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_getAPIVersion_result &rhs) const {
+  bool operator != (const Airavata_isGatewayExist_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAPIVersion_result & ) const;
+  bool operator < (const Airavata_isGatewayExist_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_getAPIVersion_presult__isset {
-  _Airavata_getAPIVersion_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+typedef struct _Airavata_isGatewayExist_presult__isset {
+  _Airavata_isGatewayExist_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
   bool success;
   bool ire;
   bool ace;
   bool ase;
-} _Airavata_getAPIVersion_presult__isset;
+} _Airavata_isGatewayExist_presult__isset;
 
-class Airavata_getAPIVersion_presult {
+class Airavata_isGatewayExist_presult {
  public:
 
 
-  virtual ~Airavata_getAPIVersion_presult() throw() {}
+  virtual ~Airavata_isGatewayExist_presult() throw() {}
 
-  std::string* success;
+  bool* success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
 
-  _Airavata_getAPIVersion_presult__isset __isset;
+  _Airavata_isGatewayExist_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
@@ -14785,6 +15593,24 @@ class AiravataClient : virtual public AiravataIf {
   void getAPIVersion(std::string& _return);
   void send_getAPIVersion();
   void recv_getAPIVersion(std::string& _return);
+  void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway);
+  void send_addGateway(const  ::apache::airavata::model::workspace::Gateway& gateway);
+  void recv_addGateway(std::string& _return);
+  void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
+  void send_updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway);
+  void recv_updateGateway();
+  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId);
+  void send_getGateway(const std::string& gatewayId);
+  void recv_getGateway( ::apache::airavata::model::workspace::Gateway& _return);
+  bool deleteGateway(const std::string& gatewayId);
+  void send_deleteGateway(const std::string& gatewayId);
+  bool recv_deleteGateway();
+  void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return);
+  void send_getAllGateways();
+  void recv_getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return);
+  bool isGatewayExist(const std::string& gatewayId);
+  void send_isGatewayExist(const std::string& gatewayId);
+  bool recv_isGatewayExist();
   void createProject(std::string& _return, const  ::apache::airavata::model::workspace::Project& project);
   void send_createProject(const  ::apache::airavata::model::workspace::Project& project);
   void recv_createProject(std::string& _return);
@@ -15113,6 +15939,12 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
   typedef std::map<std::string, ProcessFunction> ProcessMap;
   ProcessMap processMap_;
   void process_getAPIVersion(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_addGateway(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_updateGateway(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getGateway(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_deleteGateway(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getAllGateways(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_isGatewayExist(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_createProject(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_updateProject(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getProject(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
@@ -15221,6 +16053,12 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
   AiravataProcessor(boost::shared_ptr<AiravataIf> iface) :
     iface_(iface) {
     processMap_["getAPIVersion"] = &AiravataProcessor::process_getAPIVersion;
+    processMap_["addGateway"] = &AiravataProcessor::process_addGateway;
+    processMap_["updateGateway"] = &AiravataProcessor::process_updateGateway;
+    processMap_["getGateway"] = &AiravataProcessor::process_getGateway;
+    processMap_["deleteGateway"] = &AiravataProcessor::process_deleteGateway;
+    processMap_["getAllGateways"] = &AiravataProcessor::process_getAllGateways;
+    processMap_["isGatewayExist"] = &AiravataProcessor::process_isGatewayExist;
     processMap_["createProject"] = &AiravataProcessor::process_createProject;
     processMap_["updateProject"] = &AiravataProcessor::process_updateProject;
     processMap_["getProject"] = &AiravataProcessor::process_getProject;
@@ -15363,6 +16201,63 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
+  void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->addGateway(_return, gateway);
+    }
+    ifaces_[i]->addGateway(_return, gateway);
+    return;
+  }
+
+  void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->updateGateway(gatewayId, updatedGateway);
+    }
+    ifaces_[i]->updateGateway(gatewayId, updatedGateway);
+  }
+
+  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getGateway(_return, gatewayId);
+    }
+    ifaces_[i]->getGateway(_return, gatewayId);
+    return;
+  }
+
+  bool deleteGateway(const std::string& gatewayId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->deleteGateway(gatewayId);
+    }
+    return ifaces_[i]->deleteGateway(gatewayId);
+  }
+
+  void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getAllGateways(_return);
+    }
+    ifaces_[i]->getAllGateways(_return);
+    return;
+  }
+
+  bool isGatewayExist(const std::string& gatewayId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->isGatewayExist(gatewayId);
+    }
+    return ifaces_[i]->isGatewayExist(gatewayId);
+  }
+
   void createProject(std::string& _return, const  ::apache::airavata::model::workspace::Project& project) {
     size_t sz = ifaces_.size();
     size_t i = 0;

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index ca5abee..e68589f 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -44,6 +44,36 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getAPIVersion\n");
   }
 
+  void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway) {
+    // Your implementation goes here
+    printf("addGateway\n");
+  }
+
+  void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) {
+    // Your implementation goes here
+    printf("updateGateway\n");
+  }
+
+  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId) {
+    // Your implementation goes here
+    printf("getGateway\n");
+  }
+
+  bool deleteGateway(const std::string& gatewayId) {
+    // Your implementation goes here
+    printf("deleteGateway\n");
+  }
+
+  void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return) {
+    // Your implementation goes here
+    printf("getAllGateways\n");
+  }
+
+  bool isGatewayExist(const std::string& gatewayId) {
+    // Your implementation goes here
+    printf("isGatewayExist\n");
+  }
+
   void createProject(std::string& _return, const  ::apache::airavata::model::workspace::Project& project) {
     // Your implementation goes here
     printf("createProject\n");

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.cpp
index 574728d..d130bfd 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.cpp
@@ -28,8 +28,6 @@ namespace apache { namespace airavata { namespace model { namespace appcatalog {
 const gatewayResourceProfileModelConstants g_gatewayResourceProfileModel_constants;
 
 gatewayResourceProfileModelConstants::gatewayResourceProfileModelConstants() {
-  DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS";
-
 }
 
 }}}}} // namespace

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.h
index c033c3c..da93846 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_constants.h
@@ -32,7 +32,6 @@ class gatewayResourceProfileModelConstants {
  public:
   gatewayResourceProfileModelConstants();
 
-  std::string DEFAULT_ID;
 };
 
 extern const gatewayResourceProfileModelConstants g_gatewayResourceProfileModel_constants;

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.cpp
index a996421..87fd134 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.cpp
@@ -182,8 +182,8 @@ void swap(ComputeResourcePreference &a, ComputeResourcePreference &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* GatewayResourceProfile::ascii_fingerprint = "42DA2625493A482A59D0742432A025BD";
-const uint8_t GatewayResourceProfile::binary_fingerprint[16] = {0x42,0xDA,0x26,0x25,0x49,0x3A,0x48,0x2A,0x59,0xD0,0x74,0x24,0x32,0xA0,0x25,0xBD};
+const char* GatewayResourceProfile::ascii_fingerprint = "2C13C97D8E01026228E6E378E58505CC";
+const uint8_t GatewayResourceProfile::binary_fingerprint[16] = {0x2C,0x13,0xC9,0x7D,0x8E,0x01,0x02,0x62,0x28,0xE6,0xE3,0x78,0xE5,0x85,0x05,0xCC};
 
 uint32_t GatewayResourceProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -197,7 +197,6 @@ uint32_t GatewayResourceProfile::read(::apache::thrift::protocol::TProtocol* ipr
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_gatewayID = false;
-  bool isset_gatewayName = false;
 
   while (true)
   {
@@ -216,22 +215,6 @@ uint32_t GatewayResourceProfile::read(::apache::thrift::protocol::TProtocol* ipr
         }
         break;
       case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayName);
-          isset_gatewayName = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayDescription);
-          this->__isset.gatewayDescription = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 4:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->computeResourcePreferences.clear();
@@ -262,8 +245,6 @@ uint32_t GatewayResourceProfile::read(::apache::thrift::protocol::TProtocol* ipr
 
   if (!isset_gatewayID)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_gatewayName)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
@@ -275,17 +256,8 @@ uint32_t GatewayResourceProfile::write(::apache::thrift::protocol::TProtocol* op
   xfer += oprot->writeString(this->gatewayID);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("gatewayName", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->gatewayName);
-  xfer += oprot->writeFieldEnd();
-
-  if (this->__isset.gatewayDescription) {
-    xfer += oprot->writeFieldBegin("gatewayDescription", ::apache::thrift::protocol::T_STRING, 3);
-    xfer += oprot->writeString(this->gatewayDescription);
-    xfer += oprot->writeFieldEnd();
-  }
   if (this->__isset.computeResourcePreferences) {
-    xfer += oprot->writeFieldBegin("computeResourcePreferences", ::apache::thrift::protocol::T_LIST, 4);
+    xfer += oprot->writeFieldBegin("computeResourcePreferences", ::apache::thrift::protocol::T_LIST, 2);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->computeResourcePreferences.size()));
       std::vector<ComputeResourcePreference> ::const_iterator _iter7;
@@ -305,8 +277,6 @@ uint32_t GatewayResourceProfile::write(::apache::thrift::protocol::TProtocol* op
 void swap(GatewayResourceProfile &a, GatewayResourceProfile &b) {
   using ::std::swap;
   swap(a.gatewayID, b.gatewayID);
-  swap(a.gatewayName, b.gatewayName);
-  swap(a.gatewayDescription, b.gatewayDescription);
   swap(a.computeResourcePreferences, b.computeResourcePreferences);
   swap(a.__isset, b.__isset);
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.h
index db18209..231d73f 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gatewayResourceProfileModel_types.h
@@ -140,25 +140,22 @@ class ComputeResourcePreference {
 void swap(ComputeResourcePreference &a, ComputeResourcePreference &b);
 
 typedef struct _GatewayResourceProfile__isset {
-  _GatewayResourceProfile__isset() : gatewayDescription(false), computeResourcePreferences(false) {}
-  bool gatewayDescription;
+  _GatewayResourceProfile__isset() : computeResourcePreferences(false) {}
   bool computeResourcePreferences;
 } _GatewayResourceProfile__isset;
 
 class GatewayResourceProfile {
  public:
 
-  static const char* ascii_fingerprint; // = "42DA2625493A482A59D0742432A025BD";
-  static const uint8_t binary_fingerprint[16]; // = {0x42,0xDA,0x26,0x25,0x49,0x3A,0x48,0x2A,0x59,0xD0,0x74,0x24,0x32,0xA0,0x25,0xBD};
+  static const char* ascii_fingerprint; // = "2C13C97D8E01026228E6E378E58505CC";
+  static const uint8_t binary_fingerprint[16]; // = {0x2C,0x13,0xC9,0x7D,0x8E,0x01,0x02,0x62,0x28,0xE6,0xE3,0x78,0xE5,0x85,0x05,0xCC};
 
-  GatewayResourceProfile() : gatewayID("DO_NOT_SET_AT_CLIENTS"), gatewayName(), gatewayDescription() {
+  GatewayResourceProfile() : gatewayID() {
   }
 
   virtual ~GatewayResourceProfile() throw() {}
 
   std::string gatewayID;
-  std::string gatewayName;
-  std::string gatewayDescription;
   std::vector<ComputeResourcePreference>  computeResourcePreferences;
 
   _GatewayResourceProfile__isset __isset;
@@ -167,15 +164,6 @@ class GatewayResourceProfile {
     gatewayID = val;
   }
 
-  void __set_gatewayName(const std::string& val) {
-    gatewayName = val;
-  }
-
-  void __set_gatewayDescription(const std::string& val) {
-    gatewayDescription = val;
-    __isset.gatewayDescription = true;
-  }
-
   void __set_computeResourcePreferences(const std::vector<ComputeResourcePreference> & val) {
     computeResourcePreferences = val;
     __isset.computeResourcePreferences = true;
@@ -185,12 +173,6 @@ class GatewayResourceProfile {
   {
     if (!(gatewayID == rhs.gatewayID))
       return false;
-    if (!(gatewayName == rhs.gatewayName))
-      return false;
-    if (__isset.gatewayDescription != rhs.__isset.gatewayDescription)
-      return false;
-    else if (__isset.gatewayDescription && !(gatewayDescription == rhs.gatewayDescription))
-      return false;
     if (__isset.computeResourcePreferences != rhs.__isset.computeResourcePreferences)
       return false;
     else if (__isset.computeResourcePreferences && !(computeResourcePreferences == rhs.computeResourcePreferences))

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.cpp
index 7bc863a..311ea63 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.cpp
@@ -398,8 +398,8 @@ void swap(User &a, User &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* Gateway::ascii_fingerprint = "07A9615F837F7D0A952B595DD3020972";
-const uint8_t Gateway::binary_fingerprint[16] = {0x07,0xA9,0x61,0x5F,0x83,0x7F,0x7D,0x0A,0x95,0x2B,0x59,0x5D,0xD3,0x02,0x09,0x72};
+const char* Gateway::ascii_fingerprint = "6BA700CA2E5FC52A8DA5ADCF811DC8DA";
+const uint8_t Gateway::binary_fingerprint[16] = {0x6B,0xA7,0x00,0xCA,0x2E,0x5F,0xC5,0x2A,0x8D,0xA5,0xAD,0xCF,0x81,0x1D,0xC8,0xDA};
 
 uint32_t Gateway::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -413,7 +413,6 @@ uint32_t Gateway::read(::apache::thrift::protocol::TProtocol* iprot) {
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_gatewayId = false;
-  bool isset_name = false;
 
   while (true)
   {
@@ -433,8 +432,24 @@ uint32_t Gateway::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->name);
-          isset_name = true;
+          xfer += iprot->readString(this->gatewayName);
+          this->__isset.gatewayName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->domain);
+          this->__isset.domain = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->emailAddress);
+          this->__isset.emailAddress = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -450,8 +465,6 @@ uint32_t Gateway::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_name)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
@@ -463,10 +476,21 @@ uint32_t Gateway::write(::apache::thrift::protocol::TProtocol* oprot) const {
   xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->name);
-  xfer += oprot->writeFieldEnd();
-
+  if (this->__isset.gatewayName) {
+    xfer += oprot->writeFieldBegin("gatewayName", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->gatewayName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.domain) {
+    xfer += oprot->writeFieldBegin("domain", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->domain);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.emailAddress) {
+    xfer += oprot->writeFieldBegin("emailAddress", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->emailAddress);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -475,7 +499,10 @@ uint32_t Gateway::write(::apache::thrift::protocol::TProtocol* oprot) const {
 void swap(Gateway &a, Gateway &b) {
   using ::std::swap;
   swap(a.gatewayId, b.gatewayId);
-  swap(a.name, b.name);
+  swap(a.gatewayName, b.gatewayName);
+  swap(a.domain, b.domain);
+  swap(a.emailAddress, b.emailAddress);
+  swap(a.__isset, b.__isset);
 }
 
 }}}} // namespace

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.h
index f2a68b8..41593a6 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workspaceModel_types.h
@@ -241,34 +241,65 @@ class User {
 
 void swap(User &a, User &b);
 
+typedef struct _Gateway__isset {
+  _Gateway__isset() : gatewayName(false), domain(false), emailAddress(false) {}
+  bool gatewayName;
+  bool domain;
+  bool emailAddress;
+} _Gateway__isset;
 
 class Gateway {
  public:
 
-  static const char* ascii_fingerprint; // = "07A9615F837F7D0A952B595DD3020972";
-  static const uint8_t binary_fingerprint[16]; // = {0x07,0xA9,0x61,0x5F,0x83,0x7F,0x7D,0x0A,0x95,0x2B,0x59,0x5D,0xD3,0x02,0x09,0x72};
+  static const char* ascii_fingerprint; // = "6BA700CA2E5FC52A8DA5ADCF811DC8DA";
+  static const uint8_t binary_fingerprint[16]; // = {0x6B,0xA7,0x00,0xCA,0x2E,0x5F,0xC5,0x2A,0x8D,0xA5,0xAD,0xCF,0x81,0x1D,0xC8,0xDA};
 
-  Gateway() : gatewayId("DO_NOT_SET_AT_CLIENTS"), name() {
+  Gateway() : gatewayId(), gatewayName(), domain(), emailAddress() {
   }
 
   virtual ~Gateway() throw() {}
 
   std::string gatewayId;
-  std::string name;
+  std::string gatewayName;
+  std::string domain;
+  std::string emailAddress;
+
+  _Gateway__isset __isset;
 
   void __set_gatewayId(const std::string& val) {
     gatewayId = val;
   }
 
-  void __set_name(const std::string& val) {
-    name = val;
+  void __set_gatewayName(const std::string& val) {
+    gatewayName = val;
+    __isset.gatewayName = true;
+  }
+
+  void __set_domain(const std::string& val) {
+    domain = val;
+    __isset.domain = true;
+  }
+
+  void __set_emailAddress(const std::string& val) {
+    emailAddress = val;
+    __isset.emailAddress = true;
   }
 
   bool operator == (const Gateway & rhs) const
   {
     if (!(gatewayId == rhs.gatewayId))
       return false;
-    if (!(name == rhs.name))
+    if (__isset.gatewayName != rhs.__isset.gatewayName)
+      return false;
+    else if (__isset.gatewayName && !(gatewayName == rhs.gatewayName))
+      return false;
+    if (__isset.domain != rhs.__isset.domain)
+      return false;
+    else if (__isset.domain && !(domain == rhs.domain))
+      return false;
+    if (__isset.emailAddress != rhs.__isset.emailAddress)
+      return false;
+    else if (__isset.emailAddress && !(emailAddress == rhs.emailAddress))
       return false;
     return true;
   }


[7/7] airavata git commit: adding CRUD operations to gateway - AIRAVATA-1608, AIRAVATA-1604

Posted by ch...@apache.org.
adding CRUD operations to gateway - AIRAVATA-1608, AIRAVATA-1604


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

Branch: refs/heads/master
Commit: 658e5e9e66147830adb848ca9a9f4700e10a5583
Parents: ed6d1af
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Mon Mar 2 15:27:37 2015 -0500
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Mon Mar 2 15:27:37 2015 -0500

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |   115 +-
 .../java/org/apache/airavata/api/Airavata.java  | 10814 ++++++++++++++---
 .../main/resources/lib/airavata/Airavata.cpp    |  3411 +++++-
 .../src/main/resources/lib/airavata/Airavata.h  |  1025 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |    30 +
 .../gatewayResourceProfileModel_constants.cpp   |     2 -
 .../gatewayResourceProfileModel_constants.h     |     1 -
 .../gatewayResourceProfileModel_types.cpp       |    36 +-
 .../gatewayResourceProfileModel_types.h         |    26 +-
 .../lib/airavata/workspaceModel_types.cpp       |    51 +-
 .../lib/airavata/workspaceModel_types.h         |    45 +-
 .../resources/lib/Airavata/API/Airavata.php     |  4978 +++++---
 .../Model/AppCatalog/GatewayProfile/Types.php   |    46 +-
 .../lib/Airavata/Model/Workspace/Types.php      |    58 +-
 .../client/samples/RegisterSampleData.java      |     1 -
 .../tools/RegisterOGCEUS3Application.java       |     2 +-
 .../tools/RegisterSampleApplications.java       |     1 -
 .../client/tools/RegisterUS3Application.java    |     2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |   220 +-
 .../airavata/model/workspace/Gateway.java       |   334 +-
 .../airavataAPI.thrift                          |    32 +-
 .../gatewayResourceProfileModel.thrift          |     8 +-
 .../workspaceModel.thrift                       |     6 +-
 .../data/impl/GwyResourceProfileImpl.java       |    28 +-
 .../catalog/data/model/GatewayProfile.java      |    19 -
 .../data/resources/AbstractResource.java        |     1 -
 .../data/resources/GatewayProfileResource.java  |    30 +-
 .../catalog/data/util/AppCatalogJPAUtils.java   |     2 -
 .../data/util/AppCatalogThriftConversion.java   |     2 -
 .../src/main/resources/appcatalog-derby.sql     |     2 -
 .../src/main/resources/appcatalog-mysql.sql     |     4 +-
 .../app/catalog/test/GatewayProfileTest.java    |     5 +-
 .../src/test/resources/appcatalog-derby.sql     |     2 -
 .../integration/tools/DocumentCreatorNew.java   |     4 +-
 .../persistance/registry/jpa/ResourceUtils.java |    33 +
 .../registry/jpa/impl/GatewayRegistry.java      |    76 +
 .../registry/jpa/impl/RegistryImpl.java         |    20 +
 .../jpa/utils/ThriftDataModelConversion.java    |    19 +
 .../airavata/registry/cpi/ParentDataType.java   |     3 +-
 .../registry/cpi/RegistryModelType.java         |     1 +
 40 files changed, 16714 insertions(+), 4781 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 722c1d0..c23ad66 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -59,6 +59,7 @@ import org.apache.airavata.model.error.InvalidRequestException;
 import org.apache.airavata.model.error.ProjectNotFoundException;
 import org.apache.airavata.model.messaging.event.ExperimentStatusChangeEvent;
 import org.apache.airavata.model.messaging.event.MessageType;
+import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.model.workspace.Project;
 import org.apache.airavata.model.workspace.experiment.ComputationalResourceScheduling;
 import org.apache.airavata.model.workspace.experiment.DataTransferDetails;
@@ -117,7 +118,119 @@ public class AiravataServerHandler implements Airavata.Iface {
         return airavataAPIConstants.AIRAVATA_API_VERSION;
     }
 
-    /**
+    @Override
+    public String addGateway(Gateway gateway) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        try {
+            registry = RegistryFactory.getDefaultRegistry();
+            if (!validateString(gateway.getGatewayId())){
+                logger.error("Gateway id cannot be empty...");
+                throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            return (String)registry.add(ParentDataType.GATEWAY, gateway);
+        } catch (RegistryException e) {
+            logger.error("Error while adding gateway", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while adding gateway. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public void updateGateway(String gatewayId, Gateway updatedGateway) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        try {
+            registry = RegistryFactory.getDefaultRegistry();
+            if (!registry.isExist(RegistryModelType.GATEWAY, gatewayId)){
+                logger.error("Gateway does not exist in the system. Please provide a valid gateway ID...");
+                AiravataSystemException exception = new AiravataSystemException();
+                exception.setMessage("Gateway does not exist in the system. Please provide a valid gateway ID...");
+                throw exception;
+            }
+            registry.update(RegistryModelType.GATEWAY, updatedGateway, gatewayId);
+        } catch (RegistryException e) {
+            logger.error("Error while updating the gateway", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while updating the gateway. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public Gateway getGateway(String gatewayId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        try {
+            registry = RegistryFactory.getDefaultRegistry();
+            if (!registry.isExist(RegistryModelType.GATEWAY, gatewayId)){
+                logger.error("Gateway does not exist in the system. Please provide a valid gateway ID...");
+                AiravataSystemException exception = new AiravataSystemException();
+                exception.setMessage("Gateway does not exist in the system. Please provide a valid gateway ID...");
+                throw exception;
+            }
+            return (Gateway)registry.get(RegistryModelType.GATEWAY, gatewayId);
+        } catch (RegistryException e) {
+            logger.error("Error while getting the gateway", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while getting the gateway. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public boolean deleteGateway(String gatewayId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        try {
+            registry = RegistryFactory.getDefaultRegistry();
+            if (!registry.isExist(RegistryModelType.GATEWAY, gatewayId)){
+                logger.error("Gateway does not exist in the system. Please provide a valid gateway ID...");
+                AiravataSystemException exception = new AiravataSystemException();
+                exception.setMessage("Gateway does not exist in the system. Please provide a valid gateway ID...");
+                throw exception;
+            }
+            registry.remove(RegistryModelType.GATEWAY, gatewayId);
+            return true;
+        } catch (RegistryException e) {
+            logger.error("Error while deleting the gateway", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while deleting the gateway. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public List<Gateway> getAllGateways() throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        try {
+            List<Gateway> gateways = new ArrayList<Gateway>();
+            registry = RegistryFactory.getDefaultRegistry();
+            List<Object> list = registry.get(RegistryModelType.GATEWAY, null, null);
+            for (Object gateway : list){
+                gateways.add((Gateway)gateway);
+            }
+            return gateways;
+        } catch (RegistryException e) {
+            logger.error("Error while getting all the gateways", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while getting all the gateways. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    public boolean isGatewayExist(String gatewayId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        try {
+            registry = RegistryFactory.getDefaultRegistry();
+            return registry.isExist(RegistryModelType.GATEWAY, gatewayId);
+        } catch (RegistryException e) {
+            logger.error("Error while getting gateway", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while getting gateway. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+        /**
      * Create a Project
      *
      * @param project


[5/7] airavata git commit: adding CRUD operations to gateway - AIRAVATA-1608, AIRAVATA-1604

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index 1a7bbbb..446900c 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -226,7 +226,7 @@ uint32_t Airavata_getAPIVersion_presult::read(::apache::thrift::protocol::TProto
   return xfer;
 }
 
-uint32_t Airavata_createProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addGateway_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -237,7 +237,7 @@ uint32_t Airavata_createProject_args::read(::apache::thrift::protocol::TProtocol
 
   using ::apache::thrift::protocol::TProtocolException;
 
-  bool isset_project = false;
+  bool isset_gateway = false;
 
   while (true)
   {
@@ -249,8 +249,8 @@ uint32_t Airavata_createProject_args::read(::apache::thrift::protocol::TProtocol
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->project.read(iprot);
-          isset_project = true;
+          xfer += this->gateway.read(iprot);
+          isset_gateway = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -264,17 +264,17 @@ uint32_t Airavata_createProject_args::read(::apache::thrift::protocol::TProtocol
 
   xfer += iprot->readStructEnd();
 
-  if (!isset_project)
+  if (!isset_gateway)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_createProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addGateway_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("Airavata_createProject_args");
+  xfer += oprot->writeStructBegin("Airavata_addGateway_args");
 
-  xfer += oprot->writeFieldBegin("project", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += this->project.write(oprot);
+  xfer += oprot->writeFieldBegin("gateway", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->gateway.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -282,12 +282,12 @@ uint32_t Airavata_createProject_args::write(::apache::thrift::protocol::TProtoco
   return xfer;
 }
 
-uint32_t Airavata_createProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addGateway_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("Airavata_createProject_pargs");
+  xfer += oprot->writeStructBegin("Airavata_addGateway_pargs");
 
-  xfer += oprot->writeFieldBegin("project", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += (*(this->project)).write(oprot);
+  xfer += oprot->writeFieldBegin("gateway", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->gateway)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -295,7 +295,7 @@ uint32_t Airavata_createProject_pargs::write(::apache::thrift::protocol::TProtoc
   return xfer;
 }
 
-uint32_t Airavata_createProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addGateway_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -359,11 +359,11 @@ uint32_t Airavata_createProject_result::read(::apache::thrift::protocol::TProtoc
   return xfer;
 }
 
-uint32_t Airavata_createProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addGateway_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_createProject_result");
+  xfer += oprot->writeStructBegin("Airavata_addGateway_result");
 
   if (this->__isset.success) {
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
@@ -387,7 +387,7 @@ uint32_t Airavata_createProject_result::write(::apache::thrift::protocol::TProto
   return xfer;
 }
 
-uint32_t Airavata_createProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addGateway_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -451,7 +451,7 @@ uint32_t Airavata_createProject_presult::read(::apache::thrift::protocol::TProto
   return xfer;
 }
 
-uint32_t Airavata_updateProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateGateway_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -462,8 +462,8 @@ uint32_t Airavata_updateProject_args::read(::apache::thrift::protocol::TProtocol
 
   using ::apache::thrift::protocol::TProtocolException;
 
-  bool isset_projectId = false;
-  bool isset_updatedProject = false;
+  bool isset_gatewayId = false;
+  bool isset_updatedGateway = false;
 
   while (true)
   {
@@ -475,16 +475,16 @@ uint32_t Airavata_updateProject_args::read(::apache::thrift::protocol::TProtocol
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->projectId);
-          isset_projectId = true;
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->updatedProject.read(iprot);
-          isset_updatedProject = true;
+          xfer += this->updatedGateway.read(iprot);
+          isset_updatedGateway = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -498,23 +498,23 @@ uint32_t Airavata_updateProject_args::read(::apache::thrift::protocol::TProtocol
 
   xfer += iprot->readStructEnd();
 
-  if (!isset_projectId)
+  if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_updatedProject)
+  if (!isset_updatedGateway)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_updateProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateGateway_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("Airavata_updateProject_args");
+  xfer += oprot->writeStructBegin("Airavata_updateGateway_args");
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->projectId);
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("updatedProject", ::apache::thrift::protocol::T_STRUCT, 2);
-  xfer += this->updatedProject.write(oprot);
+  xfer += oprot->writeFieldBegin("updatedGateway", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->updatedGateway.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -522,16 +522,16 @@ uint32_t Airavata_updateProject_args::write(::apache::thrift::protocol::TProtoco
   return xfer;
 }
 
-uint32_t Airavata_updateProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateGateway_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("Airavata_updateProject_pargs");
+  xfer += oprot->writeStructBegin("Airavata_updateGateway_pargs");
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->projectId)));
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("updatedProject", ::apache::thrift::protocol::T_STRUCT, 2);
-  xfer += (*(this->updatedProject)).write(oprot);
+  xfer += oprot->writeFieldBegin("updatedGateway", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->updatedGateway)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -539,7 +539,7 @@ uint32_t Airavata_updateProject_pargs::write(::apache::thrift::protocol::TProtoc
   return xfer;
 }
 
-uint32_t Airavata_updateProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateGateway_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -583,14 +583,6 @@ uint32_t Airavata_updateProject_result::read(::apache::thrift::protocol::TProtoc
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -603,11 +595,11 @@ uint32_t Airavata_updateProject_result::read(::apache::thrift::protocol::TProtoc
   return xfer;
 }
 
-uint32_t Airavata_updateProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateGateway_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_updateProject_result");
+  xfer += oprot->writeStructBegin("Airavata_updateGateway_result");
 
   if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -621,17 +613,13 @@ uint32_t Airavata_updateProject_result::write(::apache::thrift::protocol::TProto
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.pnfe) {
-    xfer += oprot->writeFieldBegin("pnfe", ::apache::thrift::protocol::T_STRUCT, 4);
-    xfer += this->pnfe.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
-uint32_t Airavata_updateProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateGateway_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -675,14 +663,6 @@ uint32_t Airavata_updateProject_presult::read(::apache::thrift::protocol::TProto
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -695,7 +675,7 @@ uint32_t Airavata_updateProject_presult::read(::apache::thrift::protocol::TProto
   return xfer;
 }
 
-uint32_t Airavata_getProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getGateway_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -706,7 +686,7 @@ uint32_t Airavata_getProject_args::read(::apache::thrift::protocol::TProtocol* i
 
   using ::apache::thrift::protocol::TProtocolException;
 
-  bool isset_projectId = false;
+  bool isset_gatewayId = false;
 
   while (true)
   {
@@ -718,8 +698,8 @@ uint32_t Airavata_getProject_args::read(::apache::thrift::protocol::TProtocol* i
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->projectId);
-          isset_projectId = true;
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -733,17 +713,17 @@ uint32_t Airavata_getProject_args::read(::apache::thrift::protocol::TProtocol* i
 
   xfer += iprot->readStructEnd();
 
-  if (!isset_projectId)
+  if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getGateway_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("Airavata_getProject_args");
+  xfer += oprot->writeStructBegin("Airavata_getGateway_args");
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->projectId);
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -751,12 +731,12 @@ uint32_t Airavata_getProject_args::write(::apache::thrift::protocol::TProtocol*
   return xfer;
 }
 
-uint32_t Airavata_getProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getGateway_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("Airavata_getProject_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getGateway_pargs");
 
-  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->projectId)));
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -764,7 +744,7 @@ uint32_t Airavata_getProject_pargs::write(::apache::thrift::protocol::TProtocol*
   return xfer;
 }
 
-uint32_t Airavata_getProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getGateway_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -816,14 +796,6 @@ uint32_t Airavata_getProject_result::read(::apache::thrift::protocol::TProtocol*
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -836,11 +808,11 @@ uint32_t Airavata_getProject_result::read(::apache::thrift::protocol::TProtocol*
   return xfer;
 }
 
-uint32_t Airavata_getProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getGateway_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getProject_result");
+  xfer += oprot->writeStructBegin("Airavata_getGateway_result");
 
   if (this->__isset.success) {
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
@@ -858,17 +830,13 @@ uint32_t Airavata_getProject_result::write(::apache::thrift::protocol::TProtocol
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.pnfe) {
-    xfer += oprot->writeFieldBegin("pnfe", ::apache::thrift::protocol::T_STRUCT, 4);
-    xfer += this->pnfe.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
-uint32_t Airavata_getProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getGateway_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -920,14 +888,6 @@ uint32_t Airavata_getProject_presult::read(::apache::thrift::protocol::TProtocol
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->pnfe.read(iprot);
-          this->__isset.pnfe = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -940,7 +900,7 @@ uint32_t Airavata_getProject_presult::read(::apache::thrift::protocol::TProtocol
   return xfer;
 }
 
-uint32_t Airavata_getAllUserProjects_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteGateway_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -951,7 +911,7 @@ uint32_t Airavata_getAllUserProjects_args::read(::apache::thrift::protocol::TPro
 
   using ::apache::thrift::protocol::TProtocolException;
 
-  bool isset_userName = false;
+  bool isset_gatewayId = false;
 
   while (true)
   {
@@ -963,8 +923,8 @@ uint32_t Airavata_getAllUserProjects_args::read(::apache::thrift::protocol::TPro
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->userName);
-          isset_userName = true;
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -978,17 +938,17 @@ uint32_t Airavata_getAllUserProjects_args::read(::apache::thrift::protocol::TPro
 
   xfer += iprot->readStructEnd();
 
-  if (!isset_userName)
+  if (!isset_gatewayId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getAllUserProjects_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteGateway_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("Airavata_getAllUserProjects_args");
+  xfer += oprot->writeStructBegin("Airavata_deleteGateway_args");
 
-  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->userName);
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->gatewayId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -996,12 +956,12 @@ uint32_t Airavata_getAllUserProjects_args::write(::apache::thrift::protocol::TPr
   return xfer;
 }
 
-uint32_t Airavata_getAllUserProjects_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteGateway_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("Airavata_getAllUserProjects_pargs");
+  xfer += oprot->writeStructBegin("Airavata_deleteGateway_pargs");
 
-  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->userName)));
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->gatewayId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -1009,7 +969,7 @@ uint32_t Airavata_getAllUserProjects_pargs::write(::apache::thrift::protocol::TP
   return xfer;
 }
 
-uint32_t Airavata_getAllUserProjects_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteGateway_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -1030,20 +990,8 @@ uint32_t Airavata_getAllUserProjects_result::read(::apache::thrift::protocol::TP
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            this->success.clear();
-            uint32_t _size0;
-            ::apache::thrift::protocol::TType _etype3;
-            xfer += iprot->readListBegin(_etype3, _size0);
-            this->success.resize(_size0);
-            uint32_t _i4;
-            for (_i4 = 0; _i4 < _size0; ++_i4)
-            {
-              xfer += this->success[_i4].read(iprot);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1085,23 +1033,15 @@ uint32_t Airavata_getAllUserProjects_result::read(::apache::thrift::protocol::TP
   return xfer;
 }
 
-uint32_t Airavata_getAllUserProjects_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteGateway_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getAllUserProjects_result");
+  xfer += oprot->writeStructBegin("Airavata_deleteGateway_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
-    {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::Project> ::const_iterator _iter5;
-      for (_iter5 = this->success.begin(); _iter5 != this->success.end(); ++_iter5)
-      {
-        xfer += (*_iter5).write(oprot);
-      }
-      xfer += oprot->writeListEnd();
-    }
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -1121,7 +1061,116 @@ uint32_t Airavata_getAllUserProjects_result::write(::apache::thrift::protocol::T
   return xfer;
 }
 
-uint32_t Airavata_getAllUserProjects_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteGateway_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAllGateways_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    xfer += iprot->skip(ftype);
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAllGateways_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getAllGateways_args");
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAllGateways_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getAllGateways_pargs");
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAllGateways_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -1144,15 +1193,1323 @@ uint32_t Airavata_getAllUserProjects_presult::read(::apache::thrift::protocol::T
       case 0:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            (*(this->success)).clear();
-            uint32_t _size6;
-            ::apache::thrift::protocol::TType _etype9;
-            xfer += iprot->readListBegin(_etype9, _size6);
-            (*(this->success)).resize(_size6);
-            uint32_t _i10;
-            for (_i10 = 0; _i10 < _size6; ++_i10)
+            this->success.clear();
+            uint32_t _size0;
+            ::apache::thrift::protocol::TType _etype3;
+            xfer += iprot->readListBegin(_etype3, _size0);
+            this->success.resize(_size0);
+            uint32_t _i4;
+            for (_i4 = 0; _i4 < _size0; ++_i4)
             {
-              xfer += (*(this->success))[_i10].read(iprot);
+              xfer += this->success[_i4].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAllGateways_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getAllGateways_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::workspace::Gateway> ::const_iterator _iter5;
+      for (_iter5 = this->success.begin(); _iter5 != this->success.end(); ++_iter5)
+      {
+        xfer += (*_iter5).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAllGateways_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size6;
+            ::apache::thrift::protocol::TType _etype9;
+            xfer += iprot->readListBegin(_etype9, _size6);
+            (*(this->success)).resize(_size6);
+            uint32_t _i10;
+            for (_i10 = 0; _i10 < _size6; ++_i10)
+            {
+              xfer += (*(this->success))[_i10].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_isGatewayExist_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_gatewayId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->gatewayId);
+          isset_gatewayId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_gatewayId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_isGatewayExist_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_isGatewayExist_args");
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_isGatewayExist_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_isGatewayExist_pargs");
+
+  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->gatewayId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_isGatewayExist_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_isGatewayExist_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_isGatewayExist_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_isGatewayExist_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_createProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_project = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->project.read(iprot);
+          isset_project = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_project)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_createProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_createProject_args");
+
+  xfer += oprot->writeFieldBegin("project", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->project.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_createProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_createProject_pargs");
+
+  xfer += oprot->writeFieldBegin("project", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->project)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_createProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_createProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_createProject_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
+    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_createProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_updateProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_projectId = false;
+  bool isset_updatedProject = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->projectId);
+          isset_projectId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->updatedProject.read(iprot);
+          isset_updatedProject = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_projectId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_updatedProject)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_updateProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_updateProject_args");
+
+  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->projectId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("updatedProject", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->updatedProject.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_updateProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_updateProject_pargs");
+
+  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->projectId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("updatedProject", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->updatedProject)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_updateProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->pnfe.read(iprot);
+          this->__isset.pnfe = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_updateProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_updateProject_result");
+
+  if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.pnfe) {
+    xfer += oprot->writeFieldBegin("pnfe", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->pnfe.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_updateProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->pnfe.read(iprot);
+          this->__isset.pnfe = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getProject_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_projectId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->projectId);
+          isset_projectId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_projectId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_getProject_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getProject_args");
+
+  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->projectId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getProject_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getProject_pargs");
+
+  xfer += oprot->writeFieldBegin("projectId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->projectId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getProject_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->pnfe.read(iprot);
+          this->__isset.pnfe = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getProject_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getProject_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.pnfe) {
+    xfer += oprot->writeFieldBegin("pnfe", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->pnfe.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getProject_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->pnfe.read(iprot);
+          this->__isset.pnfe = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAllUserProjects_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_userName = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userName);
+          isset_userName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_userName)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_getAllUserProjects_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getAllUserProjects_args");
+
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->userName);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAllUserProjects_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("Airavata_getAllUserProjects_pargs");
+
+  xfer += oprot->writeFieldBegin("userName", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->userName)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAllUserProjects_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size11;
+            ::apache::thrift::protocol::TType _etype14;
+            xfer += iprot->readListBegin(_etype14, _size11);
+            this->success.resize(_size11);
+            uint32_t _i15;
+            for (_i15 = 0; _i15 < _size11; ++_i15)
+            {
+              xfer += this->success[_i15].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getAllUserProjects_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getAllUserProjects_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::workspace::Project> ::const_iterator _iter16;
+      for (_iter16 = this->success.begin(); _iter16 != this->success.end(); ++_iter16)
+      {
+        xfer += (*_iter16).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->ase.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+uint32_t Airavata_getAllUserProjects_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size17;
+            ::apache::thrift::protocol::TType _etype20;
+            xfer += iprot->readListBegin(_etype20, _size17);
+            (*(this->success)).resize(_size17);
+            uint32_t _i21;
+            for (_i21 = 0; _i21 < _size17; ++_i21)
+            {
+              xfer += (*(this->success))[_i21].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1309,14 +2666,14 @@ uint32_t Airavata_searchProjectsByProjectName_result::read(::apache::thrift::pro
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size11;
-            ::apache::thrift::protocol::TType _etype14;
-            xfer += iprot->readListBegin(_etype14, _size11);
-            this->success.resize(_size11);
-            uint32_t _i15;
-            for (_i15 = 0; _i15 < _size11; ++_i15)
+            uint32_t _size22;
+            ::apache::thrift::protocol::TType _etype25;
+            xfer += iprot->readListBegin(_etype25, _size22);
+            this->success.resize(_size22);
+            uint32_t _i26;
+            for (_i26 = 0; _i26 < _size22; ++_i26)
             {
-              xfer += this->success[_i15].read(iprot);
+              xfer += this->success[_i26].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1371,10 +2728,10 @@ uint32_t Airavata_searchProjectsByProjectName_result::write(::apache::thrift::pr
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::Project> ::const_iterator _iter16;
-      for (_iter16 = this->success.begin(); _iter16 != this->success.end(); ++_iter16)
+      std::vector< ::apache::airavata::model::workspace::Project> ::const_iterator _iter27;
+      for (_iter27 = this->success.begin(); _iter27 != this->success.end(); ++_iter27)
       {
-        xfer += (*_iter16).write(oprot);
+        xfer += (*_iter27).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1421,14 +2778,14 @@ uint32_t Airavata_searchProjectsByProjectName_presult::read(::apache::thrift::pr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size17;
-            ::apache::thrift::protocol::TType _etype20;
-            xfer += iprot->readListBegin(_etype20, _size17);
-            (*(this->success)).resize(_size17);
-            uint32_t _i21;
-            for (_i21 = 0; _i21 < _size17; ++_i21)
+            uint32_t _size28;
+            ::apache::thrift::protocol::TType _etype31;
+            xfer += iprot->readListBegin(_etype31, _size28);
+            (*(this->success)).resize(_size28);
+            uint32_t _i32;
+            for (_i32 = 0; _i32 < _size28; ++_i32)
             {
-              xfer += (*(this->success))[_i21].read(iprot);
+              xfer += (*(this->success))[_i32].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1585,14 +2942,14 @@ uint32_t Airavata_searchProjectsByProjectDesc_result::read(::apache::thrift::pro
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size22;
-            ::apache::thrift::protocol::TType _etype25;
-            xfer += iprot->readListBegin(_etype25, _size22);
-            this->success.resize(_size22);
-            uint32_t _i26;
-            for (_i26 = 0; _i26 < _size22; ++_i26)
+            uint32_t _size33;
+            ::apache::thrift::protocol::TType _etype36;
+            xfer += iprot->readListBegin(_etype36, _size33);
+            this->success.resize(_size33);
+            uint32_t _i37;
+            for (_i37 = 0; _i37 < _size33; ++_i37)
             {
-              xfer += this->success[_i26].read(iprot);
+              xfer += this->success[_i37].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1647,10 +3004,10 @@ uint32_t Airavata_searchProjectsByProjectDesc_result::write(::apache::thrift::pr
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::Project> ::const_iterator _iter27;
-      for (_iter27 = this->success.begin(); _iter27 != this->success.end(); ++_iter27)
+      std::vector< ::apache::airavata::model::workspace::Project> ::const_iterator _iter38;
+      for (_iter38 = this->success.begin(); _iter38 != this->success.end(); ++_iter38)
       {
-        xfer += (*_iter27).write(oprot);
+        xfer += (*_iter38).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1697,14 +3054,14 @@ uint32_t Airavata_searchProjectsByProjectDesc_presult::read(::apache::thrift::pr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size28;
-            ::apache::thrift::protocol::TType _etype31;
-            xfer += iprot->readListBegin(_etype31, _size28);
-            (*(this->success)).resize(_size28);
-            uint32_t _i32;
-            for (_i32 = 0; _i32 < _size28; ++_i32)
+            uint32_t _size39;
+            ::apache::thrift::protocol::TType _etype42;
+            xfer += iprot->readListBegin(_etype42, _size39);
+            (*(this->success)).resize(_size39);
+            uint32_t _i43;
+            for (_i43 = 0; _i43 < _size39; ++_i43)
             {
-              xfer += (*(this->success))[_i32].read(iprot);
+              xfer += (*(this->success))[_i43].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1861,14 +3218,14 @@ uint32_t Airavata_searchExperimentsByName_result::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size33;
-            ::apache::thrift::protocol::TType _etype36;
-            xfer += iprot->readListBegin(_etype36, _size33);
-            this->success.resize(_size33);
-            uint32_t _i37;
-            for (_i37 = 0; _i37 < _size33; ++_i37)
+            uint32_t _size44;
+            ::apache::thrift::protocol::TType _etype47;
+            xfer += iprot->readListBegin(_etype47, _size44);
+            this->success.resize(_size44);
+            uint32_t _i48;
+            for (_i48 = 0; _i48 < _size44; ++_i48)
             {
-              xfer += this->success[_i37].read(iprot);
+              xfer += this->success[_i48].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1923,10 +3280,10 @@ uint32_t Airavata_searchExperimentsByName_result::write(::apache::thrift::protoc
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter38;
-      for (_iter38 = this->success.begin(); _iter38 != this->success.end(); ++_iter38)
+      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter49;
+      for (_iter49 = this->success.begin(); _iter49 != this->success.end(); ++_iter49)
       {
-        xfer += (*_iter38).write(oprot);
+        xfer += (*_iter49).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1973,14 +3330,14 @@ uint32_t Airavata_searchExperimentsByName_presult::read(::apache::thrift::protoc
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size39;
-            ::apache::thrift::protocol::TType _etype42;
-            xfer += iprot->readListBegin(_etype42, _size39);
-            (*(this->success)).resize(_size39);
-            uint32_t _i43;
-            for (_i43 = 0; _i43 < _size39; ++_i43)
+            uint32_t _size50;
+            ::apache::thrift::protocol::TType _etype53;
+            xfer += iprot->readListBegin(_etype53, _size50);
+            (*(this->success)).resize(_size50);
+            uint32_t _i54;
+            for (_i54 = 0; _i54 < _size50; ++_i54)
             {
-              xfer += (*(this->success))[_i43].read(iprot);
+              xfer += (*(this->success))[_i54].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2137,14 +3494,14 @@ uint32_t Airavata_searchExperimentsByDesc_result::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size44;
-            ::apache::thrift::protocol::TType _etype47;
-            xfer += iprot->readListBegin(_etype47, _size44);
-            this->success.resize(_size44);
-            uint32_t _i48;
-            for (_i48 = 0; _i48 < _size44; ++_i48)
+            uint32_t _size55;
+            ::apache::thrift::protocol::TType _etype58;
+            xfer += iprot->readListBegin(_etype58, _size55);
+            this->success.resize(_size55);
+            uint32_t _i59;
+            for (_i59 = 0; _i59 < _size55; ++_i59)
             {
-              xfer += this->success[_i48].read(iprot);
+              xfer += this->success[_i59].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2199,10 +3556,10 @@ uint32_t Airavata_searchExperimentsByDesc_result::write(::apache::thrift::protoc
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter49;
-      for (_iter49 = this->success.begin(); _iter49 != this->success.end(); ++_iter49)
+      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter60;
+      for (_iter60 = this->success.begin(); _iter60 != this->success.end(); ++_iter60)
       {
-        xfer += (*_iter49).write(oprot);
+        xfer += (*_iter60).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2249,14 +3606,14 @@ uint32_t Airavata_searchExperimentsByDesc_presult::read(::apache::thrift::protoc
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size50;
-            ::apache::thrift::protocol::TType _etype53;
-            xfer += iprot->readListBegin(_etype53, _size50);
-            (*(this->success)).resize(_size50);
-            uint32_t _i54;
-            for (_i54 = 0; _i54 < _size50; ++_i54)
+            uint32_t _size61;
+            ::apache::thrift::protocol::TType _etype64;
+            xfer += iprot->readListBegin(_etype64, _size61);
+            (*(this->success)).resize(_size61);
+            uint32_t _i65;
+            for (_i65 = 0; _i65 < _size61; ++_i65)
             {
-              xfer += (*(this->success))[_i54].read(iprot);
+              xfer += (*(this->success))[_i65].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2413,14 +3770,14 @@ uint32_t Airavata_searchExperimentsByApplication_result::read(::apache::thrift::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size55;
-            ::apache::thrift::protocol::TType _etype58;
-            xfer += iprot->readListBegin(_etype58, _size55);
-            this->success.resize(_size55);
-            uint32_t _i59;
-            for (_i59 = 0; _i59 < _size55; ++_i59)
+            uint32_t _size66;
+            ::apache::thrift::protocol::TType _etype69;
+            xfer += iprot->readListBegin(_etype69, _size66);
+            this->success.resize(_size66);
+            uint32_t _i70;
+            for (_i70 = 0; _i70 < _size66; ++_i70)
             {
-              xfer += this->success[_i59].read(iprot);
+              xfer += this->success[_i70].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2475,10 +3832,10 @@ uint32_t Airavata_searchExperimentsByApplication_result::write(::apache::thrift:
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter60;
-      for (_iter60 = this->success.begin(); _iter60 != this->success.end(); ++_iter60)
+      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter71;
+      for (_iter71 = this->success.begin(); _iter71 != this->success.end(); ++_iter71)
       {
-        xfer += (*_iter60).write(oprot);
+        xfer += (*_iter71).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2525,14 +3882,14 @@ uint32_t Airavata_searchExperimentsByApplication_presult::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size61;
-            ::apache::thrift::protocol::TType _etype64;
-            xfer += iprot->readListBegin(_etype64, _size61);
-            (*(this->success)).resize(_size61);
-            uint32_t _i65;
-            for (_i65 = 0; _i65 < _size61; ++_i65)
+            uint32_t _size72;
+            ::apache::thrift::protocol::TType _etype75;
+            xfer += iprot->readListBegin(_etype75, _size72);
+            (*(this->success)).resize(_size72);
+            uint32_t _i76;
+            for (_i76 = 0; _i76 < _size72; ++_i76)
             {
-              xfer += (*(this->success))[_i65].read(iprot);
+              xfer += (*(this->success))[_i76].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2609,9 +3966,9 @@ uint32_t Airavata_searchExperimentsByStatus_args::read(::apache::thrift::protoco
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast66;
-          xfer += iprot->readI32(ecast66);
-          this->experimentState = ( ::apache::airavata::model::workspace::experiment::ExperimentState::type)ecast66;
+          int32_t ecast77;
+          xfer += iprot->readI32(ecast77);
+          this->experimentState = ( ::apache::airavata::model::workspace::experiment::ExperimentState::type)ecast77;
           isset_experimentState = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -2691,14 +4048,14 @@ uint32_t Airavata_searchExperimentsByStatus_result::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size67;
-            ::apache::thrift::protocol::TType _etype70;
-            xfer += iprot->readListBegin(_etype70, _size67);
-            this->success.resize(_size67);
-            uint32_t _i71;
-            for (_i71 = 0; _i71 < _size67; ++_i71)
+            uint32_t _size78;
+            ::apache::thrift::protocol::TType _etype81;
+            xfer += iprot->readListBegin(_etype81, _size78);
+            this->success.resize(_size78);
+            uint32_t _i82;
+            for (_i82 = 0; _i82 < _size78; ++_i82)
             {
-              xfer += this->success[_i71].read(iprot);
+              xfer += this->success[_i82].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2753,10 +4110,10 @@ uint32_t Airavata_searchExperimentsByStatus_result::write(::apache::thrift::prot
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter72;
-      for (_iter72 = this->success.begin(); _iter72 != this->success.end(); ++_iter72)
+      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter83;
+      for (_iter83 = this->success.begin(); _iter83 != this->success.end(); ++_iter83)
       {
-        xfer += (*_iter72).write(oprot);
+        xfer += (*_iter83).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2803,14 +4160,14 @@ uint32_t Airavata_searchExperimentsByStatus_presult::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size73;
-            ::apache::thrift::protocol::TType _etype76;
-            xfer += iprot->readListBegin(_etype76, _size73);
-            (*(this->success)).resize(_size73);
-            uint32_t _i77;
-            for (_i77 = 0; _i77 < _size73; ++_i77)
+            uint32_t _size84;
+            ::apache::thrift::protocol::TType _etype87;
+            xfer += iprot->readListBegin(_etype87, _size84);
+            (*(this->success)).resize(_size84);
+            uint32_t _i88;
+            for (_i88 = 0; _i88 < _size84; ++_i88)
             {
-              xfer += (*(this->success))[_i77].read(iprot);
+              xfer += (*(this->success))[_i88].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2986,14 +4343,14 @@ uint32_t Airavata_searchExperimentsByCreationTime_result::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size78;
-            ::apache::thrift::protocol::TType _etype81;
-            xfer += iprot->readListBegin(_etype81, _size78);
-            this->success.resize(_size78);
-            uint32_t _i82;
-            for (_i82 = 0; _i82 < _size78; ++_i82)
+            uint32_t _size89;
+            ::apache::thrift::protocol::TType _etype92;
+            xfer += iprot->readListBegin(_etype92, _size89);
+            this->success.resize(_size89);
+            uint32_t _i93;
+            for (_i93 = 0; _i93 < _size89; ++_i93)
             {
-              xfer += this->success[_i82].read(iprot);
+              xfer += this->success[_i93].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3048,10 +4405,10 @@ uint32_t Airavata_searchExperimentsByCreationTime_result::write(::apache::thrift
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter83;
-      for (_iter83 = this->success.begin(); _iter83 != this->success.end(); ++_iter83)
+      std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> ::const_iterator _iter94;
+      for (_iter94 = this->success.begin(); _iter94 != this->success.end(); ++_iter94)
       {
-        xfer += (*_iter83).write(oprot);
+        xfer += (*_iter94).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3098,14 +4455,14 @@ uint32_t Airavata_searchExperimentsByCreationTime_presult::read(::apache::thrift
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size84;
-            ::apache::thrift::protocol::TType _etype87;
-            xfer += iprot->readListBegin(_etype87, _size84);
-            (*(this->success)).resize(_size84);
-            uint32_t _i88;
-            for (_i88 = 0; _i88 < _size84; ++_i88)
+            uint32_t _size95;
+            ::apache::thrift::protocol::TType _etype98;
+            xfer += iprot->readListBegin(_etype98, _size95);
+            (*(this->success)).resize(_size95);
+            uint32_t _i99;
+            for (_i99 = 0; _i99 < _size95; ++_i99)
             {
-              xfer += (*(this->success))[_i88].read(iprot);
+              xfer += (*(this->success))[_i99].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3243,14 +4600,14 @@ uint32_t Airavata_getAllExperimentsInProject_result::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size89;
-            ::apache::thrift::protocol::TType _etype92;
-            xfer += iprot->readListBegin(_etype92, _size89);
-            this->success.resize(_size89);
-            uint32_t _i93;
-            for (_i93 = 0; _i93 < _size89; ++_i93)
+            uint32_t _size100;
+            ::apache::thrift::protocol::TType _etype103;
+            xfer += iprot->readListBegin(_etype103, _size100);
+            this->success.resize(_size100);
+            uint32_t _i104;
+            for (_i104 = 0; _i104 < _size100; ++_i104)
             {
-              xfer += this->success[_i93].read(iprot);
+              xfer += this->success[_i104].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3313,10 +4670,10 @@ uint32_t Airavata_getAllExperimentsInProject_result::write(::apache::thrift::pro
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::experiment::Experiment> ::const_iterator _iter94;
-      for (_iter94 = this->success.begin(); _iter94 != this->success.end(); ++_iter94)
+      std::vector< ::apache::airavata::model::workspace::experiment::Experiment> ::const_iterator _iter105;
+      for (_iter105 = this->success.begin(); _iter105 != this->success.end(); ++_iter105)
       {
-        xfer += (*_iter94).write(oprot);
+        xfer += (*_iter105).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3367,14 +4724,14 @@ uint32_t Airavata_getAllExperimentsInProject_presult::read(::apache::thrift::pro
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size95;
-            ::apache::thrift::protocol::TType _etype98;
-            xfer += iprot->readListBegin(_etype98, _size95);
-            (*(this->success)).resize(_size95);
-            uint32_t _i99;
-            for (_i99 = 0; _i99 < _size95; ++_i99)
+            uint32_t _size106;
+            ::apache::thrift::protocol::TType _etype109;
+            xfer += iprot->readListBegin(_etype109, _size106);
+            (*(this->success)).resize(_size106);
+            uint32_t _i110;
+            for (_i110 = 0; _i110 < _size106; ++_i110)
             {
-              xfer += (*(this->success))[_i99].read(iprot);
+              xfer += (*(this->success))[_i110].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3520,14 +4877,14 @@ uint32_t Airavata_getAllUserExperiments_result::read(::apache::thrift::protocol:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size100;
-            ::apache::thrift::protocol::TType _etype103;
-            xfer += iprot->readListBegin(_etype103, _size100);
-            this->success.resize(_size100);
-            uint32_t _i104;
-            for (_i104 = 0; _i104 < _size100; ++_i104)
+            uint32_t _size111;
+            ::apache::thrift::protocol::TType _etype114;
+            xfer += iprot->readListBegin(_etype114, _size111);
+            this->success.resize(_size111);
+            uint32_t _i115;
+            for (_i115 = 0; _i115 < _size111; ++_i115)
             {
-              xfer += this->success[_i104].read(iprot);
+              xfer += this->success[_i115].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3582,10 +4939,10 @@ uint32_t Airavata_getAllUserExperiments_result::write(::apache::thrift::protocol
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::experiment::Experiment> ::const_iterator _iter105;
-      for (_iter105 = this->success.begin(); _iter105 != this->success.end(); ++_iter105)
+      std::vector< ::apache::airavata::model::workspace::experiment::Experiment> ::const_iterator _iter116;
+      for (_iter116 = this->success.begin(); _iter116 != this->success.end(); ++_iter116)
       {
-        xfer += (*_iter105).write(oprot);
+        xfer += (*_iter116).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3632,14 +4989,14 @@ uint32_t Airavata_getAllUserExperiments_presult::read(::apache::thrift::protocol
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-        

<TRUNCATED>

[2/7] airavata git commit: adding CRUD operations to gateway - AIRAVATA-1608, AIRAVATA-1604

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
index 3e8db10..bdb70e4 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
@@ -212,9 +212,7 @@ class ComputeResourcePreference {
 class GatewayResourceProfile {
   static $_TSPEC;
 
-  public $gatewayID = "DO_NOT_SET_AT_CLIENTS";
-  public $gatewayName = null;
-  public $gatewayDescription = null;
+  public $gatewayID = null;
   public $computeResourcePreferences = null;
 
   public function __construct($vals=null) {
@@ -225,14 +223,6 @@ class GatewayResourceProfile {
           'type' => TType::STRING,
           ),
         2 => array(
-          'var' => 'gatewayName',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'gatewayDescription',
-          'type' => TType::STRING,
-          ),
-        4 => array(
           'var' => 'computeResourcePreferences',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
@@ -247,12 +237,6 @@ class GatewayResourceProfile {
       if (isset($vals['gatewayID'])) {
         $this->gatewayID = $vals['gatewayID'];
       }
-      if (isset($vals['gatewayName'])) {
-        $this->gatewayName = $vals['gatewayName'];
-      }
-      if (isset($vals['gatewayDescription'])) {
-        $this->gatewayDescription = $vals['gatewayDescription'];
-      }
       if (isset($vals['computeResourcePreferences'])) {
         $this->computeResourcePreferences = $vals['computeResourcePreferences'];
       }
@@ -286,20 +270,6 @@ class GatewayResourceProfile {
           }
           break;
         case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayName);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->gatewayDescription);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
           if ($ftype == TType::LST) {
             $this->computeResourcePreferences = array();
             $_size0 = 0;
@@ -335,21 +305,11 @@ class GatewayResourceProfile {
       $xfer += $output->writeString($this->gatewayID);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->gatewayName !== null) {
-      $xfer += $output->writeFieldBegin('gatewayName', TType::STRING, 2);
-      $xfer += $output->writeString($this->gatewayName);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->gatewayDescription !== null) {
-      $xfer += $output->writeFieldBegin('gatewayDescription', TType::STRING, 3);
-      $xfer += $output->writeString($this->gatewayDescription);
-      $xfer += $output->writeFieldEnd();
-    }
     if ($this->computeResourcePreferences !== null) {
       if (!is_array($this->computeResourcePreferences)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('computeResourcePreferences', TType::LST, 4);
+      $xfer += $output->writeFieldBegin('computeResourcePreferences', TType::LST, 2);
       {
         $output->writeListBegin(TType::STRUCT, count($this->computeResourcePreferences));
         {
@@ -369,6 +329,4 @@ class GatewayResourceProfile {
 
 }
 
-$GLOBALS['gatewayResourceProfileModel_CONSTANTS']['DEFAULT_ID'] = "DO_NOT_SET_AT_CLIENTS";
-
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php
index 673414d..7ccd55c 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Types.php
@@ -476,8 +476,10 @@ class User {
 class Gateway {
   static $_TSPEC;
 
-  public $gatewayId = "DO_NOT_SET_AT_CLIENTS";
-  public $name = null;
+  public $gatewayId = null;
+  public $gatewayName = null;
+  public $domain = null;
+  public $emailAddress = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -487,7 +489,15 @@ class Gateway {
           'type' => TType::STRING,
           ),
         2 => array(
-          'var' => 'name',
+          'var' => 'gatewayName',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'domain',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'emailAddress',
           'type' => TType::STRING,
           ),
         );
@@ -496,8 +506,14 @@ class Gateway {
       if (isset($vals['gatewayId'])) {
         $this->gatewayId = $vals['gatewayId'];
       }
-      if (isset($vals['name'])) {
-        $this->name = $vals['name'];
+      if (isset($vals['gatewayName'])) {
+        $this->gatewayName = $vals['gatewayName'];
+      }
+      if (isset($vals['domain'])) {
+        $this->domain = $vals['domain'];
+      }
+      if (isset($vals['emailAddress'])) {
+        $this->emailAddress = $vals['emailAddress'];
       }
     }
   }
@@ -530,7 +546,21 @@ class Gateway {
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->name);
+            $xfer += $input->readString($this->gatewayName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->domain);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->emailAddress);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -553,9 +583,19 @@ class Gateway {
       $xfer += $output->writeString($this->gatewayId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->name !== null) {
-      $xfer += $output->writeFieldBegin('name', TType::STRING, 2);
-      $xfer += $output->writeString($this->name);
+    if ($this->gatewayName !== null) {
+      $xfer += $output->writeFieldBegin('gatewayName', TType::STRING, 2);
+      $xfer += $output->writeString($this->gatewayName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->domain !== null) {
+      $xfer += $output->writeFieldBegin('domain', TType::STRING, 3);
+      $xfer += $output->writeString($this->domain);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->emailAddress !== null) {
+      $xfer += $output->writeFieldBegin('emailAddress', TType::STRING, 4);
+      $xfer += $output->writeString($this->emailAddress);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
index 5496cc6..f5a79de 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
@@ -89,7 +89,6 @@ public class RegisterSampleData {
                 createComputeResourcePreference(localhostId, "Sample", false, null, null, null, sampleScriptDir + "/..");
         GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
         gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
-        gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
         gatewayResourceProfile.addToComputeResourcePreferences(localhostResourcePreference);
         airavataClient.registerGatewayResourceProfile(gatewayResourceProfile);
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
index 3cebeb5..d046710 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
@@ -248,7 +248,7 @@ public class RegisterOGCEUS3Application {
 //                            "/mnt/glusterfs/work/");
 
             GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
-            gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
+            gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
             gatewayResourceProfile.addToComputeResourcePreferences(stampedeResourcePreferences);
             gatewayResourceProfile.addToComputeResourcePreferences(trestlesResourcePreferences);
   //          gatewayResourceProfile.addToComputeResourcePreferences(lonestarResourcePreferences);

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
index acc5b7c..c311dde 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
@@ -1213,7 +1213,6 @@ public class RegisterSampleApplications {
             
             GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
             gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
-            gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
             gatewayResourceProfile.addToComputeResourcePreferences(stampedeResourcePreferences);
             gatewayResourceProfile.addToComputeResourcePreferences(trestlesResourcePreferences);
             gatewayResourceProfile.addToComputeResourcePreferences(bigRedResourcePreferences);

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
index a0fcba3..8567c74 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
@@ -246,7 +246,7 @@ public class RegisterUS3Application {
                             "/mnt/glusterfs/work/");
 
             GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
-            gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
+            gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
             gatewayResourceProfile.addToComputeResourcePreferences(stampedeResourcePreferences);
             gatewayResourceProfile.addToComputeResourcePreferences(trestlesResourcePreferences);
             gatewayResourceProfile.addToComputeResourcePreferences(lonestarResourcePreferences);

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index 33a7477..fccc2be 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -70,9 +70,7 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GatewayResourceProfile");
 
   private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayID", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField GATEWAY_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayName", org.apache.thrift.protocol.TType.STRING, (short)2);
-  private static final org.apache.thrift.protocol.TField GATEWAY_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayDescription", org.apache.thrift.protocol.TType.STRING, (short)3);
-  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourcePreferences", org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourcePreferences", org.apache.thrift.protocol.TType.LIST, (short)2);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -81,16 +79,12 @@ import org.slf4j.LoggerFactory;
   }
 
   private String gatewayID; // required
-  private String gatewayName; // required
-  private String gatewayDescription; // optional
   private List<ComputeResourcePreference> computeResourcePreferences; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     GATEWAY_ID((short)1, "gatewayID"),
-    GATEWAY_NAME((short)2, "gatewayName"),
-    GATEWAY_DESCRIPTION((short)3, "gatewayDescription"),
-    COMPUTE_RESOURCE_PREFERENCES((short)4, "computeResourcePreferences");
+    COMPUTE_RESOURCE_PREFERENCES((short)2, "computeResourcePreferences");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -107,11 +101,7 @@ import org.slf4j.LoggerFactory;
       switch(fieldId) {
         case 1: // GATEWAY_ID
           return GATEWAY_ID;
-        case 2: // GATEWAY_NAME
-          return GATEWAY_NAME;
-        case 3: // GATEWAY_DESCRIPTION
-          return GATEWAY_DESCRIPTION;
-        case 4: // COMPUTE_RESOURCE_PREFERENCES
+        case 2: // COMPUTE_RESOURCE_PREFERENCES
           return COMPUTE_RESOURCE_PREFERENCES;
         default:
           return null;
@@ -153,16 +143,12 @@ import org.slf4j.LoggerFactory;
   }
 
   // isset id assignments
-  private _Fields optionals[] = {_Fields.GATEWAY_DESCRIPTION,_Fields.COMPUTE_RESOURCE_PREFERENCES};
+  private _Fields optionals[] = {_Fields.COMPUTE_RESOURCE_PREFERENCES};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
     tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.GATEWAY_NAME, new org.apache.thrift.meta_data.FieldMetaData("gatewayName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.GATEWAY_DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("gatewayDescription", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.COMPUTE_RESOURCE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("computeResourcePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComputeResourcePreference.class))));
@@ -171,17 +157,13 @@ import org.slf4j.LoggerFactory;
   }
 
   public GatewayResourceProfile() {
-    this.gatewayID = "DO_NOT_SET_AT_CLIENTS";
-
   }
 
   public GatewayResourceProfile(
-    String gatewayID,
-    String gatewayName)
+    String gatewayID)
   {
     this();
     this.gatewayID = gatewayID;
-    this.gatewayName = gatewayName;
   }
 
   /**
@@ -191,12 +173,6 @@ import org.slf4j.LoggerFactory;
     if (other.isSetGatewayID()) {
       this.gatewayID = other.gatewayID;
     }
-    if (other.isSetGatewayName()) {
-      this.gatewayName = other.gatewayName;
-    }
-    if (other.isSetGatewayDescription()) {
-      this.gatewayDescription = other.gatewayDescription;
-    }
     if (other.isSetComputeResourcePreferences()) {
       List<ComputeResourcePreference> __this__computeResourcePreferences = new ArrayList<ComputeResourcePreference>(other.computeResourcePreferences.size());
       for (ComputeResourcePreference other_element : other.computeResourcePreferences) {
@@ -212,10 +188,7 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public void clear() {
-    this.gatewayID = "DO_NOT_SET_AT_CLIENTS";
-
-    this.gatewayName = null;
-    this.gatewayDescription = null;
+    this.gatewayID = null;
     this.computeResourcePreferences = null;
   }
 
@@ -242,52 +215,6 @@ import org.slf4j.LoggerFactory;
     }
   }
 
-  public String getGatewayName() {
-    return this.gatewayName;
-  }
-
-  public void setGatewayName(String gatewayName) {
-    this.gatewayName = gatewayName;
-  }
-
-  public void unsetGatewayName() {
-    this.gatewayName = null;
-  }
-
-  /** Returns true if field gatewayName is set (has been assigned a value) and false otherwise */
-  public boolean isSetGatewayName() {
-    return this.gatewayName != null;
-  }
-
-  public void setGatewayNameIsSet(boolean value) {
-    if (!value) {
-      this.gatewayName = null;
-    }
-  }
-
-  public String getGatewayDescription() {
-    return this.gatewayDescription;
-  }
-
-  public void setGatewayDescription(String gatewayDescription) {
-    this.gatewayDescription = gatewayDescription;
-  }
-
-  public void unsetGatewayDescription() {
-    this.gatewayDescription = null;
-  }
-
-  /** Returns true if field gatewayDescription is set (has been assigned a value) and false otherwise */
-  public boolean isSetGatewayDescription() {
-    return this.gatewayDescription != null;
-  }
-
-  public void setGatewayDescriptionIsSet(boolean value) {
-    if (!value) {
-      this.gatewayDescription = null;
-    }
-  }
-
   public int getComputeResourcePreferencesSize() {
     return (this.computeResourcePreferences == null) ? 0 : this.computeResourcePreferences.size();
   }
@@ -336,22 +263,6 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
-    case GATEWAY_NAME:
-      if (value == null) {
-        unsetGatewayName();
-      } else {
-        setGatewayName((String)value);
-      }
-      break;
-
-    case GATEWAY_DESCRIPTION:
-      if (value == null) {
-        unsetGatewayDescription();
-      } else {
-        setGatewayDescription((String)value);
-      }
-      break;
-
     case COMPUTE_RESOURCE_PREFERENCES:
       if (value == null) {
         unsetComputeResourcePreferences();
@@ -368,12 +279,6 @@ import org.slf4j.LoggerFactory;
     case GATEWAY_ID:
       return getGatewayID();
 
-    case GATEWAY_NAME:
-      return getGatewayName();
-
-    case GATEWAY_DESCRIPTION:
-      return getGatewayDescription();
-
     case COMPUTE_RESOURCE_PREFERENCES:
       return getComputeResourcePreferences();
 
@@ -390,10 +295,6 @@ import org.slf4j.LoggerFactory;
     switch (field) {
     case GATEWAY_ID:
       return isSetGatewayID();
-    case GATEWAY_NAME:
-      return isSetGatewayName();
-    case GATEWAY_DESCRIPTION:
-      return isSetGatewayDescription();
     case COMPUTE_RESOURCE_PREFERENCES:
       return isSetComputeResourcePreferences();
     }
@@ -422,24 +323,6 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
-    boolean this_present_gatewayName = true && this.isSetGatewayName();
-    boolean that_present_gatewayName = true && that.isSetGatewayName();
-    if (this_present_gatewayName || that_present_gatewayName) {
-      if (!(this_present_gatewayName && that_present_gatewayName))
-        return false;
-      if (!this.gatewayName.equals(that.gatewayName))
-        return false;
-    }
-
-    boolean this_present_gatewayDescription = true && this.isSetGatewayDescription();
-    boolean that_present_gatewayDescription = true && that.isSetGatewayDescription();
-    if (this_present_gatewayDescription || that_present_gatewayDescription) {
-      if (!(this_present_gatewayDescription && that_present_gatewayDescription))
-        return false;
-      if (!this.gatewayDescription.equals(that.gatewayDescription))
-        return false;
-    }
-
     boolean this_present_computeResourcePreferences = true && this.isSetComputeResourcePreferences();
     boolean that_present_computeResourcePreferences = true && that.isSetComputeResourcePreferences();
     if (this_present_computeResourcePreferences || that_present_computeResourcePreferences) {
@@ -475,26 +358,6 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetGatewayName()).compareTo(other.isSetGatewayName());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGatewayName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayName, other.gatewayName);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetGatewayDescription()).compareTo(other.isSetGatewayDescription());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetGatewayDescription()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayDescription, other.gatewayDescription);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
     lastComparison = Boolean.valueOf(isSetComputeResourcePreferences()).compareTo(other.isSetComputeResourcePreferences());
     if (lastComparison != 0) {
       return lastComparison;
@@ -532,24 +395,6 @@ import org.slf4j.LoggerFactory;
       sb.append(this.gatewayID);
     }
     first = false;
-    if (!first) sb.append(", ");
-    sb.append("gatewayName:");
-    if (this.gatewayName == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.gatewayName);
-    }
-    first = false;
-    if (isSetGatewayDescription()) {
-      if (!first) sb.append(", ");
-      sb.append("gatewayDescription:");
-      if (this.gatewayDescription == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.gatewayDescription);
-      }
-      first = false;
-    }
     if (isSetComputeResourcePreferences()) {
       if (!first) sb.append(", ");
       sb.append("computeResourcePreferences:");
@@ -570,10 +415,6 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayID' is unset! Struct:" + toString());
     }
 
-    if (!isSetGatewayName()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayName' is unset! Struct:" + toString());
-    }
-
     // check for sub-struct validity
   }
 
@@ -619,23 +460,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 2: // GATEWAY_NAME
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.gatewayName = iprot.readString();
-              struct.setGatewayNameIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 3: // GATEWAY_DESCRIPTION
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.gatewayDescription = iprot.readString();
-              struct.setGatewayDescriptionIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // COMPUTE_RESOURCE_PREFERENCES
+          case 2: // COMPUTE_RESOURCE_PREFERENCES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
@@ -672,18 +497,6 @@ import org.slf4j.LoggerFactory;
         oprot.writeString(struct.gatewayID);
         oprot.writeFieldEnd();
       }
-      if (struct.gatewayName != null) {
-        oprot.writeFieldBegin(GATEWAY_NAME_FIELD_DESC);
-        oprot.writeString(struct.gatewayName);
-        oprot.writeFieldEnd();
-      }
-      if (struct.gatewayDescription != null) {
-        if (struct.isSetGatewayDescription()) {
-          oprot.writeFieldBegin(GATEWAY_DESCRIPTION_FIELD_DESC);
-          oprot.writeString(struct.gatewayDescription);
-          oprot.writeFieldEnd();
-        }
-      }
       if (struct.computeResourcePreferences != null) {
         if (struct.isSetComputeResourcePreferences()) {
           oprot.writeFieldBegin(COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC);
@@ -716,18 +529,11 @@ import org.slf4j.LoggerFactory;
     public void write(org.apache.thrift.protocol.TProtocol prot, GatewayResourceProfile struct) throws org.apache.thrift.TException {
       TTupleProtocol oprot = (TTupleProtocol) prot;
       oprot.writeString(struct.gatewayID);
-      oprot.writeString(struct.gatewayName);
       BitSet optionals = new BitSet();
-      if (struct.isSetGatewayDescription()) {
-        optionals.set(0);
-      }
       if (struct.isSetComputeResourcePreferences()) {
-        optionals.set(1);
-      }
-      oprot.writeBitSet(optionals, 2);
-      if (struct.isSetGatewayDescription()) {
-        oprot.writeString(struct.gatewayDescription);
+        optionals.set(0);
       }
+      oprot.writeBitSet(optionals, 1);
       if (struct.isSetComputeResourcePreferences()) {
         {
           oprot.writeI32(struct.computeResourcePreferences.size());
@@ -744,14 +550,8 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.gatewayID = iprot.readString();
       struct.setGatewayIDIsSet(true);
-      struct.gatewayName = iprot.readString();
-      struct.setGatewayNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(2);
+      BitSet incoming = iprot.readBitSet(1);
       if (incoming.get(0)) {
-        struct.gatewayDescription = iprot.readString();
-        struct.setGatewayDescriptionIsSet(true);
-      }
-      if (incoming.get(1)) {
         {
           org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
           struct.computeResourcePreferences = new ArrayList<ComputeResourcePreference>(_list5.size);

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
index 63d35d6..118b958 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
@@ -53,7 +53,9 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Gateway");
 
   private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField GATEWAY_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField DOMAIN_FIELD_DESC = new org.apache.thrift.protocol.TField("domain", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField EMAIL_ADDRESS_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddress", org.apache.thrift.protocol.TType.STRING, (short)4);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -62,12 +64,16 @@ import org.slf4j.LoggerFactory;
   }
 
   private String gatewayId; // required
-  private String name; // required
+  private String gatewayName; // optional
+  private String domain; // optional
+  private String emailAddress; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     GATEWAY_ID((short)1, "gatewayId"),
-    NAME((short)2, "name");
+    GATEWAY_NAME((short)2, "gatewayName"),
+    DOMAIN((short)3, "domain"),
+    EMAIL_ADDRESS((short)4, "emailAddress");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -84,8 +90,12 @@ import org.slf4j.LoggerFactory;
       switch(fieldId) {
         case 1: // GATEWAY_ID
           return GATEWAY_ID;
-        case 2: // NAME
-          return NAME;
+        case 2: // GATEWAY_NAME
+          return GATEWAY_NAME;
+        case 3: // DOMAIN
+          return DOMAIN;
+        case 4: // EMAIL_ADDRESS
+          return EMAIL_ADDRESS;
         default:
           return null;
       }
@@ -126,29 +136,30 @@ import org.slf4j.LoggerFactory;
   }
 
   // isset id assignments
+  private _Fields optionals[] = {_Fields.GATEWAY_NAME,_Fields.DOMAIN,_Fields.EMAIL_ADDRESS};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
     tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+    tmpMap.put(_Fields.GATEWAY_NAME, new org.apache.thrift.meta_data.FieldMetaData("gatewayName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DOMAIN, new org.apache.thrift.meta_data.FieldMetaData("domain", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.EMAIL_ADDRESS, new org.apache.thrift.meta_data.FieldMetaData("emailAddress", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Gateway.class, metaDataMap);
   }
 
   public Gateway() {
-    this.gatewayId = "DO_NOT_SET_AT_CLIENTS";
-
   }
 
   public Gateway(
-    String gatewayId,
-    String name)
+    String gatewayId)
   {
     this();
     this.gatewayId = gatewayId;
-    this.name = name;
   }
 
   /**
@@ -158,8 +169,14 @@ import org.slf4j.LoggerFactory;
     if (other.isSetGatewayId()) {
       this.gatewayId = other.gatewayId;
     }
-    if (other.isSetName()) {
-      this.name = other.name;
+    if (other.isSetGatewayName()) {
+      this.gatewayName = other.gatewayName;
+    }
+    if (other.isSetDomain()) {
+      this.domain = other.domain;
+    }
+    if (other.isSetEmailAddress()) {
+      this.emailAddress = other.emailAddress;
     }
   }
 
@@ -169,9 +186,10 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public void clear() {
-    this.gatewayId = "DO_NOT_SET_AT_CLIENTS";
-
-    this.name = null;
+    this.gatewayId = null;
+    this.gatewayName = null;
+    this.domain = null;
+    this.emailAddress = null;
   }
 
   public String getGatewayId() {
@@ -197,26 +215,72 @@ import org.slf4j.LoggerFactory;
     }
   }
 
-  public String getName() {
-    return this.name;
+  public String getGatewayName() {
+    return this.gatewayName;
+  }
+
+  public void setGatewayName(String gatewayName) {
+    this.gatewayName = gatewayName;
+  }
+
+  public void unsetGatewayName() {
+    this.gatewayName = null;
+  }
+
+  /** Returns true if field gatewayName is set (has been assigned a value) and false otherwise */
+  public boolean isSetGatewayName() {
+    return this.gatewayName != null;
+  }
+
+  public void setGatewayNameIsSet(boolean value) {
+    if (!value) {
+      this.gatewayName = null;
+    }
+  }
+
+  public String getDomain() {
+    return this.domain;
+  }
+
+  public void setDomain(String domain) {
+    this.domain = domain;
+  }
+
+  public void unsetDomain() {
+    this.domain = null;
+  }
+
+  /** Returns true if field domain is set (has been assigned a value) and false otherwise */
+  public boolean isSetDomain() {
+    return this.domain != null;
+  }
+
+  public void setDomainIsSet(boolean value) {
+    if (!value) {
+      this.domain = null;
+    }
+  }
+
+  public String getEmailAddress() {
+    return this.emailAddress;
   }
 
-  public void setName(String name) {
-    this.name = name;
+  public void setEmailAddress(String emailAddress) {
+    this.emailAddress = emailAddress;
   }
 
-  public void unsetName() {
-    this.name = null;
+  public void unsetEmailAddress() {
+    this.emailAddress = null;
   }
 
-  /** Returns true if field name is set (has been assigned a value) and false otherwise */
-  public boolean isSetName() {
-    return this.name != null;
+  /** Returns true if field emailAddress is set (has been assigned a value) and false otherwise */
+  public boolean isSetEmailAddress() {
+    return this.emailAddress != null;
   }
 
-  public void setNameIsSet(boolean value) {
+  public void setEmailAddressIsSet(boolean value) {
     if (!value) {
-      this.name = null;
+      this.emailAddress = null;
     }
   }
 
@@ -230,11 +294,27 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
-    case NAME:
+    case GATEWAY_NAME:
+      if (value == null) {
+        unsetGatewayName();
+      } else {
+        setGatewayName((String)value);
+      }
+      break;
+
+    case DOMAIN:
+      if (value == null) {
+        unsetDomain();
+      } else {
+        setDomain((String)value);
+      }
+      break;
+
+    case EMAIL_ADDRESS:
       if (value == null) {
-        unsetName();
+        unsetEmailAddress();
       } else {
-        setName((String)value);
+        setEmailAddress((String)value);
       }
       break;
 
@@ -246,8 +326,14 @@ import org.slf4j.LoggerFactory;
     case GATEWAY_ID:
       return getGatewayId();
 
-    case NAME:
-      return getName();
+    case GATEWAY_NAME:
+      return getGatewayName();
+
+    case DOMAIN:
+      return getDomain();
+
+    case EMAIL_ADDRESS:
+      return getEmailAddress();
 
     }
     throw new IllegalStateException();
@@ -262,8 +348,12 @@ import org.slf4j.LoggerFactory;
     switch (field) {
     case GATEWAY_ID:
       return isSetGatewayId();
-    case NAME:
-      return isSetName();
+    case GATEWAY_NAME:
+      return isSetGatewayName();
+    case DOMAIN:
+      return isSetDomain();
+    case EMAIL_ADDRESS:
+      return isSetEmailAddress();
     }
     throw new IllegalStateException();
   }
@@ -290,12 +380,30 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
-    boolean this_present_name = true && this.isSetName();
-    boolean that_present_name = true && that.isSetName();
-    if (this_present_name || that_present_name) {
-      if (!(this_present_name && that_present_name))
+    boolean this_present_gatewayName = true && this.isSetGatewayName();
+    boolean that_present_gatewayName = true && that.isSetGatewayName();
+    if (this_present_gatewayName || that_present_gatewayName) {
+      if (!(this_present_gatewayName && that_present_gatewayName))
         return false;
-      if (!this.name.equals(that.name))
+      if (!this.gatewayName.equals(that.gatewayName))
+        return false;
+    }
+
+    boolean this_present_domain = true && this.isSetDomain();
+    boolean that_present_domain = true && that.isSetDomain();
+    if (this_present_domain || that_present_domain) {
+      if (!(this_present_domain && that_present_domain))
+        return false;
+      if (!this.domain.equals(that.domain))
+        return false;
+    }
+
+    boolean this_present_emailAddress = true && this.isSetEmailAddress();
+    boolean that_present_emailAddress = true && that.isSetEmailAddress();
+    if (this_present_emailAddress || that_present_emailAddress) {
+      if (!(this_present_emailAddress && that_present_emailAddress))
+        return false;
+      if (!this.emailAddress.equals(that.emailAddress))
         return false;
     }
 
@@ -325,12 +433,32 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    lastComparison = Boolean.valueOf(isSetGatewayName()).compareTo(other.isSetGatewayName());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetName()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+    if (isSetGatewayName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayName, other.gatewayName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDomain()).compareTo(other.isSetDomain());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDomain()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.domain, other.domain);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetEmailAddress()).compareTo(other.isSetEmailAddress());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetEmailAddress()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.emailAddress, other.emailAddress);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -362,14 +490,36 @@ import org.slf4j.LoggerFactory;
       sb.append(this.gatewayId);
     }
     first = false;
-    if (!first) sb.append(", ");
-    sb.append("name:");
-    if (this.name == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.name);
+    if (isSetGatewayName()) {
+      if (!first) sb.append(", ");
+      sb.append("gatewayName:");
+      if (this.gatewayName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayName);
+      }
+      first = false;
+    }
+    if (isSetDomain()) {
+      if (!first) sb.append(", ");
+      sb.append("domain:");
+      if (this.domain == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.domain);
+      }
+      first = false;
+    }
+    if (isSetEmailAddress()) {
+      if (!first) sb.append(", ");
+      sb.append("emailAddress:");
+      if (this.emailAddress == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.emailAddress);
+      }
+      first = false;
     }
-    first = false;
     sb.append(")");
     return sb.toString();
   }
@@ -380,10 +530,6 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' is unset! Struct:" + toString());
     }
 
-    if (!isSetName()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'name' is unset! Struct:" + toString());
-    }
-
     // check for sub-struct validity
   }
 
@@ -429,10 +575,26 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 2: // NAME
+          case 2: // GATEWAY_NAME
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.name = iprot.readString();
-              struct.setNameIsSet(true);
+              struct.gatewayName = iprot.readString();
+              struct.setGatewayNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // DOMAIN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.domain = iprot.readString();
+              struct.setDomainIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EMAIL_ADDRESS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.emailAddress = iprot.readString();
+              struct.setEmailAddressIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -455,10 +617,26 @@ import org.slf4j.LoggerFactory;
         oprot.writeString(struct.gatewayId);
         oprot.writeFieldEnd();
       }
-      if (struct.name != null) {
-        oprot.writeFieldBegin(NAME_FIELD_DESC);
-        oprot.writeString(struct.name);
-        oprot.writeFieldEnd();
+      if (struct.gatewayName != null) {
+        if (struct.isSetGatewayName()) {
+          oprot.writeFieldBegin(GATEWAY_NAME_FIELD_DESC);
+          oprot.writeString(struct.gatewayName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.domain != null) {
+        if (struct.isSetDomain()) {
+          oprot.writeFieldBegin(DOMAIN_FIELD_DESC);
+          oprot.writeString(struct.domain);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.emailAddress != null) {
+        if (struct.isSetEmailAddress()) {
+          oprot.writeFieldBegin(EMAIL_ADDRESS_FIELD_DESC);
+          oprot.writeString(struct.emailAddress);
+          oprot.writeFieldEnd();
+        }
       }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
@@ -478,7 +656,26 @@ import org.slf4j.LoggerFactory;
     public void write(org.apache.thrift.protocol.TProtocol prot, Gateway struct) throws org.apache.thrift.TException {
       TTupleProtocol oprot = (TTupleProtocol) prot;
       oprot.writeString(struct.gatewayId);
-      oprot.writeString(struct.name);
+      BitSet optionals = new BitSet();
+      if (struct.isSetGatewayName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetDomain()) {
+        optionals.set(1);
+      }
+      if (struct.isSetEmailAddress()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetGatewayName()) {
+        oprot.writeString(struct.gatewayName);
+      }
+      if (struct.isSetDomain()) {
+        oprot.writeString(struct.domain);
+      }
+      if (struct.isSetEmailAddress()) {
+        oprot.writeString(struct.emailAddress);
+      }
     }
 
     @Override
@@ -486,8 +683,19 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.gatewayId = iprot.readString();
       struct.setGatewayIdIsSet(true);
-      struct.name = iprot.readString();
-      struct.setNameIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.gatewayName = iprot.readString();
+        struct.setGatewayNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.domain = iprot.readString();
+        struct.setDomainIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.emailAddress = iprot.readString();
+        struct.setEmailAddressIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
index 6710a76..83a1fc4 100644
--- a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
@@ -70,7 +70,37 @@ service Airavata {
         throws (1: airavataErrors.InvalidRequestException ire,
                 2: airavataErrors.AiravataClientException ace,
                 3: airavataErrors.AiravataSystemException ase)
-  
+
+  string addGateway(1: required workspaceModel.Gateway gateway)
+         throws (1: airavataErrors.InvalidRequestException ire,
+                 2: airavataErrors.AiravataClientException ace,
+                 3: airavataErrors.AiravataSystemException ase)
+
+  void updateGateway(1: required string gatewayId, 2: required workspaceModel.Gateway updatedGateway)
+         throws (1: airavataErrors.InvalidRequestException ire,
+                 2: airavataErrors.AiravataClientException ace,
+                 3: airavataErrors.AiravataSystemException ase)
+
+  workspaceModel.Gateway getGateway(1: required string gatewayId)
+           throws (1: airavataErrors.InvalidRequestException ire,
+                   2: airavataErrors.AiravataClientException ace,
+                   3: airavataErrors.AiravataSystemException ase)
+
+  bool deleteGateway(1: required string gatewayId)
+             throws (1: airavataErrors.InvalidRequestException ire,
+                     2: airavataErrors.AiravataClientException ace,
+                     3: airavataErrors.AiravataSystemException ase)
+
+  list<workspaceModel.Gateway> getAllGateways()
+             throws (1: airavataErrors.InvalidRequestException ire,
+                     2: airavataErrors.AiravataClientException ace,
+                     3: airavataErrors.AiravataSystemException ase)
+
+  bool isGatewayExist(1: required string gatewayId)
+           throws (1: airavataErrors.InvalidRequestException ire,
+                   2: airavataErrors.AiravataClientException ace,
+                   3: airavataErrors.AiravataSystemException ase)
+
   /**
    * Create a Project
    *

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift b/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift
index 3839890..83c808c 100644
--- a/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/gatewayResourceProfileModel.thrift
@@ -23,8 +23,6 @@ namespace php Airavata.Model.AppCatalog.GatewayProfile
 namespace cpp apache.airavata.model.appcatalog.gatewayprofile
 include "computeResourceModel.thrift"
 
-const string DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS"
-
 /**
  * Gateway specific preferences for a Computer Resource
  *
@@ -80,8 +78,6 @@ struct ComputeResourcePreference {
  *
 */
 struct GatewayResourceProfile {
-    1: required string gatewayID = DEFAULT_ID,
-    2: required string gatewayName,
-    3: optional string gatewayDescription,
-    4: optional list<ComputeResourcePreference> computeResourcePreferences
+    1: required string gatewayID,
+    2: optional list<ComputeResourcePreference> computeResourcePreferences
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/thrift-interface-descriptions/workspaceModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/workspaceModel.thrift b/airavata-api/thrift-interface-descriptions/workspaceModel.thrift
index 4b0da09..fd75985 100644
--- a/airavata-api/thrift-interface-descriptions/workspaceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/workspaceModel.thrift
@@ -55,6 +55,8 @@ struct User {
 }
 
 struct Gateway {
-    1: required string gatewayId = experimentModel.DEFAULT_ID
-    2: required string name,
+    1: required string gatewayId,
+    2: optional string gatewayName,
+    3: optional string domain,
+    4: optional string emailAddress
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java
index c3a3a62..9b4836c 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/GwyResourceProfileImpl.java
@@ -21,27 +21,21 @@
 
 package org.apache.aiaravata.application.catalog.data.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import org.airavata.appcatalog.cpi.AppCatalogException;
 import org.airavata.appcatalog.cpi.GwyResourceProfile;
-import org.apache.aiaravata.application.catalog.data.model.GatewayProfile;
-import org.apache.aiaravata.application.catalog.data.resources.AbstractResource;
-import org.apache.aiaravata.application.catalog.data.resources.ComputeHostPreferenceResource;
-import org.apache.aiaravata.application.catalog.data.resources.ComputeResourceResource;
-import org.apache.aiaravata.application.catalog.data.resources.GatewayProfileResource;
-import org.apache.aiaravata.application.catalog.data.resources.Resource;
+import org.apache.aiaravata.application.catalog.data.resources.*;
 import org.apache.aiaravata.application.catalog.data.util.AppCatalogThriftConversion;
-import org.apache.aiaravata.application.catalog.data.util.AppCatalogUtils;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.appcatalog.gatewayprofile.gatewayResourceProfileModelConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 public class GwyResourceProfileImpl implements GwyResourceProfile {
     private final static Logger logger = LoggerFactory.getLogger(GwyResourceProfileImpl.class);
 
@@ -49,15 +43,11 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
     public String addGatewayResourceProfile(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayProfile) throws AppCatalogException {
         try {
             GatewayProfileResource profileResource = new GatewayProfileResource();
-            profileResource.setGatewayName(gatewayProfile.getGatewayName());
             if (!gatewayProfile.getGatewayID().equals("") && !gatewayProfile.getGatewayID().equals(gatewayResourceProfileModelConstants.DEFAULT_ID)){
                 profileResource.setGatewayID(gatewayProfile.getGatewayID());
-            }else {
-                profileResource.setGatewayID(AppCatalogUtils.getID(gatewayProfile.getGatewayName()));
             }
-            profileResource.setGatewayDesc(gatewayProfile.getGatewayDescription());
+            profileResource.setGatewayID(gatewayProfile.getGatewayID());
             profileResource.save();
-            gatewayProfile.setGatewayID(profileResource.getGatewayID());
             List<ComputeResourcePreference> computeResourcePreferences = gatewayProfile.getComputeResourcePreferences();
             if (computeResourcePreferences != null && !computeResourcePreferences.isEmpty()){
                 for (ComputeResourcePreference preference : computeResourcePreferences ){
@@ -94,8 +84,6 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
         try {
             GatewayProfileResource profileResource = new GatewayProfileResource();
             GatewayProfileResource existingGP = (GatewayProfileResource)profileResource.get(gatewayId);
-            existingGP.setGatewayName(updatedProfile.getGatewayName());
-            existingGP.setGatewayDesc(updatedProfile.getGatewayDescription());
             existingGP.save();
 
             List<ComputeResourcePreference> computeResourcePreferences = updatedProfile.getComputeResourcePreferences();
@@ -225,7 +213,7 @@ public class GwyResourceProfileImpl implements GwyResourceProfile {
     public List<String> getGatewayProfileIds(String gatewayName) throws AppCatalogException {
         try {
             GatewayProfileResource profileResource = new GatewayProfileResource();
-            List<Resource> resourceList = profileResource.get(AbstractResource.GatewayProfileConstants.GATEWAY_NAME, gatewayName);
+            List<Resource> resourceList = profileResource.get(AbstractResource.GatewayProfileConstants.GATEWAY_ID, gatewayName);
             List<String> gatewayIds = new ArrayList<String>();
             if (resourceList != null && !resourceList.isEmpty()){
                 for (Resource resource : resourceList){

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/GatewayProfile.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/GatewayProfile.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/GatewayProfile.java
index 0bcb096..a771393 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/GatewayProfile.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/GatewayProfile.java
@@ -34,10 +34,6 @@ public class GatewayProfile implements Serializable {
     @Id
     @Column(name = "GATEWAY_ID")
     private String gatewayID;
-    @Column(name = "GATEWAY_NAME")
-    private String gatewayName;
-    @Column(name = "GATEWAY_DESC")
-    private String gatewayDesc;
     @Column(name = "CREATION_TIME")
     private Timestamp creationTime;
 
@@ -69,19 +65,4 @@ public class GatewayProfile implements Serializable {
         this.gatewayID = gatewayID;
     }
 
-    public String getGatewayName() {
-        return gatewayName;
-    }
-
-    public void setGatewayName(String gatewayName) {
-        this.gatewayName = gatewayName;
-    }
-
-    public String getGatewayDesc() {
-        return gatewayDesc;
-    }
-
-    public void setGatewayDesc(String gatewayDesc) {
-        this.gatewayDesc = gatewayDesc;
-    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
index cd6e28c..9b6913a 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
@@ -261,7 +261,6 @@ public abstract class AbstractResource implements Resource {
 
     public final class GatewayProfileConstants {
         public static final String GATEWAY_ID = "gatewayID";
-        public static final String GATEWAY_NAME = "gatewayName";
         public static final String GATEWAY_DESC = "gatewayDesc";
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/GatewayProfileResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/GatewayProfileResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/GatewayProfileResource.java
index 0168d90..84a90ec 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/GatewayProfileResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/GatewayProfileResource.java
@@ -39,8 +39,6 @@ public class GatewayProfileResource extends AbstractResource {
     private final static Logger logger = LoggerFactory.getLogger(GatewayProfileResource.class);
 
     private String gatewayID;
-    private String gatewayName;
-    private String gatewayDesc;
     private Timestamp createdTime;
     private Timestamp updatedTime;
 
@@ -133,8 +131,8 @@ public class GatewayProfileResource extends AbstractResource {
                         gatewayProfileResources.add(gatewayProfileResource);
                     }
                 }
-            } else if (fieldName.equals(GatewayProfileConstants.GATEWAY_NAME)) {
-                generator.setParameter(GatewayProfileConstants.GATEWAY_NAME, value);
+            } else if (fieldName.equals(GatewayProfileConstants.GATEWAY_ID)) {
+                generator.setParameter(GatewayProfileConstants.GATEWAY_ID, value);
                 q = generator.selectQuery(em);
                 results = q.getResultList();
                 if (results.size() != 0) {
@@ -225,8 +223,8 @@ public class GatewayProfileResource extends AbstractResource {
                         gatewayProfileResourceIDs.add(gatewayProfile.getGatewayID());
                     }
                 }
-            } else if (fieldName.equals(GatewayProfileConstants.GATEWAY_NAME)) {
-                generator.setParameter(GatewayProfileConstants.GATEWAY_NAME, value);
+            } else if (fieldName.equals(GatewayProfileConstants.GATEWAY_ID)) {
+                generator.setParameter(GatewayProfileConstants.GATEWAY_ID, value);
                 q = generator.selectQuery(em);
                 results = q.getResultList();
                 if (results.size() != 0) {
@@ -267,15 +265,11 @@ public class GatewayProfileResource extends AbstractResource {
             em = AppCatalogJPAUtils.getEntityManager();
             em.getTransaction().begin();
             if (existingGatewayProfile != null) {
-                existingGatewayProfile.setGatewayDesc(gatewayDesc);
-                existingGatewayProfile.setGatewayName(gatewayName);
                 existingGatewayProfile.setUpdateTime(AiravataUtils.getCurrentTimestamp());
                 em.merge(existingGatewayProfile);
             } else {
                 GatewayProfile gatewayProfile = new GatewayProfile();
                 gatewayProfile.setGatewayID(gatewayID);
-                gatewayProfile.setGatewayName(gatewayName);
-                gatewayProfile.setGatewayDesc(gatewayDesc);
                 gatewayProfile.setCreationTime(AiravataUtils.getCurrentTimestamp());
                 em.persist(gatewayProfile);
             }
@@ -321,20 +315,4 @@ public class GatewayProfileResource extends AbstractResource {
     public void setGatewayID(String gatewayID) {
         this.gatewayID = gatewayID;
     }
-
-    public String getGatewayName() {
-        return gatewayName;
-    }
-
-    public void setGatewayName(String gatewayName) {
-        this.gatewayName = gatewayName;
-    }
-
-    public String getGatewayDesc() {
-        return gatewayDesc;
-    }
-
-    public void setGatewayDesc(String gatewayDesc) {
-        this.gatewayDesc = gatewayDesc;
-    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
index 6f8777b..81c2df1 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
@@ -850,8 +850,6 @@ public class AppCatalogJPAUtils {
         GatewayProfileResource resource = new GatewayProfileResource();
         if (o != null) {
             resource.setGatewayID(o.getGatewayID());
-            resource.setGatewayName(o.getGatewayName());
-            resource.setGatewayDesc(o.getGatewayDesc());
             resource.setCreatedTime(o.getCreationTime());
             if (o.getUpdateTime() != null){
                 resource.setUpdatedTime(o.getUpdateTime());

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
index 904c215..7bbd587 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
@@ -765,8 +765,6 @@ public class AppCatalogThriftConversion {
     public static GatewayResourceProfile getGatewayResourceProfile(GatewayProfileResource gw, List<ComputeResourcePreference> preferences){
         GatewayResourceProfile gatewayProfile = new GatewayResourceProfile();
         gatewayProfile.setGatewayID(gw.getGatewayID());
-        gatewayProfile.setGatewayDescription(gw.getGatewayDesc());
-        gatewayProfile.setGatewayName(gw.getGatewayName());
         gatewayProfile.setComputeResourcePreferences(preferences);
         return gatewayProfile;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
index 0ca4551..c366bc2 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
@@ -309,8 +309,6 @@ CREATE TABLE APPLICATION_OUTPUT
 CREATE TABLE GATEWAY_PROFILE
 (
          GATEWAY_ID VARCHAR(255),
-         GATEWAY_NAME VARCHAR(255),
-         GATEWAY_DESC VARCHAR(255),
          CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
          PRIMARY KEY(GATEWAY_ID)

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
index 9dbf5d9..304175a 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
@@ -309,9 +309,7 @@ CREATE TABLE APPLICATION_OUTPUT
 CREATE TABLE GATEWAY_PROFILE
 (
          GATEWAY_ID VARCHAR(255),
-         GATEWAY_NAME VARCHAR(255),
-         GATEWAY_DESC VARCHAR(255),
-	     CREATION_TIME TIMESTAMP DEFAULT NOW(),
+	       CREATION_TIME TIMESTAMP DEFAULT NOW(),
          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00' ,
          PRIMARY KEY(GATEWAY_ID)
 );

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/GatewayProfileTest.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/GatewayProfileTest.java b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/GatewayProfileTest.java
index 5e3563d..02b4a01 100644
--- a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/GatewayProfileTest.java
+++ b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/GatewayProfileTest.java
@@ -71,8 +71,6 @@ public class GatewayProfileTest {
     public void gatewayProfileTest() throws Exception {
         GwyResourceProfile gatewayProfile = appcatalog.getGatewayProfile();
         GatewayResourceProfile gf = new GatewayResourceProfile();
-        gf.setGatewayName("test");
-        gf.setGatewayDescription("test gateway");
         ComputeResource computeRs = appcatalog.getComputeResource();
         ComputeResourceDescription cm1 = new ComputeResourceDescription();
         cm1.setHostName("localhost");
@@ -106,12 +104,13 @@ public class GatewayProfileTest {
         list.add(preference1);
         list.add(preference2);
         gf.setComputeResourcePreferences(list);
+        gf.setGatewayID("testGateway");
 
         String gwId = gatewayProfile.addGatewayResourceProfile(gf);
         GatewayResourceProfile retrievedProfile = null;
         if (gatewayProfile.isGatewayResourceProfileExists(gwId)){
             retrievedProfile = gatewayProfile.getGatewayProfile(gwId);
-            System.out.println("************ gateway name ************** :" + retrievedProfile.getGatewayName());
+            System.out.println("************ gateway id ************** :" + retrievedProfile.getGatewayID());
         }
         List<ComputeResourcePreference> preferences = gatewayProfile.getAllComputeResourcePreferences(gwId);
         System.out.println("compute preferences size : " + preferences.size());

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
index 0ca4551..c366bc2 100644
--- a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
@@ -309,8 +309,6 @@ CREATE TABLE APPLICATION_OUTPUT
 CREATE TABLE GATEWAY_PROFILE
 (
          GATEWAY_ID VARCHAR(255),
-         GATEWAY_NAME VARCHAR(255),
-         GATEWAY_DESC VARCHAR(255),
          CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
          UPDATE_TIME TIMESTAMP DEFAULT '0000-00-00 00:00:00',
          PRIMARY KEY(GATEWAY_ID)

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java
----------------------------------------------------------------------
diff --git a/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java b/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java
index 2d833de..2823202 100644
--- a/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java
+++ b/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java
@@ -114,7 +114,7 @@ public class DocumentCreatorNew {
                 null, null);
         gatewayResourceProfile = new GatewayResourceProfile();
 //		gatewayResourceProfile.setGatewayID("default");
-        gatewayResourceProfile.setGatewayName(ClientSettings.getSetting("default.registry.gateway", "php_reference_gateway"));
+        gatewayResourceProfile.setGatewayID(ClientSettings.getSetting("default.registry.gateway", "php_reference_gateway"));
         gatewayResourceProfile.addToComputeResourcePreferences(computeResourcePreference);
         String gatewayId = client.registerGatewayResourceProfile(gatewayResourceProfile);
         gatewayResourceProfile.setGatewayID(gatewayId);
@@ -132,7 +132,7 @@ public class DocumentCreatorNew {
         if (gatewayResourceProfile == null) {
             gatewayResourceProfile = new GatewayResourceProfile();
 //				gatewayResourceProfile.setGatewayID("default");
-            gatewayResourceProfile.setGatewayName("default");
+            gatewayResourceProfile.setGatewayID("default");
             gatewayResourceProfile.setGatewayID(client.registerGatewayResourceProfile(gatewayResourceProfile));
         }
 //    	}

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
index 9eeaa3c..ac59ce8 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceUtils.java
@@ -235,6 +235,39 @@ public class ResourceUtils {
 
     }
 
+    public static List<Resource> getAllGateways() throws RegistryException{
+        List<Resource> resourceList = new ArrayList<Resource>();
+        EntityManager em = null;
+        try {
+            em = getEntityManager();
+            em.getTransaction().begin();
+            QueryGenerator generator = new QueryGenerator(AbstractResource.GATEWAY);
+            Query q = generator.selectQuery(em);
+            List results = q.getResultList();
+            if (results.size() != 0) {
+                for (Object result : results) {
+                    Gateway gateway = (Gateway) result;
+                    GatewayResource gatewayResource =
+                            (GatewayResource) Utils.getResource(ResourceType.GATEWAY, gateway);
+                    resourceList.add(gatewayResource);
+                }
+            }
+            em.getTransaction().commit();
+            em.close();
+        }catch (Exception e){
+            logger.error(e.getMessage(), e);
+            throw new RegistryException(e);
+        }finally {
+            if (em != null && em.isOpen()){
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return resourceList;
+    }
+
     /**
      * @param gatewayId
      * @return

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/GatewayRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/GatewayRegistry.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/GatewayRegistry.java
index 035258e..d38b5df 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/GatewayRegistry.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/GatewayRegistry.java
@@ -23,11 +23,21 @@ package org.apache.airavata.persistance.registry.jpa.impl;
 
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.model.workspace.Gateway;
+import org.apache.airavata.persistance.registry.jpa.Resource;
 import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 import org.apache.airavata.persistance.registry.jpa.resources.GatewayResource;
+import org.apache.airavata.persistance.registry.jpa.utils.ThriftDataModelConversion;
 import org.apache.airavata.registry.cpi.RegistryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
 
 public class GatewayRegistry {
+
+    private final static Logger logger = LoggerFactory.getLogger(GatewayRegistry.class);
     public GatewayResource getDefaultGateway () throws ApplicationSettingsException, RegistryException {
         return (GatewayResource)ResourceUtils.getGateway(ServerSettings.getDefaultUserGateway());
     }
@@ -36,4 +46,70 @@ public class GatewayRegistry {
         return (GatewayResource)ResourceUtils.getGateway(gatewayName);
     }
 
+    public String addGateway (Gateway gateway) throws RegistryException{
+        try {
+            GatewayResource resource = (GatewayResource)ResourceUtils.createGateway(gateway.getGatewayId());
+            resource.setGatewayName(gateway.getGatewayName());
+            resource.setEmailAddress(gateway.getEmailAddress());
+            resource.setDomain(gateway.getDomain());
+            resource.save();
+            return gateway.getGatewayId();
+        }catch (RegistryException e){
+            logger.error("Error while saving gateway to registry", e);
+            throw new RegistryException(e);
+        }
+    }
+
+    public void updateGateway (String gatewayId, Gateway updatedGateway) throws RegistryException{
+        try {
+            GatewayResource existingGateway = (GatewayResource)ResourceUtils.getGateway(gatewayId);
+            existingGateway.setGatewayName(updatedGateway.getGatewayName());
+            existingGateway.setEmailAddress(updatedGateway.getEmailAddress());
+            existingGateway.setDomain(updatedGateway.getDomain());
+            existingGateway.save();
+        }catch (RegistryException e){
+            logger.error("Error while updating gateway to registry", e);
+            throw new RegistryException(e);
+        }
+    }
+
+    public Gateway getGateway (String gatewayId) throws RegistryException{
+        try {
+            GatewayResource resource = (GatewayResource)ResourceUtils.getGateway(gatewayId);
+            return ThriftDataModelConversion.getGateway(resource);
+        }catch (RegistryException e){
+            logger.error("Error while getting gateway", e);
+            throw new RegistryException(e);
+        }
+    }
+
+    public boolean isGatewayExist (String gatewayId) throws RegistryException{
+        try {
+            return ResourceUtils.isGatewayExist(gatewayId);
+        }catch (RegistryException e){
+            logger.error("Error while checking gateway exists", e);
+            throw new RegistryException(e);
+        }
+    }
+
+    public boolean removeGateway (String gatewayId) throws RegistryException{
+        try {
+            return ResourceUtils.removeGateway(gatewayId);
+        }catch (Exception e){
+            logger.error("Error while removing the gateway", e);
+            throw new RegistryException(e);
+        }
+    }
+
+    public List<Gateway> getAllGateways () throws RegistryException {
+        List<Gateway> gatewayList = new ArrayList<Gateway>();
+        try {
+            List<Resource> allGateways = ResourceUtils.getAllGateways();
+            return ThriftDataModelConversion.getAllGateways(allGateways);
+        }catch (Exception e){
+            logger.error("Error while getting all the gateways", e);
+            throw new RegistryException(e);
+        }
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
index a8d4dbf..d09c0e9 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
@@ -24,6 +24,7 @@ package org.apache.airavata.persistance.registry.jpa.impl;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.model.workspace.Project;
 import org.apache.airavata.model.workspace.experiment.*;
 import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
@@ -43,6 +44,7 @@ public class RegistryImpl implements Registry {
     private final static Logger logger = LoggerFactory.getLogger(RegistryImpl.class);
     private ExperimentRegistry experimentRegistry = null;
     private ProjectRegistry projectRegistry = null;
+    private GatewayRegistry gatewayRegistry = null;
 
     public RegistryImpl() throws RegistryException{
         try {
@@ -62,6 +64,7 @@ public class RegistryImpl implements Registry {
             }
             experimentRegistry = new ExperimentRegistry(gatewayResource, user);
             projectRegistry = new ProjectRegistry(gatewayResource, user);
+            gatewayRegistry = new GatewayRegistry();
         } catch (ApplicationSettingsException e) {
             logger.error("Unable to read airavata server properties..", e);
             throw new RegistryException("Unable to read airavata server properties..", e);
@@ -104,6 +107,8 @@ public class RegistryImpl implements Registry {
                     return projectRegistry.addProject((Project)newObjectToAdd);
                 case EXPERIMENT:
                     return experimentRegistry.addExperiment((Experiment) newObjectToAdd);
+                case GATEWAY:
+                    return gatewayRegistry.addGateway((Gateway)newObjectToAdd);
                 default:
                     logger.error("Unsupported top level type..", new UnsupportedOperationException());
                     throw new UnsupportedOperationException();
@@ -197,6 +202,8 @@ public class RegistryImpl implements Registry {
                 case PROJECT:
                     projectRegistry.updateProject((Project)newObjectToUpdate, (String)identifier);
                     break;
+                case GATEWAY:
+                    gatewayRegistry.updateGateway((String)identifier, (Gateway)newObjectToUpdate);
                 case EXPERIMENT:
                     experimentRegistry.updateExperiment((Experiment) newObjectToUpdate, (String) identifier);
                     break;
@@ -315,6 +322,8 @@ public class RegistryImpl implements Registry {
             switch (dataType) {
                 case PROJECT:
                     return projectRegistry.getProject((String)identifier);
+                case GATEWAY:
+                    return gatewayRegistry.getGateway((String)identifier);
                 case EXPERIMENT:
                     return experimentRegistry.getExperiment((String) identifier, null);
                 case EXPERIMENT_CONFIGURATION_DATA:
@@ -384,6 +393,12 @@ public class RegistryImpl implements Registry {
                         result.add(project);
                     }
                     return result;
+                case GATEWAY:
+                    List<Gateway> allGateways = gatewayRegistry.getAllGateways();
+                    for (Gateway gateway : allGateways){
+                        result.add(gateway);
+                    }
+                    return result;
                 case EXPERIMENT:
                     List<Experiment> experimentList = experimentRegistry.getExperimentList(fieldName, value);
                     for (Experiment experiment : experimentList) {
@@ -550,6 +565,9 @@ public class RegistryImpl implements Registry {
                 case PROJECT:
                     projectRegistry.removeProject((String)identifier);
                     break;
+                case GATEWAY:
+                    gatewayRegistry.removeGateway((String)identifier);
+                    break;
                 case EXPERIMENT:
                     experimentRegistry.removeExperiment((String) identifier);
                     break;
@@ -606,6 +624,8 @@ public class RegistryImpl implements Registry {
             switch (dataType) {
                 case PROJECT:
                     return projectRegistry.isProjectExist((String)identifier);
+                case GATEWAY:
+                    return gatewayRegistry.isGatewayExist((String)identifier);
                 case EXPERIMENT:
                     return experimentRegistry.isExperimentExist((String) identifier);
                 case EXPERIMENT_CONFIGURATION_DATA:

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
index b48bec8..7aec17e 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
@@ -26,6 +26,7 @@ import java.util.List;
 
 import org.apache.airavata.common.utils.StringUtil;
 import org.apache.airavata.model.appcatalog.appinterface.*;
+import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.model.workspace.Project;
 import org.apache.airavata.model.workspace.experiment.ActionableGroup;
 import org.apache.airavata.model.workspace.experiment.AdvancedInputDataHandling;
@@ -54,6 +55,7 @@ import org.apache.airavata.model.workspace.experiment.UserConfigurationData;
 import org.apache.airavata.model.workspace.experiment.WorkflowNodeDetails;
 import org.apache.airavata.model.workspace.experiment.WorkflowNodeState;
 import org.apache.airavata.model.workspace.experiment.WorkflowNodeStatus;
+import org.apache.airavata.persistance.registry.jpa.Resource;
 import org.apache.airavata.persistance.registry.jpa.ResourceType;
 import org.apache.airavata.persistance.registry.jpa.resources.*;
 import org.apache.airavata.registry.cpi.RegistryException;
@@ -86,6 +88,23 @@ public class ThriftDataModelConversion {
         return null;
     }
 
+    public static Gateway getGateway (GatewayResource resource){
+        Gateway gateway = new Gateway();
+        gateway.setGatewayId(resource.getGatewayId());
+        gateway.setGatewayName(resource.getGatewayName());
+        gateway.setDomain(resource.getDomain());
+        gateway.setEmailAddress(resource.getEmailAddress());
+        return gateway;
+    }
+
+    public static List<Gateway> getAllGateways (List<Resource> gatewayList){
+        List<Gateway> gateways = new ArrayList<Gateway>();
+        for (Resource resource : gatewayList){
+            gateways.add(getGateway((GatewayResource)resource));
+        }
+        return gateways;
+    }
+
 
     public static Experiment getExperiment(ExperimentResource experimentResource) throws RegistryException {
         if (experimentResource != null){

http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java
index 2c727f2..c91622d 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java
@@ -24,7 +24,8 @@ public enum ParentDataType {
     GROUP,
     USER,
     PROJECT,
-    EXPERIMENT
+    EXPERIMENT,
+    GATEWAY
 }
 
 


[3/7] airavata git commit: adding CRUD operations to gateway - AIRAVATA-1608, AIRAVATA-1604

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index 019627c..ebc2b25 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -18,6 +18,12 @@ use Thrift\Exception\TApplicationException;
 
 interface AiravataIf {
   public function getAPIVersion();
+  public function addGateway(\Airavata\Model\Workspace\Gateway $gateway);
+  public function updateGateway($gatewayId, \Airavata\Model\Workspace\Gateway $updatedGateway);
+  public function getGateway($gatewayId);
+  public function deleteGateway($gatewayId);
+  public function getAllGateways();
+  public function isGatewayExist($gatewayId);
   public function createProject(\Airavata\Model\Workspace\Project $project);
   public function updateProject($projectId, \Airavata\Model\Workspace\Project $updatedProject);
   public function getProject($projectId);
@@ -194,34 +200,34 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("getAPIVersion failed: unknown result");
   }
 
-  public function createProject(\Airavata\Model\Workspace\Project $project)
+  public function addGateway(\Airavata\Model\Workspace\Gateway $gateway)
   {
-    $this->send_createProject($project);
-    return $this->recv_createProject();
+    $this->send_addGateway($gateway);
+    return $this->recv_addGateway();
   }
 
-  public function send_createProject(\Airavata\Model\Workspace\Project $project)
+  public function send_addGateway(\Airavata\Model\Workspace\Gateway $gateway)
   {
-    $args = new \Airavata\API\Airavata_createProject_args();
-    $args->project = $project;
+    $args = new \Airavata\API\Airavata_addGateway_args();
+    $args->gateway = $gateway;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'createProject', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'addGateway', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('createProject', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('addGateway', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_createProject()
+  public function recv_addGateway()
   {
     $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_createProject_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_addGateway_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -235,7 +241,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_createProject_result();
+      $result = new \Airavata\API\Airavata_addGateway_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -251,38 +257,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("createProject failed: unknown result");
+    throw new \Exception("addGateway failed: unknown result");
   }
 
-  public function updateProject($projectId, \Airavata\Model\Workspace\Project $updatedProject)
+  public function updateGateway($gatewayId, \Airavata\Model\Workspace\Gateway $updatedGateway)
   {
-    $this->send_updateProject($projectId, $updatedProject);
-    $this->recv_updateProject();
+    $this->send_updateGateway($gatewayId, $updatedGateway);
+    $this->recv_updateGateway();
   }
 
-  public function send_updateProject($projectId, \Airavata\Model\Workspace\Project $updatedProject)
+  public function send_updateGateway($gatewayId, \Airavata\Model\Workspace\Gateway $updatedGateway)
   {
-    $args = new \Airavata\API\Airavata_updateProject_args();
-    $args->projectId = $projectId;
-    $args->updatedProject = $updatedProject;
+    $args = new \Airavata\API\Airavata_updateGateway_args();
+    $args->gatewayId = $gatewayId;
+    $args->updatedGateway = $updatedGateway;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'updateProject', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'updateGateway', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('updateProject', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('updateGateway', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_updateProject()
+  public function recv_updateGateway()
   {
     $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_updateProject_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateGateway_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -296,7 +302,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_updateProject_result();
+      $result = new \Airavata\API\Airavata_updateGateway_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -309,40 +315,37 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    if ($result->pnfe !== null) {
-      throw $result->pnfe;
-    }
     return;
   }
 
-  public function getProject($projectId)
+  public function getGateway($gatewayId)
   {
-    $this->send_getProject($projectId);
-    return $this->recv_getProject();
+    $this->send_getGateway($gatewayId);
+    return $this->recv_getGateway();
   }
 
-  public function send_getProject($projectId)
+  public function send_getGateway($gatewayId)
   {
-    $args = new \Airavata\API\Airavata_getProject_args();
-    $args->projectId = $projectId;
+    $args = new \Airavata\API\Airavata_getGateway_args();
+    $args->gatewayId = $gatewayId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getProject', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getGateway', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getProject', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getGateway', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getProject()
+  public function recv_getGateway()
   {
     $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_getProject_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getGateway_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -356,7 +359,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getProject_result();
+      $result = new \Airavata\API\Airavata_getGateway_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -372,40 +375,37 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    if ($result->pnfe !== null) {
-      throw $result->pnfe;
-    }
-    throw new \Exception("getProject failed: unknown result");
+    throw new \Exception("getGateway failed: unknown result");
   }
 
-  public function getAllUserProjects($userName)
+  public function deleteGateway($gatewayId)
   {
-    $this->send_getAllUserProjects($userName);
-    return $this->recv_getAllUserProjects();
+    $this->send_deleteGateway($gatewayId);
+    return $this->recv_deleteGateway();
   }
 
-  public function send_getAllUserProjects($userName)
+  public function send_deleteGateway($gatewayId)
   {
-    $args = new \Airavata\API\Airavata_getAllUserProjects_args();
-    $args->userName = $userName;
+    $args = new \Airavata\API\Airavata_deleteGateway_args();
+    $args->gatewayId = $gatewayId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getAllUserProjects', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'deleteGateway', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getAllUserProjects', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('deleteGateway', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getAllUserProjects()
+  public function recv_deleteGateway()
   {
     $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_getAllUserProjects_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteGateway_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -419,7 +419,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getAllUserProjects_result();
+      $result = new \Airavata\API\Airavata_deleteGateway_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -435,38 +435,36 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("getAllUserProjects failed: unknown result");
+    throw new \Exception("deleteGateway failed: unknown result");
   }
 
-  public function searchProjectsByProjectName($userName, $projectName)
+  public function getAllGateways()
   {
-    $this->send_searchProjectsByProjectName($userName, $projectName);
-    return $this->recv_searchProjectsByProjectName();
+    $this->send_getAllGateways();
+    return $this->recv_getAllGateways();
   }
 
-  public function send_searchProjectsByProjectName($userName, $projectName)
+  public function send_getAllGateways()
   {
-    $args = new \Airavata\API\Airavata_searchProjectsByProjectName_args();
-    $args->userName = $userName;
-    $args->projectName = $projectName;
+    $args = new \Airavata\API\Airavata_getAllGateways_args();
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'searchProjectsByProjectName', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getAllGateways', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('searchProjectsByProjectName', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getAllGateways', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_searchProjectsByProjectName()
+  public function recv_getAllGateways()
   {
     $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_searchProjectsByProjectName_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllGateways_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -480,7 +478,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_searchProjectsByProjectName_result();
+      $result = new \Airavata\API\Airavata_getAllGateways_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -496,38 +494,37 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("searchProjectsByProjectName failed: unknown result");
+    throw new \Exception("getAllGateways failed: unknown result");
   }
 
-  public function searchProjectsByProjectDesc($userName, $description)
+  public function isGatewayExist($gatewayId)
   {
-    $this->send_searchProjectsByProjectDesc($userName, $description);
-    return $this->recv_searchProjectsByProjectDesc();
+    $this->send_isGatewayExist($gatewayId);
+    return $this->recv_isGatewayExist();
   }
 
-  public function send_searchProjectsByProjectDesc($userName, $description)
+  public function send_isGatewayExist($gatewayId)
   {
-    $args = new \Airavata\API\Airavata_searchProjectsByProjectDesc_args();
-    $args->userName = $userName;
-    $args->description = $description;
+    $args = new \Airavata\API\Airavata_isGatewayExist_args();
+    $args->gatewayId = $gatewayId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'searchProjectsByProjectDesc', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'isGatewayExist', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('searchProjectsByProjectDesc', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('isGatewayExist', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_searchProjectsByProjectDesc()
+  public function recv_isGatewayExist()
   {
     $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_searchProjectsByProjectDesc_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_isGatewayExist_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -541,7 +538,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_searchProjectsByProjectDesc_result();
+      $result = new \Airavata\API\Airavata_isGatewayExist_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -557,38 +554,37 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("searchProjectsByProjectDesc failed: unknown result");
+    throw new \Exception("isGatewayExist failed: unknown result");
   }
 
-  public function searchExperimentsByName($userName, $expName)
+  public function createProject(\Airavata\Model\Workspace\Project $project)
   {
-    $this->send_searchExperimentsByName($userName, $expName);
-    return $this->recv_searchExperimentsByName();
+    $this->send_createProject($project);
+    return $this->recv_createProject();
   }
 
-  public function send_searchExperimentsByName($userName, $expName)
+  public function send_createProject(\Airavata\Model\Workspace\Project $project)
   {
-    $args = new \Airavata\API\Airavata_searchExperimentsByName_args();
-    $args->userName = $userName;
-    $args->expName = $expName;
+    $args = new \Airavata\API\Airavata_createProject_args();
+    $args->project = $project;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'searchExperimentsByName', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'createProject', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('searchExperimentsByName', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('createProject', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_searchExperimentsByName()
+  public function recv_createProject()
   {
     $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_searchExperimentsByName_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_createProject_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -602,7 +598,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_searchExperimentsByName_result();
+      $result = new \Airavata\API\Airavata_createProject_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -618,38 +614,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("searchExperimentsByName failed: unknown result");
+    throw new \Exception("createProject failed: unknown result");
   }
 
-  public function searchExperimentsByDesc($userName, $description)
+  public function updateProject($projectId, \Airavata\Model\Workspace\Project $updatedProject)
   {
-    $this->send_searchExperimentsByDesc($userName, $description);
-    return $this->recv_searchExperimentsByDesc();
+    $this->send_updateProject($projectId, $updatedProject);
+    $this->recv_updateProject();
   }
 
-  public function send_searchExperimentsByDesc($userName, $description)
+  public function send_updateProject($projectId, \Airavata\Model\Workspace\Project $updatedProject)
   {
-    $args = new \Airavata\API\Airavata_searchExperimentsByDesc_args();
-    $args->userName = $userName;
-    $args->description = $description;
+    $args = new \Airavata\API\Airavata_updateProject_args();
+    $args->projectId = $projectId;
+    $args->updatedProject = $updatedProject;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'searchExperimentsByDesc', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'updateProject', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('searchExperimentsByDesc', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('updateProject', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_searchExperimentsByDesc()
+  public function recv_updateProject()
   {
     $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_searchExperimentsByDesc_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateProject_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -663,13 +659,10 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_searchExperimentsByDesc_result();
+      $result = new \Airavata\API\Airavata_updateProject_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
-    if ($result->success !== null) {
-      return $result->success;
-    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
@@ -679,38 +672,40 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("searchExperimentsByDesc failed: unknown result");
+    if ($result->pnfe !== null) {
+      throw $result->pnfe;
+    }
+    return;
   }
 
-  public function searchExperimentsByApplication($userName, $applicationId)
+  public function getProject($projectId)
   {
-    $this->send_searchExperimentsByApplication($userName, $applicationId);
-    return $this->recv_searchExperimentsByApplication();
+    $this->send_getProject($projectId);
+    return $this->recv_getProject();
   }
 
-  public function send_searchExperimentsByApplication($userName, $applicationId)
+  public function send_getProject($projectId)
   {
-    $args = new \Airavata\API\Airavata_searchExperimentsByApplication_args();
-    $args->userName = $userName;
-    $args->applicationId = $applicationId;
+    $args = new \Airavata\API\Airavata_getProject_args();
+    $args->projectId = $projectId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'searchExperimentsByApplication', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getProject', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('searchExperimentsByApplication', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getProject', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_searchExperimentsByApplication()
+  public function recv_getProject()
   {
     $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_searchExperimentsByApplication_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getProject_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -724,7 +719,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_searchExperimentsByApplication_result();
+      $result = new \Airavata\API\Airavata_getProject_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -740,38 +735,40 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("searchExperimentsByApplication failed: unknown result");
+    if ($result->pnfe !== null) {
+      throw $result->pnfe;
+    }
+    throw new \Exception("getProject failed: unknown result");
   }
 
-  public function searchExperimentsByStatus($userName, $experimentState)
+  public function getAllUserProjects($userName)
   {
-    $this->send_searchExperimentsByStatus($userName, $experimentState);
-    return $this->recv_searchExperimentsByStatus();
+    $this->send_getAllUserProjects($userName);
+    return $this->recv_getAllUserProjects();
   }
 
-  public function send_searchExperimentsByStatus($userName, $experimentState)
+  public function send_getAllUserProjects($userName)
   {
-    $args = new \Airavata\API\Airavata_searchExperimentsByStatus_args();
+    $args = new \Airavata\API\Airavata_getAllUserProjects_args();
     $args->userName = $userName;
-    $args->experimentState = $experimentState;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'searchExperimentsByStatus', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getAllUserProjects', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('searchExperimentsByStatus', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getAllUserProjects', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_searchExperimentsByStatus()
+  public function recv_getAllUserProjects()
   {
     $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_searchExperimentsByStatus_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllUserProjects_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -785,7 +782,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_searchExperimentsByStatus_result();
+      $result = new \Airavata\API\Airavata_getAllUserProjects_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -801,39 +798,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("searchExperimentsByStatus failed: unknown result");
+    throw new \Exception("getAllUserProjects failed: unknown result");
   }
 
-  public function searchExperimentsByCreationTime($userName, $fromTime, $toTime)
+  public function searchProjectsByProjectName($userName, $projectName)
   {
-    $this->send_searchExperimentsByCreationTime($userName, $fromTime, $toTime);
-    return $this->recv_searchExperimentsByCreationTime();
+    $this->send_searchProjectsByProjectName($userName, $projectName);
+    return $this->recv_searchProjectsByProjectName();
   }
 
-  public function send_searchExperimentsByCreationTime($userName, $fromTime, $toTime)
+  public function send_searchProjectsByProjectName($userName, $projectName)
   {
-    $args = new \Airavata\API\Airavata_searchExperimentsByCreationTime_args();
+    $args = new \Airavata\API\Airavata_searchProjectsByProjectName_args();
     $args->userName = $userName;
-    $args->fromTime = $fromTime;
-    $args->toTime = $toTime;
+    $args->projectName = $projectName;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'searchExperimentsByCreationTime', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'searchProjectsByProjectName', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('searchExperimentsByCreationTime', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('searchProjectsByProjectName', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_searchExperimentsByCreationTime()
+  public function recv_searchProjectsByProjectName()
   {
     $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_searchExperimentsByCreationTime_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_searchProjectsByProjectName_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -847,7 +843,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_searchExperimentsByCreationTime_result();
+      $result = new \Airavata\API\Airavata_searchProjectsByProjectName_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -863,37 +859,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("searchExperimentsByCreationTime failed: unknown result");
+    throw new \Exception("searchProjectsByProjectName failed: unknown result");
   }
 
-  public function getAllExperimentsInProject($projectId)
+  public function searchProjectsByProjectDesc($userName, $description)
   {
-    $this->send_getAllExperimentsInProject($projectId);
-    return $this->recv_getAllExperimentsInProject();
+    $this->send_searchProjectsByProjectDesc($userName, $description);
+    return $this->recv_searchProjectsByProjectDesc();
   }
 
-  public function send_getAllExperimentsInProject($projectId)
+  public function send_searchProjectsByProjectDesc($userName, $description)
   {
-    $args = new \Airavata\API\Airavata_getAllExperimentsInProject_args();
-    $args->projectId = $projectId;
+    $args = new \Airavata\API\Airavata_searchProjectsByProjectDesc_args();
+    $args->userName = $userName;
+    $args->description = $description;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getAllExperimentsInProject', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'searchProjectsByProjectDesc', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getAllExperimentsInProject', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('searchProjectsByProjectDesc', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getAllExperimentsInProject()
+  public function recv_searchProjectsByProjectDesc()
   {
     $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_getAllExperimentsInProject_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_searchProjectsByProjectDesc_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -907,7 +904,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getAllExperimentsInProject_result();
+      $result = new \Airavata\API\Airavata_searchProjectsByProjectDesc_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -923,40 +920,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    if ($result->pnfe !== null) {
-      throw $result->pnfe;
-    }
-    throw new \Exception("getAllExperimentsInProject failed: unknown result");
+    throw new \Exception("searchProjectsByProjectDesc failed: unknown result");
   }
 
-  public function getAllUserExperiments($userName)
+  public function searchExperimentsByName($userName, $expName)
   {
-    $this->send_getAllUserExperiments($userName);
-    return $this->recv_getAllUserExperiments();
+    $this->send_searchExperimentsByName($userName, $expName);
+    return $this->recv_searchExperimentsByName();
   }
 
-  public function send_getAllUserExperiments($userName)
+  public function send_searchExperimentsByName($userName, $expName)
   {
-    $args = new \Airavata\API\Airavata_getAllUserExperiments_args();
+    $args = new \Airavata\API\Airavata_searchExperimentsByName_args();
     $args->userName = $userName;
+    $args->expName = $expName;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getAllUserExperiments', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'searchExperimentsByName', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getAllUserExperiments', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('searchExperimentsByName', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getAllUserExperiments()
+  public function recv_searchExperimentsByName()
   {
     $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_getAllUserExperiments_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_searchExperimentsByName_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -970,7 +965,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getAllUserExperiments_result();
+      $result = new \Airavata\API\Airavata_searchExperimentsByName_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -986,37 +981,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("getAllUserExperiments failed: unknown result");
+    throw new \Exception("searchExperimentsByName failed: unknown result");
   }
 
-  public function createExperiment(\Airavata\Model\Workspace\Experiment\Experiment $experiment)
+  public function searchExperimentsByDesc($userName, $description)
   {
-    $this->send_createExperiment($experiment);
-    return $this->recv_createExperiment();
+    $this->send_searchExperimentsByDesc($userName, $description);
+    return $this->recv_searchExperimentsByDesc();
   }
 
-  public function send_createExperiment(\Airavata\Model\Workspace\Experiment\Experiment $experiment)
+  public function send_searchExperimentsByDesc($userName, $description)
   {
-    $args = new \Airavata\API\Airavata_createExperiment_args();
-    $args->experiment = $experiment;
+    $args = new \Airavata\API\Airavata_searchExperimentsByDesc_args();
+    $args->userName = $userName;
+    $args->description = $description;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'createExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'searchExperimentsByDesc', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('createExperiment', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('searchExperimentsByDesc', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_createExperiment()
+  public function recv_searchExperimentsByDesc()
   {
     $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_createExperiment_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_searchExperimentsByDesc_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1030,7 +1026,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_createExperiment_result();
+      $result = new \Airavata\API\Airavata_searchExperimentsByDesc_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -1046,37 +1042,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("createExperiment failed: unknown result");
+    throw new \Exception("searchExperimentsByDesc failed: unknown result");
   }
 
-  public function getExperiment($airavataExperimentId)
+  public function searchExperimentsByApplication($userName, $applicationId)
   {
-    $this->send_getExperiment($airavataExperimentId);
-    return $this->recv_getExperiment();
+    $this->send_searchExperimentsByApplication($userName, $applicationId);
+    return $this->recv_searchExperimentsByApplication();
   }
 
-  public function send_getExperiment($airavataExperimentId)
+  public function send_searchExperimentsByApplication($userName, $applicationId)
   {
-    $args = new \Airavata\API\Airavata_getExperiment_args();
-    $args->airavataExperimentId = $airavataExperimentId;
+    $args = new \Airavata\API\Airavata_searchExperimentsByApplication_args();
+    $args->userName = $userName;
+    $args->applicationId = $applicationId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'searchExperimentsByApplication', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getExperiment', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('searchExperimentsByApplication', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getExperiment()
+  public function recv_searchExperimentsByApplication()
   {
     $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_getExperiment_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_searchExperimentsByApplication_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1090,7 +1087,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getExperiment_result();
+      $result = new \Airavata\API\Airavata_searchExperimentsByApplication_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -1100,47 +1097,44 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ire !== null) {
       throw $result->ire;
     }
-    if ($result->enf !== null) {
-      throw $result->enf;
-    }
     if ($result->ace !== null) {
       throw $result->ace;
     }
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("getExperiment failed: unknown result");
+    throw new \Exception("searchExperimentsByApplication failed: unknown result");
   }
 
-  public function updateExperiment($airavataExperimentId, \Airavata\Model\Workspace\Experiment\Experiment $experiment)
+  public function searchExperimentsByStatus($userName, $experimentState)
   {
-    $this->send_updateExperiment($airavataExperimentId, $experiment);
-    $this->recv_updateExperiment();
+    $this->send_searchExperimentsByStatus($userName, $experimentState);
+    return $this->recv_searchExperimentsByStatus();
   }
 
-  public function send_updateExperiment($airavataExperimentId, \Airavata\Model\Workspace\Experiment\Experiment $experiment)
+  public function send_searchExperimentsByStatus($userName, $experimentState)
   {
-    $args = new \Airavata\API\Airavata_updateExperiment_args();
-    $args->airavataExperimentId = $airavataExperimentId;
-    $args->experiment = $experiment;
+    $args = new \Airavata\API\Airavata_searchExperimentsByStatus_args();
+    $args->userName = $userName;
+    $args->experimentState = $experimentState;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'updateExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'searchExperimentsByStatus', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('updateExperiment', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('searchExperimentsByStatus', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_updateExperiment()
+  public function recv_searchExperimentsByStatus()
   {
     $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_updateExperiment_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_searchExperimentsByStatus_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1154,54 +1148,55 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_updateExperiment_result();
+      $result = new \Airavata\API\Airavata_searchExperimentsByStatus_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
+    if ($result->success !== null) {
+      return $result->success;
+    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
-    if ($result->enf !== null) {
-      throw $result->enf;
-    }
     if ($result->ace !== null) {
       throw $result->ace;
     }
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    return;
+    throw new \Exception("searchExperimentsByStatus failed: unknown result");
   }
 
-  public function updateExperimentConfiguration($airavataExperimentId, \Airavata\Model\Workspace\Experiment\UserConfigurationData $userConfiguration)
+  public function searchExperimentsByCreationTime($userName, $fromTime, $toTime)
   {
-    $this->send_updateExperimentConfiguration($airavataExperimentId, $userConfiguration);
-    $this->recv_updateExperimentConfiguration();
+    $this->send_searchExperimentsByCreationTime($userName, $fromTime, $toTime);
+    return $this->recv_searchExperimentsByCreationTime();
   }
 
-  public function send_updateExperimentConfiguration($airavataExperimentId, \Airavata\Model\Workspace\Experiment\UserConfigurationData $userConfiguration)
+  public function send_searchExperimentsByCreationTime($userName, $fromTime, $toTime)
   {
-    $args = new \Airavata\API\Airavata_updateExperimentConfiguration_args();
-    $args->airavataExperimentId = $airavataExperimentId;
-    $args->userConfiguration = $userConfiguration;
+    $args = new \Airavata\API\Airavata_searchExperimentsByCreationTime_args();
+    $args->userName = $userName;
+    $args->fromTime = $fromTime;
+    $args->toTime = $toTime;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'updateExperimentConfiguration', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'searchExperimentsByCreationTime', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('updateExperimentConfiguration', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('searchExperimentsByCreationTime', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_updateExperimentConfiguration()
+  public function recv_searchExperimentsByCreationTime()
   {
     $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_updateExperimentConfiguration_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_searchExperimentsByCreationTime_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1215,42 +1210,53 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_updateExperimentConfiguration_result();
+      $result = new \Airavata\API\Airavata_searchExperimentsByCreationTime_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
-    return;
+    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("searchExperimentsByCreationTime failed: unknown result");
   }
 
-  public function updateResourceScheduleing($airavataExperimentId, \Airavata\Model\Workspace\Experiment\ComputationalResourceScheduling $resourceScheduling)
+  public function getAllExperimentsInProject($projectId)
   {
-    $this->send_updateResourceScheduleing($airavataExperimentId, $resourceScheduling);
-    $this->recv_updateResourceScheduleing();
+    $this->send_getAllExperimentsInProject($projectId);
+    return $this->recv_getAllExperimentsInProject();
   }
 
-  public function send_updateResourceScheduleing($airavataExperimentId, \Airavata\Model\Workspace\Experiment\ComputationalResourceScheduling $resourceScheduling)
+  public function send_getAllExperimentsInProject($projectId)
   {
-    $args = new \Airavata\API\Airavata_updateResourceScheduleing_args();
-    $args->airavataExperimentId = $airavataExperimentId;
-    $args->resourceScheduling = $resourceScheduling;
+    $args = new \Airavata\API\Airavata_getAllExperimentsInProject_args();
+    $args->projectId = $projectId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'updateResourceScheduleing', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getAllExperimentsInProject', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('updateResourceScheduleing', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getAllExperimentsInProject', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_updateResourceScheduleing()
+  public function recv_getAllExperimentsInProject()
   {
     $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_updateResourceScheduleing_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllExperimentsInProject_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1264,41 +1270,56 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_updateResourceScheduleing_result();
+      $result = new \Airavata\API\Airavata_getAllExperimentsInProject_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
-    return;
+    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->pnfe !== null) {
+      throw $result->pnfe;
+    }
+    throw new \Exception("getAllExperimentsInProject failed: unknown result");
   }
 
-  public function validateExperiment($airavataExperimentId)
+  public function getAllUserExperiments($userName)
   {
-    $this->send_validateExperiment($airavataExperimentId);
-    return $this->recv_validateExperiment();
+    $this->send_getAllUserExperiments($userName);
+    return $this->recv_getAllUserExperiments();
   }
 
-  public function send_validateExperiment($airavataExperimentId)
+  public function send_getAllUserExperiments($userName)
   {
-    $args = new \Airavata\API\Airavata_validateExperiment_args();
-    $args->airavataExperimentId = $airavataExperimentId;
+    $args = new \Airavata\API\Airavata_getAllUserExperiments_args();
+    $args->userName = $userName;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'validateExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getAllUserExperiments', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('validateExperiment', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getAllUserExperiments', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_validateExperiment()
+  public function recv_getAllUserExperiments()
   {
     $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_validateExperiment_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllUserExperiments_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1312,7 +1333,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_validateExperiment_result();
+      $result = new \Airavata\API\Airavata_getAllUserExperiments_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -1322,47 +1343,43 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ire !== null) {
       throw $result->ire;
     }
-    if ($result->enf !== null) {
-      throw $result->enf;
-    }
     if ($result->ace !== null) {
       throw $result->ace;
     }
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("validateExperiment failed: unknown result");
+    throw new \Exception("getAllUserExperiments failed: unknown result");
   }
 
-  public function launchExperiment($airavataExperimentId, $airavataCredStoreToken)
+  public function createExperiment(\Airavata\Model\Workspace\Experiment\Experiment $experiment)
   {
-    $this->send_launchExperiment($airavataExperimentId, $airavataCredStoreToken);
-    $this->recv_launchExperiment();
+    $this->send_createExperiment($experiment);
+    return $this->recv_createExperiment();
   }
 
-  public function send_launchExperiment($airavataExperimentId, $airavataCredStoreToken)
+  public function send_createExperiment(\Airavata\Model\Workspace\Experiment\Experiment $experiment)
   {
-    $args = new \Airavata\API\Airavata_launchExperiment_args();
-    $args->airavataExperimentId = $airavataExperimentId;
-    $args->airavataCredStoreToken = $airavataCredStoreToken;
+    $args = new \Airavata\API\Airavata_createExperiment_args();
+    $args->experiment = $experiment;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'launchExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'createExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('launchExperiment', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('createExperiment', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_launchExperiment()
+  public function recv_createExperiment()
   {
     $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_launchExperiment_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_createExperiment_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1376,56 +1393,53 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_launchExperiment_result();
+      $result = new \Airavata\API\Airavata_createExperiment_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
+    if ($result->success !== null) {
+      return $result->success;
+    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
-    if ($result->enf !== null) {
-      throw $result->enf;
-    }
     if ($result->ace !== null) {
       throw $result->ace;
     }
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    if ($result->lve !== null) {
-      throw $result->lve;
-    }
-    return;
+    throw new \Exception("createExperiment failed: unknown result");
   }
 
-  public function getExperimentStatus($airavataExperimentId)
+  public function getExperiment($airavataExperimentId)
   {
-    $this->send_getExperimentStatus($airavataExperimentId);
-    return $this->recv_getExperimentStatus();
+    $this->send_getExperiment($airavataExperimentId);
+    return $this->recv_getExperiment();
   }
 
-  public function send_getExperimentStatus($airavataExperimentId)
+  public function send_getExperiment($airavataExperimentId)
   {
-    $args = new \Airavata\API\Airavata_getExperimentStatus_args();
+    $args = new \Airavata\API\Airavata_getExperiment_args();
     $args->airavataExperimentId = $airavataExperimentId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getExperimentStatus', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getExperimentStatus', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getExperiment', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getExperimentStatus()
+  public function recv_getExperiment()
   {
     $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_getExperimentStatus_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getExperiment_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1439,7 +1453,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getExperimentStatus_result();
+      $result = new \Airavata\API\Airavata_getExperiment_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -1458,37 +1472,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("getExperimentStatus failed: unknown result");
+    throw new \Exception("getExperiment failed: unknown result");
   }
 
-  public function getExperimentOutputs($airavataExperimentId)
+  public function updateExperiment($airavataExperimentId, \Airavata\Model\Workspace\Experiment\Experiment $experiment)
   {
-    $this->send_getExperimentOutputs($airavataExperimentId);
-    return $this->recv_getExperimentOutputs();
+    $this->send_updateExperiment($airavataExperimentId, $experiment);
+    $this->recv_updateExperiment();
   }
 
-  public function send_getExperimentOutputs($airavataExperimentId)
+  public function send_updateExperiment($airavataExperimentId, \Airavata\Model\Workspace\Experiment\Experiment $experiment)
   {
-    $args = new \Airavata\API\Airavata_getExperimentOutputs_args();
+    $args = new \Airavata\API\Airavata_updateExperiment_args();
     $args->airavataExperimentId = $airavataExperimentId;
+    $args->experiment = $experiment;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getExperimentOutputs', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'updateExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getExperimentOutputs', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('updateExperiment', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getExperimentOutputs()
+  public function recv_updateExperiment()
   {
     $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_getExperimentOutputs_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateExperiment_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1502,13 +1517,10 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getExperimentOutputs_result();
+      $result = new \Airavata\API\Airavata_updateExperiment_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
-    if ($result->success !== null) {
-      return $result->success;
-    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
@@ -1521,37 +1533,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("getExperimentOutputs failed: unknown result");
+    return;
   }
 
-  public function getJobStatuses($airavataExperimentId)
+  public function updateExperimentConfiguration($airavataExperimentId, \Airavata\Model\Workspace\Experiment\UserConfigurationData $userConfiguration)
   {
-    $this->send_getJobStatuses($airavataExperimentId);
-    return $this->recv_getJobStatuses();
+    $this->send_updateExperimentConfiguration($airavataExperimentId, $userConfiguration);
+    $this->recv_updateExperimentConfiguration();
   }
 
-  public function send_getJobStatuses($airavataExperimentId)
+  public function send_updateExperimentConfiguration($airavataExperimentId, \Airavata\Model\Workspace\Experiment\UserConfigurationData $userConfiguration)
   {
-    $args = new \Airavata\API\Airavata_getJobStatuses_args();
+    $args = new \Airavata\API\Airavata_updateExperimentConfiguration_args();
     $args->airavataExperimentId = $airavataExperimentId;
+    $args->userConfiguration = $userConfiguration;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getJobStatuses', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'updateExperimentConfiguration', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getJobStatuses', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('updateExperimentConfiguration', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getJobStatuses()
+  public function recv_updateExperimentConfiguration()
   {
     $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_getJobStatuses_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateExperimentConfiguration_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1565,56 +1578,42 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getJobStatuses_result();
+      $result = new \Airavata\API\Airavata_updateExperimentConfiguration_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
-    if ($result->success !== null) {
-      return $result->success;
-    }
-    if ($result->ire !== null) {
-      throw $result->ire;
-    }
-    if ($result->enf !== null) {
-      throw $result->enf;
-    }
-    if ($result->ace !== null) {
-      throw $result->ace;
-    }
-    if ($result->ase !== null) {
-      throw $result->ase;
-    }
-    throw new \Exception("getJobStatuses failed: unknown result");
+    return;
   }
 
-  public function getJobDetails($airavataExperimentId)
+  public function updateResourceScheduleing($airavataExperimentId, \Airavata\Model\Workspace\Experiment\ComputationalResourceScheduling $resourceScheduling)
   {
-    $this->send_getJobDetails($airavataExperimentId);
-    return $this->recv_getJobDetails();
+    $this->send_updateResourceScheduleing($airavataExperimentId, $resourceScheduling);
+    $this->recv_updateResourceScheduleing();
   }
 
-  public function send_getJobDetails($airavataExperimentId)
+  public function send_updateResourceScheduleing($airavataExperimentId, \Airavata\Model\Workspace\Experiment\ComputationalResourceScheduling $resourceScheduling)
   {
-    $args = new \Airavata\API\Airavata_getJobDetails_args();
+    $args = new \Airavata\API\Airavata_updateResourceScheduleing_args();
     $args->airavataExperimentId = $airavataExperimentId;
+    $args->resourceScheduling = $resourceScheduling;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getJobDetails', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'updateResourceScheduleing', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getJobDetails', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('updateResourceScheduleing', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getJobDetails()
+  public function recv_updateResourceScheduleing()
   {
     $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_getJobDetails_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateResourceScheduleing_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1628,56 +1627,41 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getJobDetails_result();
+      $result = new \Airavata\API\Airavata_updateResourceScheduleing_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
-    if ($result->success !== null) {
-      return $result->success;
-    }
-    if ($result->ire !== null) {
-      throw $result->ire;
-    }
-    if ($result->enf !== null) {
-      throw $result->enf;
-    }
-    if ($result->ace !== null) {
-      throw $result->ace;
-    }
-    if ($result->ase !== null) {
-      throw $result->ase;
-    }
-    throw new \Exception("getJobDetails failed: unknown result");
+    return;
   }
 
-  public function getDataTransferDetails($airavataExperimentId)
+  public function validateExperiment($airavataExperimentId)
   {
-    $this->send_getDataTransferDetails($airavataExperimentId);
-    return $this->recv_getDataTransferDetails();
+    $this->send_validateExperiment($airavataExperimentId);
+    return $this->recv_validateExperiment();
   }
 
-  public function send_getDataTransferDetails($airavataExperimentId)
+  public function send_validateExperiment($airavataExperimentId)
   {
-    $args = new \Airavata\API\Airavata_getDataTransferDetails_args();
+    $args = new \Airavata\API\Airavata_validateExperiment_args();
     $args->airavataExperimentId = $airavataExperimentId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getDataTransferDetails', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'validateExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getDataTransferDetails', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('validateExperiment', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getDataTransferDetails()
+  public function recv_validateExperiment()
   {
     $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_getDataTransferDetails_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_validateExperiment_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1691,7 +1675,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getDataTransferDetails_result();
+      $result = new \Airavata\API\Airavata_validateExperiment_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -1710,38 +1694,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("getDataTransferDetails failed: unknown result");
+    throw new \Exception("validateExperiment failed: unknown result");
   }
 
-  public function cloneExperiment($existingExperimentID, $newExperimentName)
+  public function launchExperiment($airavataExperimentId, $airavataCredStoreToken)
   {
-    $this->send_cloneExperiment($existingExperimentID, $newExperimentName);
-    return $this->recv_cloneExperiment();
+    $this->send_launchExperiment($airavataExperimentId, $airavataCredStoreToken);
+    $this->recv_launchExperiment();
   }
 
-  public function send_cloneExperiment($existingExperimentID, $newExperimentName)
+  public function send_launchExperiment($airavataExperimentId, $airavataCredStoreToken)
   {
-    $args = new \Airavata\API\Airavata_cloneExperiment_args();
-    $args->existingExperimentID = $existingExperimentID;
-    $args->newExperimentName = $newExperimentName;
+    $args = new \Airavata\API\Airavata_launchExperiment_args();
+    $args->airavataExperimentId = $airavataExperimentId;
+    $args->airavataCredStoreToken = $airavataCredStoreToken;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'cloneExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'launchExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('cloneExperiment', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('launchExperiment', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_cloneExperiment()
+  public function recv_launchExperiment()
   {
     $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_cloneExperiment_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_launchExperiment_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1755,13 +1739,10 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_cloneExperiment_result();
+      $result = new \Airavata\API\Airavata_launchExperiment_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
-    if ($result->success !== null) {
-      return $result->success;
-    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
@@ -1774,37 +1755,40 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("cloneExperiment failed: unknown result");
+    if ($result->lve !== null) {
+      throw $result->lve;
+    }
+    return;
   }
 
-  public function terminateExperiment($airavataExperimentId)
+  public function getExperimentStatus($airavataExperimentId)
   {
-    $this->send_terminateExperiment($airavataExperimentId);
-    $this->recv_terminateExperiment();
+    $this->send_getExperimentStatus($airavataExperimentId);
+    return $this->recv_getExperimentStatus();
   }
 
-  public function send_terminateExperiment($airavataExperimentId)
+  public function send_getExperimentStatus($airavataExperimentId)
   {
-    $args = new \Airavata\API\Airavata_terminateExperiment_args();
+    $args = new \Airavata\API\Airavata_getExperimentStatus_args();
     $args->airavataExperimentId = $airavataExperimentId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'terminateExperiment', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getExperimentStatus', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('terminateExperiment', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getExperimentStatus', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_terminateExperiment()
+  public function recv_getExperimentStatus()
   {
     $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_terminateExperiment_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getExperimentStatus_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1818,10 +1802,13 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_terminateExperiment_result();
+      $result = new \Airavata\API\Airavata_getExperimentStatus_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
+    if ($result->success !== null) {
+      return $result->success;
+    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
@@ -1834,37 +1821,37 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    return;
+    throw new \Exception("getExperimentStatus failed: unknown result");
   }
 
-  public function registerApplicationModule(\Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule)
+  public function getExperimentOutputs($airavataExperimentId)
   {
-    $this->send_registerApplicationModule($applicationModule);
-    return $this->recv_registerApplicationModule();
+    $this->send_getExperimentOutputs($airavataExperimentId);
+    return $this->recv_getExperimentOutputs();
   }
 
-  public function send_registerApplicationModule(\Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule)
+  public function send_getExperimentOutputs($airavataExperimentId)
   {
-    $args = new \Airavata\API\Airavata_registerApplicationModule_args();
-    $args->applicationModule = $applicationModule;
+    $args = new \Airavata\API\Airavata_getExperimentOutputs_args();
+    $args->airavataExperimentId = $airavataExperimentId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'registerApplicationModule', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getExperimentOutputs', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('registerApplicationModule', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getExperimentOutputs', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_registerApplicationModule()
+  public function recv_getExperimentOutputs()
   {
     $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_registerApplicationModule_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getExperimentOutputs_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1878,7 +1865,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_registerApplicationModule_result();
+      $result = new \Airavata\API\Airavata_getExperimentOutputs_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -1888,43 +1875,46 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ire !== null) {
       throw $result->ire;
     }
+    if ($result->enf !== null) {
+      throw $result->enf;
+    }
     if ($result->ace !== null) {
       throw $result->ace;
     }
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("registerApplicationModule failed: unknown result");
+    throw new \Exception("getExperimentOutputs failed: unknown result");
   }
 
-  public function getApplicationModule($appModuleId)
+  public function getJobStatuses($airavataExperimentId)
   {
-    $this->send_getApplicationModule($appModuleId);
-    return $this->recv_getApplicationModule();
+    $this->send_getJobStatuses($airavataExperimentId);
+    return $this->recv_getJobStatuses();
   }
 
-  public function send_getApplicationModule($appModuleId)
+  public function send_getJobStatuses($airavataExperimentId)
   {
-    $args = new \Airavata\API\Airavata_getApplicationModule_args();
-    $args->appModuleId = $appModuleId;
+    $args = new \Airavata\API\Airavata_getJobStatuses_args();
+    $args->airavataExperimentId = $airavataExperimentId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getApplicationModule', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getJobStatuses', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getApplicationModule', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getJobStatuses', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getApplicationModule()
+  public function recv_getJobStatuses()
   {
     $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_getApplicationModule_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getJobStatuses_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -1938,7 +1928,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getApplicationModule_result();
+      $result = new \Airavata\API\Airavata_getJobStatuses_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -1948,44 +1938,46 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ire !== null) {
       throw $result->ire;
     }
+    if ($result->enf !== null) {
+      throw $result->enf;
+    }
     if ($result->ace !== null) {
       throw $result->ace;
     }
     if ($result->ase !== null) {
       throw $result->ase;
     }
-    throw new \Exception("getApplicationModule failed: unknown result");
+    throw new \Exception("getJobStatuses failed: unknown result");
   }
 
-  public function updateApplicationModule($appModuleId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule)
+  public function getJobDetails($airavataExperimentId)
   {
-    $this->send_updateApplicationModule($appModuleId, $applicationModule);
-    return $this->recv_updateApplicationModule();
+    $this->send_getJobDetails($airavataExperimentId);
+    return $this->recv_getJobDetails();
   }
 
-  public function send_updateApplicationModule($appModuleId, \Airavata\Model\AppCatalog\AppDeployment\ApplicationModule $applicationModule)
+  public function send_getJobDetails($airavataExperimentId)
   {
-    $args = new \Airavata\API\Airavata_updateApplicationModule_args();
-    $args->appModuleId = $appModuleId;
-    $args->applicationModule = $applicationModule;
+    $args = new \Airavata\API\Airavata_getJobDetails_args();
+    $args->airavataExperimentId = $airavataExperimentId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'updateApplicationModule', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getJobDetails', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('updateApplicationModule', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getJobDetails', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_updateApplicationModule()
+  public function recv_getJobDetails()
   {
     $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_updateApplicationModule_result', $this->input_->isStrictRead());
+  

<TRUNCATED>

[6/7] airavata git commit: adding CRUD operations to gateway - AIRAVATA-1608, AIRAVATA-1604

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/658e5e9e/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index e253126..8ea9fa4 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -58,6 +58,18 @@ import org.slf4j.LoggerFactory;
      */
     public String getAPIVersion() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
+    public String addGateway(org.apache.airavata.model.workspace.Gateway gateway) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    public void updateGateway(String gatewayId, org.apache.airavata.model.workspace.Gateway updatedGateway) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    public org.apache.airavata.model.workspace.Gateway getGateway(String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    public boolean deleteGateway(String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    public List<org.apache.airavata.model.workspace.Gateway> getAllGateways() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
+    public boolean isGatewayExist(String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+
     /**
      * Create a Project
      * 
@@ -1430,6 +1442,18 @@ import org.slf4j.LoggerFactory;
 
     public void getAPIVersion(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void addGateway(org.apache.airavata.model.workspace.Gateway gateway, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void updateGateway(String gatewayId, org.apache.airavata.model.workspace.Gateway updatedGateway, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getGateway(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void deleteGateway(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getAllGateways(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void isGatewayExist(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void createProject(org.apache.airavata.model.workspace.Project project, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void updateProject(String projectId, org.apache.airavata.model.workspace.Project updatedProject, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -1691,6 +1715,195 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAPIVersion failed: unknown result");
     }
 
+    public String addGateway(org.apache.airavata.model.workspace.Gateway gateway) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_addGateway(gateway);
+      return recv_addGateway();
+    }
+
+    public void send_addGateway(org.apache.airavata.model.workspace.Gateway gateway) throws org.apache.thrift.TException
+    {
+      addGateway_args args = new addGateway_args();
+      args.setGateway(gateway);
+      sendBase("addGateway", args);
+    }
+
+    public String recv_addGateway() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      addGateway_result result = new addGateway_result();
+      receiveBase(result, "addGateway");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addGateway failed: unknown result");
+    }
+
+    public void updateGateway(String gatewayId, org.apache.airavata.model.workspace.Gateway updatedGateway) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_updateGateway(gatewayId, updatedGateway);
+      recv_updateGateway();
+    }
+
+    public void send_updateGateway(String gatewayId, org.apache.airavata.model.workspace.Gateway updatedGateway) throws org.apache.thrift.TException
+    {
+      updateGateway_args args = new updateGateway_args();
+      args.setGatewayId(gatewayId);
+      args.setUpdatedGateway(updatedGateway);
+      sendBase("updateGateway", args);
+    }
+
+    public void recv_updateGateway() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      updateGateway_result result = new updateGateway_result();
+      receiveBase(result, "updateGateway");
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      return;
+    }
+
+    public org.apache.airavata.model.workspace.Gateway getGateway(String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getGateway(gatewayId);
+      return recv_getGateway();
+    }
+
+    public void send_getGateway(String gatewayId) throws org.apache.thrift.TException
+    {
+      getGateway_args args = new getGateway_args();
+      args.setGatewayId(gatewayId);
+      sendBase("getGateway", args);
+    }
+
+    public org.apache.airavata.model.workspace.Gateway recv_getGateway() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getGateway_result result = new getGateway_result();
+      receiveBase(result, "getGateway");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getGateway failed: unknown result");
+    }
+
+    public boolean deleteGateway(String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_deleteGateway(gatewayId);
+      return recv_deleteGateway();
+    }
+
+    public void send_deleteGateway(String gatewayId) throws org.apache.thrift.TException
+    {
+      deleteGateway_args args = new deleteGateway_args();
+      args.setGatewayId(gatewayId);
+      sendBase("deleteGateway", args);
+    }
+
+    public boolean recv_deleteGateway() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      deleteGateway_result result = new deleteGateway_result();
+      receiveBase(result, "deleteGateway");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteGateway failed: unknown result");
+    }
+
+    public List<org.apache.airavata.model.workspace.Gateway> getAllGateways() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_getAllGateways();
+      return recv_getAllGateways();
+    }
+
+    public void send_getAllGateways() throws org.apache.thrift.TException
+    {
+      getAllGateways_args args = new getAllGateways_args();
+      sendBase("getAllGateways", args);
+    }
+
+    public List<org.apache.airavata.model.workspace.Gateway> recv_getAllGateways() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      getAllGateways_result result = new getAllGateways_result();
+      receiveBase(result, "getAllGateways");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllGateways failed: unknown result");
+    }
+
+    public boolean isGatewayExist(String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      send_isGatewayExist(gatewayId);
+      return recv_isGatewayExist();
+    }
+
+    public void send_isGatewayExist(String gatewayId) throws org.apache.thrift.TException
+    {
+      isGatewayExist_args args = new isGatewayExist_args();
+      args.setGatewayId(gatewayId);
+      sendBase("isGatewayExist", args);
+    }
+
+    public boolean recv_isGatewayExist() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    {
+      isGatewayExist_result result = new isGatewayExist_result();
+      receiveBase(result, "isGatewayExist");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isGatewayExist failed: unknown result");
+    }
+
     public String createProject(org.apache.airavata.model.workspace.Project project) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_createProject(project);
@@ -5118,6 +5331,198 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public void addGateway(org.apache.airavata.model.workspace.Gateway gateway, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      addGateway_call method_call = new addGateway_call(gateway, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class addGateway_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.workspace.Gateway gateway;
+      public addGateway_call(org.apache.airavata.model.workspace.Gateway gateway, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gateway = gateway;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addGateway", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        addGateway_args args = new addGateway_args();
+        args.setGateway(gateway);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public String getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_addGateway();
+      }
+    }
+
+    public void updateGateway(String gatewayId, org.apache.airavata.model.workspace.Gateway updatedGateway, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      updateGateway_call method_call = new updateGateway_call(gatewayId, updatedGateway, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateGateway_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      private org.apache.airavata.model.workspace.Gateway updatedGateway;
+      public updateGateway_call(String gatewayId, org.apache.airavata.model.workspace.Gateway updatedGateway, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+        this.updatedGateway = updatedGateway;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateGateway", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateGateway_args args = new updateGateway_args();
+        args.setGatewayId(gatewayId);
+        args.setUpdatedGateway(updatedGateway);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public void getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        (new Client(prot)).recv_updateGateway();
+      }
+    }
+
+    public void getGateway(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getGateway_call method_call = new getGateway_call(gatewayId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getGateway_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      public getGateway_call(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getGateway", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getGateway_args args = new getGateway_args();
+        args.setGatewayId(gatewayId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.workspace.Gateway getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getGateway();
+      }
+    }
+
+    public void deleteGateway(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      deleteGateway_call method_call = new deleteGateway_call(gatewayId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteGateway_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      public deleteGateway_call(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteGateway", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        deleteGateway_args args = new deleteGateway_args();
+        args.setGatewayId(gatewayId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_deleteGateway();
+      }
+    }
+
+    public void getAllGateways(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllGateways_call method_call = new getAllGateways_call(resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllGateways_call extends org.apache.thrift.async.TAsyncMethodCall {
+      public getAllGateways_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllGateways", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllGateways_args args = new getAllGateways_args();
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.workspace.Gateway> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAllGateways();
+      }
+    }
+
+    public void isGatewayExist(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      isGatewayExist_call method_call = new isGatewayExist_call(gatewayId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class isGatewayExist_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String gatewayId;
+      public isGatewayExist_call(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.gatewayId = gatewayId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("isGatewayExist", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        isGatewayExist_args args = new isGatewayExist_args();
+        args.setGatewayId(gatewayId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_isGatewayExist();
+      }
+    }
+
     public void createProject(org.apache.airavata.model.workspace.Project project, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       createProject_call method_call = new createProject_call(project, resultHandler, this, ___protocolFactory, ___transport);
@@ -8607,6 +9012,12 @@ import org.slf4j.LoggerFactory;
 
     private static <I extends Iface> Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> getProcessMap(Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
       processMap.put("getAPIVersion", new getAPIVersion());
+      processMap.put("addGateway", new addGateway());
+      processMap.put("updateGateway", new updateGateway());
+      processMap.put("getGateway", new getGateway());
+      processMap.put("deleteGateway", new deleteGateway());
+      processMap.put("getAllGateways", new getAllGateways());
+      processMap.put("isGatewayExist", new isGatewayExist());
       processMap.put("createProject", new createProject());
       processMap.put("updateProject", new updateProject());
       processMap.put("getProject", new getProject());
@@ -8742,6 +9153,176 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public static class addGateway<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addGateway_args> {
+      public addGateway() {
+        super("addGateway");
+      }
+
+      public addGateway_args getEmptyArgsInstance() {
+        return new addGateway_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public addGateway_result getResult(I iface, addGateway_args args) throws org.apache.thrift.TException {
+        addGateway_result result = new addGateway_result();
+        try {
+          result.success = iface.addGateway(args.gateway);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
+    public static class updateGateway<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateGateway_args> {
+      public updateGateway() {
+        super("updateGateway");
+      }
+
+      public updateGateway_args getEmptyArgsInstance() {
+        return new updateGateway_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public updateGateway_result getResult(I iface, updateGateway_args args) throws org.apache.thrift.TException {
+        updateGateway_result result = new updateGateway_result();
+        try {
+          iface.updateGateway(args.gatewayId, args.updatedGateway);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
+    public static class getGateway<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getGateway_args> {
+      public getGateway() {
+        super("getGateway");
+      }
+
+      public getGateway_args getEmptyArgsInstance() {
+        return new getGateway_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getGateway_result getResult(I iface, getGateway_args args) throws org.apache.thrift.TException {
+        getGateway_result result = new getGateway_result();
+        try {
+          result.success = iface.getGateway(args.gatewayId);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
+    public static class deleteGateway<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteGateway_args> {
+      public deleteGateway() {
+        super("deleteGateway");
+      }
+
+      public deleteGateway_args getEmptyArgsInstance() {
+        return new deleteGateway_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public deleteGateway_result getResult(I iface, deleteGateway_args args) throws org.apache.thrift.TException {
+        deleteGateway_result result = new deleteGateway_result();
+        try {
+          result.success = iface.deleteGateway(args.gatewayId);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
+    public static class getAllGateways<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllGateways_args> {
+      public getAllGateways() {
+        super("getAllGateways");
+      }
+
+      public getAllGateways_args getEmptyArgsInstance() {
+        return new getAllGateways_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllGateways_result getResult(I iface, getAllGateways_args args) throws org.apache.thrift.TException {
+        getAllGateways_result result = new getAllGateways_result();
+        try {
+          result.success = iface.getAllGateways();
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
+    public static class isGatewayExist<I extends Iface> extends org.apache.thrift.ProcessFunction<I, isGatewayExist_args> {
+      public isGatewayExist() {
+        super("isGatewayExist");
+      }
+
+      public isGatewayExist_args getEmptyArgsInstance() {
+        return new isGatewayExist_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public isGatewayExist_result getResult(I iface, isGatewayExist_args args) throws org.apache.thrift.TException {
+        isGatewayExist_result result = new isGatewayExist_result();
+        try {
+          result.success = iface.isGatewayExist(args.gatewayId);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        }
+        return result;
+      }
+    }
+
     public static class createProject<I extends Iface> extends org.apache.thrift.ProcessFunction<I, createProject_args> {
       public createProject() {
         super("createProject");
@@ -11714,6 +12295,12 @@ import org.slf4j.LoggerFactory;
 
     private static <I extends AsyncIface> Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase,?>> getProcessMap(Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
       processMap.put("getAPIVersion", new getAPIVersion());
+      processMap.put("addGateway", new addGateway());
+      processMap.put("updateGateway", new updateGateway());
+      processMap.put("getGateway", new getGateway());
+      processMap.put("deleteGateway", new deleteGateway());
+      processMap.put("getAllGateways", new getAllGateways());
+      processMap.put("isGatewayExist", new isGatewayExist());
       processMap.put("createProject", new createProject());
       processMap.put("updateProject", new updateProject());
       processMap.put("getProject", new getProject());
@@ -11888,20 +12475,20 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class createProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createProject_args, String> {
-      public createProject() {
-        super("createProject");
+    public static class addGateway<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addGateway_args, String> {
+      public addGateway() {
+        super("addGateway");
       }
 
-      public createProject_args getEmptyArgsInstance() {
-        return new createProject_args();
+      public addGateway_args getEmptyArgsInstance() {
+        return new addGateway_args();
       }
 
       public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<String>() { 
           public void onComplete(String o) {
-            createProject_result result = new createProject_result();
+            addGateway_result result = new addGateway_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -11914,7 +12501,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            createProject_result result = new createProject_result();
+            addGateway_result result = new addGateway_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -11950,25 +12537,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, createProject_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
-        iface.createProject(args.project,resultHandler);
+      public void start(I iface, addGateway_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.addGateway(args.gateway,resultHandler);
       }
     }
 
-    public static class updateProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProject_args, Void> {
-      public updateProject() {
-        super("updateProject");
+    public static class updateGateway<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGateway_args, Void> {
+      public updateGateway() {
+        super("updateGateway");
       }
 
-      public updateProject_args getEmptyArgsInstance() {
-        return new updateProject_args();
+      public updateGateway_args getEmptyArgsInstance() {
+        return new updateGateway_args();
       }
 
       public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Void>() { 
           public void onComplete(Void o) {
-            updateProject_result result = new updateProject_result();
+            updateGateway_result result = new updateGateway_result();
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -11980,7 +12567,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateProject_result result = new updateProject_result();
+            updateGateway_result result = new updateGateway_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -11996,11 +12583,6 @@ import org.slf4j.LoggerFactory;
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
-                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
-                        result.setPnfeIsSet(true);
-                        msg = result;
-            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -12021,25 +12603,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, updateProject_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
-        iface.updateProject(args.projectId, args.updatedProject,resultHandler);
+      public void start(I iface, updateGateway_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
+        iface.updateGateway(args.gatewayId, args.updatedGateway,resultHandler);
       }
     }
 
-    public static class getProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProject_args, org.apache.airavata.model.workspace.Project> {
-      public getProject() {
-        super("getProject");
+    public static class getGateway<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGateway_args, org.apache.airavata.model.workspace.Gateway> {
+      public getGateway() {
+        super("getGateway");
       }
 
-      public getProject_args getEmptyArgsInstance() {
-        return new getProject_args();
+      public getGateway_args getEmptyArgsInstance() {
+        return new getGateway_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.workspace.Project> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.workspace.Gateway> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<org.apache.airavata.model.workspace.Project>() { 
-          public void onComplete(org.apache.airavata.model.workspace.Project o) {
-            getProject_result result = new getProject_result();
+        return new AsyncMethodCallback<org.apache.airavata.model.workspace.Gateway>() { 
+          public void onComplete(org.apache.airavata.model.workspace.Gateway o) {
+            getGateway_result result = new getGateway_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12052,7 +12634,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getProject_result result = new getProject_result();
+            getGateway_result result = new getGateway_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12068,9 +12650,72 @@ import org.slf4j.LoggerFactory;
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
-                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
-                        result.setPnfeIsSet(true);
+             else 
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getGateway_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Gateway> resultHandler) throws TException {
+        iface.getGateway(args.gatewayId,resultHandler);
+      }
+    }
+
+    public static class deleteGateway<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGateway_args, Boolean> {
+      public deleteGateway() {
+        super("deleteGateway");
+      }
+
+      public deleteGateway_args getEmptyArgsInstance() {
+        return new deleteGateway_args();
+      }
+
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            deleteGateway_result result = new deleteGateway_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            deleteGateway_result result = new deleteGateway_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+                        result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+                        result.setIreIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+                        result.setAceIsSet(true);
+                        msg = result;
+            }
+            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+                        result.setAseIsSet(true);
                         msg = result;
             }
              else 
@@ -12093,25 +12738,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, getProject_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Project> resultHandler) throws TException {
-        iface.getProject(args.projectId,resultHandler);
+      public void start(I iface, deleteGateway_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteGateway(args.gatewayId,resultHandler);
       }
     }
 
-    public static class getAllUserProjects<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserProjects_args, List<org.apache.airavata.model.workspace.Project>> {
-      public getAllUserProjects() {
-        super("getAllUserProjects");
+    public static class getAllGateways<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGateways_args, List<org.apache.airavata.model.workspace.Gateway>> {
+      public getAllGateways() {
+        super("getAllGateways");
       }
 
-      public getAllUserProjects_args getEmptyArgsInstance() {
-        return new getAllUserProjects_args();
+      public getAllGateways_args getEmptyArgsInstance() {
+        return new getAllGateways_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Gateway>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
-            getAllUserProjects_result result = new getAllUserProjects_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Gateway>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.Gateway> o) {
+            getAllGateways_result result = new getAllGateways_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12124,7 +12769,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllUserProjects_result result = new getAllUserProjects_result();
+            getAllGateways_result result = new getAllGateways_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12160,26 +12805,27 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, getAllUserProjects_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
-        iface.getAllUserProjects(args.userName,resultHandler);
+      public void start(I iface, getAllGateways_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Gateway>> resultHandler) throws TException {
+        iface.getAllGateways(resultHandler);
       }
     }
 
-    public static class searchProjectsByProjectName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchProjectsByProjectName_args, List<org.apache.airavata.model.workspace.Project>> {
-      public searchProjectsByProjectName() {
-        super("searchProjectsByProjectName");
+    public static class isGatewayExist<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isGatewayExist_args, Boolean> {
+      public isGatewayExist() {
+        super("isGatewayExist");
       }
 
-      public searchProjectsByProjectName_args getEmptyArgsInstance() {
-        return new searchProjectsByProjectName_args();
+      public isGatewayExist_args getEmptyArgsInstance() {
+        return new isGatewayExist_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
-            searchProjectsByProjectName_result result = new searchProjectsByProjectName_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            isGatewayExist_result result = new isGatewayExist_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -12191,7 +12837,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchProjectsByProjectName_result result = new searchProjectsByProjectName_result();
+            isGatewayExist_result result = new isGatewayExist_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12227,25 +12873,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, searchProjectsByProjectName_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
-        iface.searchProjectsByProjectName(args.userName, args.projectName,resultHandler);
+      public void start(I iface, isGatewayExist_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.isGatewayExist(args.gatewayId,resultHandler);
       }
     }
 
-    public static class searchProjectsByProjectDesc<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchProjectsByProjectDesc_args, List<org.apache.airavata.model.workspace.Project>> {
-      public searchProjectsByProjectDesc() {
-        super("searchProjectsByProjectDesc");
+    public static class createProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createProject_args, String> {
+      public createProject() {
+        super("createProject");
       }
 
-      public searchProjectsByProjectDesc_args getEmptyArgsInstance() {
-        return new searchProjectsByProjectDesc_args();
+      public createProject_args getEmptyArgsInstance() {
+        return new createProject_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
-            searchProjectsByProjectDesc_result result = new searchProjectsByProjectDesc_result();
+        return new AsyncMethodCallback<String>() { 
+          public void onComplete(String o) {
+            createProject_result result = new createProject_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12258,7 +12904,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchProjectsByProjectDesc_result result = new searchProjectsByProjectDesc_result();
+            createProject_result result = new createProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12294,26 +12940,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, searchProjectsByProjectDesc_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
-        iface.searchProjectsByProjectDesc(args.userName, args.description,resultHandler);
+      public void start(I iface, createProject_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.createProject(args.project,resultHandler);
       }
     }
 
-    public static class searchExperimentsByName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByName_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
-      public searchExperimentsByName() {
-        super("searchExperimentsByName");
+    public static class updateProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateProject_args, Void> {
+      public updateProject() {
+        super("updateProject");
       }
 
-      public searchExperimentsByName_args getEmptyArgsInstance() {
-        return new searchExperimentsByName_args();
+      public updateProject_args getEmptyArgsInstance() {
+        return new updateProject_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
-            searchExperimentsByName_result result = new searchExperimentsByName_result();
-            result.success = o;
+        return new AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateProject_result result = new updateProject_result();
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -12325,7 +12970,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchExperimentsByName_result result = new searchExperimentsByName_result();
+            updateProject_result result = new updateProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12341,6 +12986,11 @@ import org.slf4j.LoggerFactory;
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
+                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
+                        result.setPnfeIsSet(true);
+                        msg = result;
+            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -12361,25 +13011,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, searchExperimentsByName_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> resultHandler) throws TException {
-        iface.searchExperimentsByName(args.userName, args.expName,resultHandler);
+      public void start(I iface, updateProject_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
+        iface.updateProject(args.projectId, args.updatedProject,resultHandler);
       }
     }
 
-    public static class searchExperimentsByDesc<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByDesc_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
-      public searchExperimentsByDesc() {
-        super("searchExperimentsByDesc");
+    public static class getProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getProject_args, org.apache.airavata.model.workspace.Project> {
+      public getProject() {
+        super("getProject");
       }
 
-      public searchExperimentsByDesc_args getEmptyArgsInstance() {
-        return new searchExperimentsByDesc_args();
+      public getProject_args getEmptyArgsInstance() {
+        return new getProject_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.workspace.Project> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
-            searchExperimentsByDesc_result result = new searchExperimentsByDesc_result();
+        return new AsyncMethodCallback<org.apache.airavata.model.workspace.Project>() { 
+          public void onComplete(org.apache.airavata.model.workspace.Project o) {
+            getProject_result result = new getProject_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12392,7 +13042,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchExperimentsByDesc_result result = new searchExperimentsByDesc_result();
+            getProject_result result = new getProject_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12408,6 +13058,11 @@ import org.slf4j.LoggerFactory;
                         result.setAseIsSet(true);
                         msg = result;
             }
+            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
+                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
+                        result.setPnfeIsSet(true);
+                        msg = result;
+            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -12428,25 +13083,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, searchExperimentsByDesc_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> resultHandler) throws TException {
-        iface.searchExperimentsByDesc(args.userName, args.description,resultHandler);
+      public void start(I iface, getProject_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Project> resultHandler) throws TException {
+        iface.getProject(args.projectId,resultHandler);
       }
     }
 
-    public static class searchExperimentsByApplication<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByApplication_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
-      public searchExperimentsByApplication() {
-        super("searchExperimentsByApplication");
+    public static class getAllUserProjects<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserProjects_args, List<org.apache.airavata.model.workspace.Project>> {
+      public getAllUserProjects() {
+        super("getAllUserProjects");
       }
 
-      public searchExperimentsByApplication_args getEmptyArgsInstance() {
-        return new searchExperimentsByApplication_args();
+      public getAllUserProjects_args getEmptyArgsInstance() {
+        return new getAllUserProjects_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
-            searchExperimentsByApplication_result result = new searchExperimentsByApplication_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
+            getAllUserProjects_result result = new getAllUserProjects_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12459,7 +13114,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchExperimentsByApplication_result result = new searchExperimentsByApplication_result();
+            getAllUserProjects_result result = new getAllUserProjects_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12495,25 +13150,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, searchExperimentsByApplication_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> resultHandler) throws TException {
-        iface.searchExperimentsByApplication(args.userName, args.applicationId,resultHandler);
+      public void start(I iface, getAllUserProjects_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
+        iface.getAllUserProjects(args.userName,resultHandler);
       }
     }
 
-    public static class searchExperimentsByStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByStatus_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
-      public searchExperimentsByStatus() {
-        super("searchExperimentsByStatus");
+    public static class searchProjectsByProjectName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchProjectsByProjectName_args, List<org.apache.airavata.model.workspace.Project>> {
+      public searchProjectsByProjectName() {
+        super("searchProjectsByProjectName");
       }
 
-      public searchExperimentsByStatus_args getEmptyArgsInstance() {
-        return new searchExperimentsByStatus_args();
+      public searchProjectsByProjectName_args getEmptyArgsInstance() {
+        return new searchProjectsByProjectName_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
-            searchExperimentsByStatus_result result = new searchExperimentsByStatus_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
+            searchProjectsByProjectName_result result = new searchProjectsByProjectName_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12526,7 +13181,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchExperimentsByStatus_result result = new searchExperimentsByStatus_result();
+            searchProjectsByProjectName_result result = new searchProjectsByProjectName_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12562,25 +13217,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, searchExperimentsByStatus_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> resultHandler) throws TException {
-        iface.searchExperimentsByStatus(args.userName, args.experimentState,resultHandler);
+      public void start(I iface, searchProjectsByProjectName_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
+        iface.searchProjectsByProjectName(args.userName, args.projectName,resultHandler);
       }
     }
 
-    public static class searchExperimentsByCreationTime<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByCreationTime_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
-      public searchExperimentsByCreationTime() {
-        super("searchExperimentsByCreationTime");
+    public static class searchProjectsByProjectDesc<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchProjectsByProjectDesc_args, List<org.apache.airavata.model.workspace.Project>> {
+      public searchProjectsByProjectDesc() {
+        super("searchProjectsByProjectDesc");
       }
 
-      public searchExperimentsByCreationTime_args getEmptyArgsInstance() {
-        return new searchExperimentsByCreationTime_args();
+      public searchProjectsByProjectDesc_args getEmptyArgsInstance() {
+        return new searchProjectsByProjectDesc_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
-            searchExperimentsByCreationTime_result result = new searchExperimentsByCreationTime_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.Project> o) {
+            searchProjectsByProjectDesc_result result = new searchProjectsByProjectDesc_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12593,7 +13248,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            searchExperimentsByCreationTime_result result = new searchExperimentsByCreationTime_result();
+            searchProjectsByProjectDesc_result result = new searchProjectsByProjectDesc_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12629,25 +13284,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, searchExperimentsByCreationTime_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> resultHandler) throws TException {
-        iface.searchExperimentsByCreationTime(args.userName, args.fromTime, args.toTime,resultHandler);
+      public void start(I iface, searchProjectsByProjectDesc_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.Project>> resultHandler) throws TException {
+        iface.searchProjectsByProjectDesc(args.userName, args.description,resultHandler);
       }
     }
 
-    public static class getAllExperimentsInProject<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllExperimentsInProject_args, List<org.apache.airavata.model.workspace.experiment.Experiment>> {
-      public getAllExperimentsInProject() {
-        super("getAllExperimentsInProject");
+    public static class searchExperimentsByName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByName_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
+      public searchExperimentsByName() {
+        super("searchExperimentsByName");
       }
 
-      public getAllExperimentsInProject_args getEmptyArgsInstance() {
-        return new getAllExperimentsInProject_args();
+      public searchExperimentsByName_args getEmptyArgsInstance() {
+        return new searchExperimentsByName_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.Experiment>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.Experiment>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.experiment.Experiment> o) {
-            getAllExperimentsInProject_result result = new getAllExperimentsInProject_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
+            searchExperimentsByName_result result = new searchExperimentsByName_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12660,7 +13315,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllExperimentsInProject_result result = new getAllExperimentsInProject_result();
+            searchExperimentsByName_result result = new searchExperimentsByName_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12676,11 +13331,6 @@ import org.slf4j.LoggerFactory;
                         result.setAseIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ProjectNotFoundException) {
-                        result.pnfe = (org.apache.airavata.model.error.ProjectNotFoundException) e;
-                        result.setPnfeIsSet(true);
-                        msg = result;
-            }
              else 
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
@@ -12701,25 +13351,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, getAllExperimentsInProject_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.Experiment>> resultHandler) throws TException {
-        iface.getAllExperimentsInProject(args.projectId,resultHandler);
+      public void start(I iface, searchExperimentsByName_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> resultHandler) throws TException {
+        iface.searchExperimentsByName(args.userName, args.expName,resultHandler);
       }
     }
 
-    public static class getAllUserExperiments<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserExperiments_args, List<org.apache.airavata.model.workspace.experiment.Experiment>> {
-      public getAllUserExperiments() {
-        super("getAllUserExperiments");
+    public static class searchExperimentsByDesc<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByDesc_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
+      public searchExperimentsByDesc() {
+        super("searchExperimentsByDesc");
       }
 
-      public getAllUserExperiments_args getEmptyArgsInstance() {
-        return new getAllUserExperiments_args();
+      public searchExperimentsByDesc_args getEmptyArgsInstance() {
+        return new searchExperimentsByDesc_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.Experiment>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.Experiment>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.experiment.Experiment> o) {
-            getAllUserExperiments_result result = new getAllUserExperiments_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
+            searchExperimentsByDesc_result result = new searchExperimentsByDesc_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12732,7 +13382,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllUserExperiments_result result = new getAllUserExperiments_result();
+            searchExperimentsByDesc_result result = new searchExperimentsByDesc_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12768,25 +13418,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, getAllUserExperiments_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.Experiment>> resultHandler) throws TException {
-        iface.getAllUserExperiments(args.userName,resultHandler);
+      public void start(I iface, searchExperimentsByDesc_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> resultHandler) throws TException {
+        iface.searchExperimentsByDesc(args.userName, args.description,resultHandler);
       }
     }
 
-    public static class createExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createExperiment_args, String> {
-      public createExperiment() {
-        super("createExperiment");
+    public static class searchExperimentsByApplication<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByApplication_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
+      public searchExperimentsByApplication() {
+        super("searchExperimentsByApplication");
       }
 
-      public createExperiment_args getEmptyArgsInstance() {
-        return new createExperiment_args();
+      public searchExperimentsByApplication_args getEmptyArgsInstance() {
+        return new searchExperimentsByApplication_args();
       }
 
-      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<String>() { 
-          public void onComplete(String o) {
-            createExperiment_result result = new createExperiment_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
+            searchExperimentsByApplication_result result = new searchExperimentsByApplication_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12799,7 +13449,7 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            createExperiment_result result = new createExperiment_result();
+            searchExperimentsByApplication_result result = new searchExperimentsByApplication_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -12835,25 +13485,25 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, createExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
-        iface.createExperiment(args.experiment,resultHandler);
+      public void start(I iface, searchExperimentsByApplication_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> resultHandler) throws TException {
+        iface.searchExperimentsByApplication(args.userName, args.applicationId,resultHandler);
       }
     }
 
-    public static class getExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperiment_args, org.apache.airavata.model.workspace.experiment.Experiment> {
-      public getExperiment() {
-        super("getExperiment");
+    public static class searchExperimentsByStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByStatus_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
+      public searchExperimentsByStatus() {
+        super("searchExperimentsByStatus");
       }
 
-      public getExperiment_args getEmptyArgsInstance() {
-        return new getExperiment_args();
+      public searchExperimentsByStatus_args getEmptyArgsInstance() {
+        return new searchExperimentsByStatus_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.workspace.experiment.Experiment> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<org.apache.airavata.model.workspace.experiment.Experiment>() { 
-          public void onComplete(org.apache.airavata.model.workspace.experiment.Experiment o) {
-            getExperiment_result result = new getExperiment_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
+            searchExperimentsByStatus_result result = new searchExperimentsByStatus_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -12866,17 +13516,12 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getExperiment_result result = new getExperiment_result();
+            searchExperimentsByStatus_result result = new searchExperimentsByStatus_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
                         msg = result;
             }
-            else             if (e instanceof org.apache.airavata.model.error.ExperimentNotFoundException) {
-                        result.enf = (org.apache.airavata.model.error.ExperimentNotFoundException) e;
-                        result.setEnfIsSet(true);
-                        msg = result;
-            }
             else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
                         result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
                         result.setAceIsSet(true);
@@ -12907,25 +13552,26 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, getExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.experiment.Experiment> resultHandler) throws TException {
-        iface.getExperiment(args.airavataExperimentId,resultHandler);
+      public void start(I iface, searchExperimentsByStatus_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> resultHandler) throws TException {
+        iface.searchExperimentsByStatus(args.userName, args.experimentState,resultHandler);
       }
     }
 
-    public static class updateExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateExperiment_args, Void> {
-      public updateExperiment() {
-        super("updateExperiment");
+    public static class searchExperimentsByCreationTime<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, searchExperimentsByCreationTime_args, List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> {
+      public searchExperimentsByCreationTime() {
+        super("searchExperimentsByCreationTime");
       }
 
-      public updateExperiment_args getEmptyArgsInstance() {
-        return new updateExperiment_args();
+      public searchExperimentsByCreationTime_args getEmptyArgsInstance() {
+        return new searchExperimentsByCreationTime_args();
       }
 
-      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            updateExperiment_result result = new updateExperiment_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.ExperimentSummary>>() { 
+          public void onComplete(List<org.apache.airavata.model.workspace.experiment.ExperimentSummary> o) {
+            searchExperimentsByCreationTime_result result = new searchExperimentsByCreationTime_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -12937,17 +13583,12 @@ import org.slf4j.LoggerFactory;
           public void onError(Exception e) {
             byte msgType = org.apache

<TRUNCATED>