http://git-wip-us.apache.org/repos/asf/airavata/blob/171ee0c2/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 331023c..764d8cd 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
@@ -2483,6 +2483,11 @@ class AiravataIf {
   virtual bool shareResourceWithUsers(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
resourceId, const  ::apache::airavata::model::group::ResourceType::type 
resourceType, const std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> & 
userPermissionList) = 0;
   virtual bool revokeSharingOfResourceFromUsers(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
resourceId, const  ::apache::airavata::model::group::ResourceType::type 
resourceType, const std::map<std::string,  
::apache::airavata::model::group::ResourcePermissionType::type> & 
userPermissionList) = 0;
   virtual void getAllAccessibleUsers(std::vector<std::string> & _return, const 
 ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& resourceId, const  
::apache::airavata::model::group::ResourceType::type resourceType, const  
::apache::airavata::model::group::ResourcePermissionType::type permissionType) 
= 0;
+  virtual bool createGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::group::GroupModel& groupModel) = 0;
+  virtual bool updateGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::group::GroupModel& groupModel) = 0;
+  virtual bool deleteGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
groupId, const std::string& ownerId, const std::string& gatewayId) = 0;
+  virtual void getGroup( ::apache::airavata::model::group::GroupModel& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& groupId) = 0;
+  virtual void getAllGroupsUserBelongs(std::vector< 
::apache::airavata::model::group::GroupModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
userName, const std::string& gatewayId) = 0;
 };
 
 class AiravataIfFactory {
@@ -2992,6 +2997,24 @@ class AiravataNull : virtual public AiravataIf {
   void getAllAccessibleUsers(std::vector<std::string> & /* _return */, const  
::apache::airavata::model::security::AuthzToken& /* authzToken */, const 
std::string& /* resourceId */, const  
::apache::airavata::model::group::ResourceType::type /* resourceType */, const  
::apache::airavata::model::group::ResourcePermissionType::type /* 
permissionType */) {
     return;
   }
+  bool createGroup(const  ::apache::airavata::model::security::AuthzToken& /* 
authzToken */, const  ::apache::airavata::model::group::GroupModel& /* 
groupModel */) {
+    bool _return = false;
+    return _return;
+  }
+  bool updateGroup(const  ::apache::airavata::model::security::AuthzToken& /* 
authzToken */, const  ::apache::airavata::model::group::GroupModel& /* 
groupModel */) {
+    bool _return = false;
+    return _return;
+  }
+  bool deleteGroup(const  ::apache::airavata::model::security::AuthzToken& /* 
authzToken */, const std::string& /* groupId */, const std::string& /* ownerId 
*/, const std::string& /* gatewayId */) {
+    bool _return = false;
+    return _return;
+  }
+  void getGroup( ::apache::airavata::model::group::GroupModel& /* _return */, 
const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const 
std::string& /* groupId */) {
+    return;
+  }
+  void getAllGroupsUserBelongs(std::vector< 
::apache::airavata::model::group::GroupModel> & /* _return */, const  
::apache::airavata::model::security::AuthzToken& /* authzToken */, const 
std::string& /* userName */, const std::string& /* gatewayId */) {
+    return;
+  }
 };
 
 
@@ -23188,145 +23211,843 @@ class Airavata_getAllAccessibleUsers_presult {
 
 };
 
-class AiravataClient : virtual public AiravataIf {
+
+class Airavata_createGroup_args {
  public:
-  AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
prot) {
-    setProtocol(prot);
+
+  Airavata_createGroup_args(const Airavata_createGroup_args&);
+  Airavata_createGroup_args& operator=(const Airavata_createGroup_args&);
+  Airavata_createGroup_args() {
   }
-  AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
iprot, boost::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
-    setProtocol(iprot,oprot);
+
+  virtual ~Airavata_createGroup_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+   ::apache::airavata::model::group::GroupModel groupModel;
+
+  void __set_authzToken(const  
::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_groupModel(const  ::apache::airavata::model::group::GroupModel& 
val);
+
+  bool operator == (const Airavata_createGroup_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(groupModel == rhs.groupModel))
+      return false;
+    return true;
   }
- private:
-  void setProtocol(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
prot) {
-  setProtocol(prot,prot);
+  bool operator != (const Airavata_createGroup_args &rhs) const {
+    return !(*this == rhs);
   }
-  void setProtocol(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
iprot, boost::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
-    piprot_=iprot;
-    poprot_=oprot;
-    iprot_ = iprot.get();
-    oprot_ = oprot.get();
+
+  bool operator < (const Airavata_createGroup_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_createGroup_pargs {
+ public:
+
+
+  virtual ~Airavata_createGroup_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const  ::apache::airavata::model::group::GroupModel* groupModel;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_createGroup_result__isset {
+  _Airavata_createGroup_result__isset() : success(false), ire(false), 
ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_createGroup_result__isset;
+
+class Airavata_createGroup_result {
+ public:
+
+  Airavata_createGroup_result(const Airavata_createGroup_result&);
+  Airavata_createGroup_result& operator=(const Airavata_createGroup_result&);
+  Airavata_createGroup_result() : success(0) {
+  }
+
+  virtual ~Airavata_createGroup_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_createGroup_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  
::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  
::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  
::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& 
val);
+
+  bool operator == (const Airavata_createGroup_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;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
   }
+  bool operator != (const Airavata_createGroup_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_createGroup_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_createGroup_presult__isset {
+  _Airavata_createGroup_presult__isset() : success(false), ire(false), 
ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_createGroup_presult__isset;
+
+class Airavata_createGroup_presult {
  public:
-  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> getInputProtocol() 
{
-    return piprot_;
+
+
+  virtual ~Airavata_createGroup_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_createGroup_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_updateGroup_args {
+ public:
+
+  Airavata_updateGroup_args(const Airavata_updateGroup_args&);
+  Airavata_updateGroup_args& operator=(const Airavata_updateGroup_args&);
+  Airavata_updateGroup_args() {
   }
-  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
getOutputProtocol() {
-    return poprot_;
+
+  virtual ~Airavata_updateGroup_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+   ::apache::airavata::model::group::GroupModel groupModel;
+
+  void __set_authzToken(const  
::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_groupModel(const  ::apache::airavata::model::group::GroupModel& 
val);
+
+  bool operator == (const Airavata_updateGroup_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(groupModel == rhs.groupModel))
+      return false;
+    return true;
   }
-  void getAPIVersion(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken);
-  void send_getAPIVersion(const  
::apache::airavata::model::security::AuthzToken& authzToken);
-  void recv_getAPIVersion(std::string& _return);
-  bool isUserExists(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId, const std::string& userName);
-  void send_isUserExists(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName);
-  bool recv_isUserExists();
-  void addGateway(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Gateway& gateway);
-  void send_addGateway(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway);
-  void recv_addGateway(std::string& _return);
-  void getAllUsersInGateway(std::vector<std::string> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
-  void send_getAllUsersInGateway(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
-  void recv_getAllUsersInGateway(std::vector<std::string> & _return);
-  void updateGateway(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId, const  
::apache::airavata::model::workspace::Gateway& updatedGateway);
-  void send_updateGateway(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::workspace::Gateway& 
updatedGateway);
-  void recv_updateGateway();
-  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& gatewayId);
-  void send_getGateway(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId);
-  void recv_getGateway( ::apache::airavata::model::workspace::Gateway& 
_return);
-  bool deleteGateway(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId);
-  void send_deleteGateway(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
-  bool recv_deleteGateway();
-  void getAllGateways(std::vector< 
::apache::airavata::model::workspace::Gateway> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken);
-  void send_getAllGateways(const  
::apache::airavata::model::security::AuthzToken& authzToken);
-  void recv_getAllGateways(std::vector< 
::apache::airavata::model::workspace::Gateway> & _return);
-  bool isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId);
-  void send_isGatewayExist(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
-  bool recv_isGatewayExist();
-  void createNotification(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification);
-  void send_createNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification);
-  void recv_createNotification(std::string& _return);
-  bool updateNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification);
-  void send_updateNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification);
-  bool recv_updateNotification();
-  bool deleteNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& notificationId);
-  void send_deleteNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& notificationId);
-  bool recv_deleteNotification();
-  void getNotification( ::apache::airavata::model::workspace::Notification& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId, const std::string& notificationId);
-  void send_getNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& notificationId);
-  void recv_getNotification( 
::apache::airavata::model::workspace::Notification& _return);
-  void getAllNotifications(std::vector< 
::apache::airavata::model::workspace::Notification> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
-  void send_getAllNotifications(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
-  void recv_getAllNotifications(std::vector< 
::apache::airavata::model::workspace::Notification> & _return);
-  void generateAndRegisterSSHKeys(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName);
-  void send_generateAndRegisterSSHKeys(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName);
-  void recv_generateAndRegisterSSHKeys(std::string& _return);
-  void registerPwdCredential(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& portalUserName, const std::string& loginUserName, 
const std::string& password, const std::string& description);
-  void send_registerPwdCredential(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& portalUserName, const std::string& loginUserName, 
const std::string& password, const std::string& description);
-  void recv_registerPwdCredential(std::string& _return);
-  void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
-  void send_getSSHPubKey(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
-  void recv_getSSHPubKey(std::string& _return);
-  void getAllGatewaySSHPubKeys(std::map<std::string, std::string> & _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& gatewayId);
-  void send_getAllGatewaySSHPubKeys(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
-  void recv_getAllGatewaySSHPubKeys(std::map<std::string, std::string> & 
_return);
-  void getAllGatewayPWDCredentials(std::map<std::string, std::string> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId);
-  void send_getAllGatewayPWDCredentials(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
-  void recv_getAllGatewayPWDCredentials(std::map<std::string, std::string> & 
_return);
-  bool deleteSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& airavataCredStoreToken, const std::string& 
gatewayId);
-  void send_deleteSSHPubKey(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
-  bool recv_deleteSSHPubKey();
-  bool deletePWDCredential(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
-  void send_deletePWDCredential(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
-  bool recv_deletePWDCredential();
-  void createProject(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::workspace::Project& project);
-  void send_createProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::workspace::Project& project);
-  void recv_createProject(std::string& _return);
-  void updateProject(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& projectId, const  
::apache::airavata::model::workspace::Project& updatedProject);
-  void send_updateProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId, const  ::apache::airavata::model::workspace::Project& 
updatedProject);
-  void recv_updateProject();
-  void getProject( ::apache::airavata::model::workspace::Project& _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& projectId);
-  void send_getProject(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& projectId);
-  void recv_getProject( ::apache::airavata::model::workspace::Project& 
_return);
-  bool deleteProject(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& projectId);
-  void send_deleteProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId);
-  bool recv_deleteProject();
-  void getUserProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset);
-  void send_getUserProjects(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset);
-  void recv_getUserProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return);
-  void searchProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ProjectSearchFields::type, std::string> 
& filters, const int32_t limit, const int32_t offset);
-  void send_searchProjects(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ProjectSearchFields::type, std::string> 
& filters, const int32_t limit, const int32_t offset);
-  void recv_searchProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return);
-  void searchExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentSummaryModel> & _return, const 
 ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ExperimentSearchFields::type, 
std::string> & filters, const int32_t limit, const int32_t offset);
-  void send_searchExperiments(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ExperimentSearchFields::type, 
std::string> & filters, const int32_t limit, const int32_t offset);
-  void recv_searchExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentSummaryModel> & _return);
-  void getExperimentStatistics( 
::apache::airavata::model::experiment::ExperimentStatistics& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const int64_t fromTime, const int64_t toTime);
-  void send_getExperimentStatistics(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const int64_t fromTime, const int64_t toTime);
-  void recv_getExperimentStatistics( 
::apache::airavata::model::experiment::ExperimentStatistics& _return);
-  void getExperimentsInProject(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId, const int32_t limit, const int32_t offset);
-  void send_getExperimentsInProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId, const int32_t limit, const int32_t offset);
-  void recv_getExperimentsInProject(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return);
-  void getUserExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset);
-  void send_getUserExperiments(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset);
-  void recv_getUserExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return);
-  void createExperiment(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::experiment::ExperimentModel& 
experiment);
-  void send_createExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::experiment::ExperimentModel& 
experiment);
-  void recv_createExperiment(std::string& _return);
-  bool deleteExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
experimentId);
-  void send_deleteExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
experimentId);
-  bool recv_deleteExperiment();
-  void getExperiment( ::apache::airavata::model::experiment::ExperimentModel& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& airavataExperimentId);
-  void send_getExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId);
-  void recv_getExperiment( 
::apache::airavata::model::experiment::ExperimentModel& _return);
-  void getDetailedExperimentTree( 
::apache::airavata::model::experiment::ExperimentModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId);
-  void send_getDetailedExperimentTree(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId);
-  void recv_getDetailedExperimentTree( 
::apache::airavata::model::experiment::ExperimentModel& _return);
-  void updateExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::ExperimentModel& experiment);
-  void send_updateExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::ExperimentModel& experiment);
-  void recv_updateExperiment();
-  void updateExperimentConfiguration(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::UserConfigurationDataModel& 
userConfiguration);
-  void send_updateExperimentConfiguration(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::UserConfigurationDataModel& 
userConfiguration);
-  void recv_updateExperimentConfiguration();
-  void updateResourceScheduleing(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel& 
resourceScheduling);
-  void send_updateResourceScheduleing(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel& 
resourceScheduling);
-  void recv_updateResourceScheduleing();
+  bool operator != (const Airavata_updateGroup_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateGroup_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_updateGroup_pargs {
+ public:
+
+
+  virtual ~Airavata_updateGroup_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const  ::apache::airavata::model::group::GroupModel* groupModel;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateGroup_result__isset {
+  _Airavata_updateGroup_result__isset() : success(false), ire(false), 
ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateGroup_result__isset;
+
+class Airavata_updateGroup_result {
+ public:
+
+  Airavata_updateGroup_result(const Airavata_updateGroup_result&);
+  Airavata_updateGroup_result& operator=(const Airavata_updateGroup_result&);
+  Airavata_updateGroup_result() : success(0) {
+  }
+
+  virtual ~Airavata_updateGroup_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateGroup_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  
::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  
::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  
::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& 
val);
+
+  bool operator == (const Airavata_updateGroup_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;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateGroup_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateGroup_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateGroup_presult__isset {
+  _Airavata_updateGroup_presult__isset() : success(false), ire(false), 
ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateGroup_presult__isset;
+
+class Airavata_updateGroup_presult {
+ public:
+
+
+  virtual ~Airavata_updateGroup_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateGroup_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_deleteGroup_args {
+ public:
+
+  Airavata_deleteGroup_args(const Airavata_deleteGroup_args&);
+  Airavata_deleteGroup_args& operator=(const Airavata_deleteGroup_args&);
+  Airavata_deleteGroup_args() : groupId(), ownerId(), gatewayId() {
+  }
+
+  virtual ~Airavata_deleteGroup_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string groupId;
+  std::string ownerId;
+  std::string gatewayId;
+
+  void __set_authzToken(const  
::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_groupId(const std::string& val);
+
+  void __set_ownerId(const std::string& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  bool operator == (const Airavata_deleteGroup_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(groupId == rhs.groupId))
+      return false;
+    if (!(ownerId == rhs.ownerId))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteGroup_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteGroup_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_deleteGroup_pargs {
+ public:
+
+
+  virtual ~Airavata_deleteGroup_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* groupId;
+  const std::string* ownerId;
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteGroup_result__isset {
+  _Airavata_deleteGroup_result__isset() : success(false), ire(false), 
ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteGroup_result__isset;
+
+class Airavata_deleteGroup_result {
+ public:
+
+  Airavata_deleteGroup_result(const Airavata_deleteGroup_result&);
+  Airavata_deleteGroup_result& operator=(const Airavata_deleteGroup_result&);
+  Airavata_deleteGroup_result() : success(0) {
+  }
+
+  virtual ~Airavata_deleteGroup_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteGroup_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  
::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  
::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  
::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& 
val);
+
+  bool operator == (const Airavata_deleteGroup_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;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteGroup_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteGroup_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteGroup_presult__isset {
+  _Airavata_deleteGroup_presult__isset() : success(false), ire(false), 
ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteGroup_presult__isset;
+
+class Airavata_deleteGroup_presult {
+ public:
+
+
+  virtual ~Airavata_deleteGroup_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteGroup_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getGroup_args {
+ public:
+
+  Airavata_getGroup_args(const Airavata_getGroup_args&);
+  Airavata_getGroup_args& operator=(const Airavata_getGroup_args&);
+  Airavata_getGroup_args() : groupId() {
+  }
+
+  virtual ~Airavata_getGroup_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string groupId;
+
+  void __set_authzToken(const  
::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_groupId(const std::string& val);
+
+  bool operator == (const Airavata_getGroup_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(groupId == rhs.groupId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getGroup_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getGroup_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getGroup_pargs {
+ public:
+
+
+  virtual ~Airavata_getGroup_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* groupId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getGroup_result__isset {
+  _Airavata_getGroup_result__isset() : success(false), ire(false), ace(false), 
ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getGroup_result__isset;
+
+class Airavata_getGroup_result {
+ public:
+
+  Airavata_getGroup_result(const Airavata_getGroup_result&);
+  Airavata_getGroup_result& operator=(const Airavata_getGroup_result&);
+  Airavata_getGroup_result() {
+  }
+
+  virtual ~Airavata_getGroup_result() throw();
+   ::apache::airavata::model::group::GroupModel success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getGroup_result__isset __isset;
+
+  void __set_success(const  ::apache::airavata::model::group::GroupModel& val);
+
+  void __set_ire(const  
::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  
::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  
::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& 
val);
+
+  bool operator == (const Airavata_getGroup_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;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getGroup_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getGroup_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getGroup_presult__isset {
+  _Airavata_getGroup_presult__isset() : success(false), ire(false), 
ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getGroup_presult__isset;
+
+class Airavata_getGroup_presult {
+ public:
+
+
+  virtual ~Airavata_getGroup_presult() throw();
+   ::apache::airavata::model::group::GroupModel* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getGroup_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getAllGroupsUserBelongs_args {
+ public:
+
+  Airavata_getAllGroupsUserBelongs_args(const 
Airavata_getAllGroupsUserBelongs_args&);
+  Airavata_getAllGroupsUserBelongs_args& operator=(const 
Airavata_getAllGroupsUserBelongs_args&);
+  Airavata_getAllGroupsUserBelongs_args() : userName(), gatewayId() {
+  }
+
+  virtual ~Airavata_getAllGroupsUserBelongs_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userName;
+  std::string gatewayId;
+
+  void __set_authzToken(const  
::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userName(const std::string& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  bool operator == (const Airavata_getAllGroupsUserBelongs_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userName == rhs.userName))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllGroupsUserBelongs_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllGroupsUserBelongs_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getAllGroupsUserBelongs_pargs {
+ public:
+
+
+  virtual ~Airavata_getAllGroupsUserBelongs_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userName;
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllGroupsUserBelongs_result__isset {
+  _Airavata_getAllGroupsUserBelongs_result__isset() : success(false), 
ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllGroupsUserBelongs_result__isset;
+
+class Airavata_getAllGroupsUserBelongs_result {
+ public:
+
+  Airavata_getAllGroupsUserBelongs_result(const 
Airavata_getAllGroupsUserBelongs_result&);
+  Airavata_getAllGroupsUserBelongs_result& operator=(const 
Airavata_getAllGroupsUserBelongs_result&);
+  Airavata_getAllGroupsUserBelongs_result() {
+  }
+
+  virtual ~Airavata_getAllGroupsUserBelongs_result() throw();
+  std::vector< ::apache::airavata::model::group::GroupModel>  success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllGroupsUserBelongs_result__isset __isset;
+
+  void __set_success(const std::vector< 
::apache::airavata::model::group::GroupModel> & val);
+
+  void __set_ire(const  
::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  
::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  
::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& 
val);
+
+  bool operator == (const Airavata_getAllGroupsUserBelongs_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;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllGroupsUserBelongs_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllGroupsUserBelongs_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllGroupsUserBelongs_presult__isset {
+  _Airavata_getAllGroupsUserBelongs_presult__isset() : success(false), 
ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllGroupsUserBelongs_presult__isset;
+
+class Airavata_getAllGroupsUserBelongs_presult {
+ public:
+
+
+  virtual ~Airavata_getAllGroupsUserBelongs_presult() throw();
+  std::vector< ::apache::airavata::model::group::GroupModel> * success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllGroupsUserBelongs_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+class AiravataClient : virtual public AiravataIf {
+ public:
+  AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
prot) {
+    setProtocol(prot);
+  }
+  AiravataClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
iprot, boost::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
+    setProtocol(iprot,oprot);
+  }
+ private:
+  void setProtocol(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
prot) {
+  setProtocol(prot,prot);
+  }
+  void setProtocol(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
iprot, boost::shared_ptr< ::apache::thrift::protocol::TProtocol> oprot) {
+    piprot_=iprot;
+    poprot_=oprot;
+    iprot_ = iprot.get();
+    oprot_ = oprot.get();
+  }
+ public:
+  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> getInputProtocol() 
{
+    return piprot_;
+  }
+  boost::shared_ptr< ::apache::thrift::protocol::TProtocol> 
getOutputProtocol() {
+    return poprot_;
+  }
+  void getAPIVersion(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken);
+  void send_getAPIVersion(const  
::apache::airavata::model::security::AuthzToken& authzToken);
+  void recv_getAPIVersion(std::string& _return);
+  bool isUserExists(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId, const std::string& userName);
+  void send_isUserExists(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName);
+  bool recv_isUserExists();
+  void addGateway(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Gateway& gateway);
+  void send_addGateway(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway);
+  void recv_addGateway(std::string& _return);
+  void getAllUsersInGateway(std::vector<std::string> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
+  void send_getAllUsersInGateway(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
+  void recv_getAllUsersInGateway(std::vector<std::string> & _return);
+  void updateGateway(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId, const  
::apache::airavata::model::workspace::Gateway& updatedGateway);
+  void send_updateGateway(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::workspace::Gateway& 
updatedGateway);
+  void recv_updateGateway();
+  void getGateway( ::apache::airavata::model::workspace::Gateway& _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& gatewayId);
+  void send_getGateway(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId);
+  void recv_getGateway( ::apache::airavata::model::workspace::Gateway& 
_return);
+  bool deleteGateway(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId);
+  void send_deleteGateway(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
+  bool recv_deleteGateway();
+  void getAllGateways(std::vector< 
::apache::airavata::model::workspace::Gateway> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken);
+  void send_getAllGateways(const  
::apache::airavata::model::security::AuthzToken& authzToken);
+  void recv_getAllGateways(std::vector< 
::apache::airavata::model::workspace::Gateway> & _return);
+  bool isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& gatewayId);
+  void send_isGatewayExist(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
+  bool recv_isGatewayExist();
+  void createNotification(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification);
+  void send_createNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification);
+  void recv_createNotification(std::string& _return);
+  bool updateNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification);
+  void send_updateNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::workspace::Notification& notification);
+  bool recv_updateNotification();
+  bool deleteNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& notificationId);
+  void send_deleteNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& notificationId);
+  bool recv_deleteNotification();
+  void getNotification( ::apache::airavata::model::workspace::Notification& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId, const std::string& notificationId);
+  void send_getNotification(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& notificationId);
+  void recv_getNotification( 
::apache::airavata::model::workspace::Notification& _return);
+  void getAllNotifications(std::vector< 
::apache::airavata::model::workspace::Notification> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
+  void send_getAllNotifications(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
+  void recv_getAllNotifications(std::vector< 
::apache::airavata::model::workspace::Notification> & _return);
+  void generateAndRegisterSSHKeys(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName);
+  void send_generateAndRegisterSSHKeys(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName);
+  void recv_generateAndRegisterSSHKeys(std::string& _return);
+  void registerPwdCredential(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& portalUserName, const std::string& loginUserName, 
const std::string& password, const std::string& description);
+  void send_registerPwdCredential(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& portalUserName, const std::string& loginUserName, 
const std::string& password, const std::string& description);
+  void recv_registerPwdCredential(std::string& _return);
+  void getSSHPubKey(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
+  void send_getSSHPubKey(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
+  void recv_getSSHPubKey(std::string& _return);
+  void getAllGatewaySSHPubKeys(std::map<std::string, std::string> & _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& gatewayId);
+  void send_getAllGatewaySSHPubKeys(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
+  void recv_getAllGatewaySSHPubKeys(std::map<std::string, std::string> & 
_return);
+  void getAllGatewayPWDCredentials(std::map<std::string, std::string> & 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& gatewayId);
+  void send_getAllGatewayPWDCredentials(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId);
+  void recv_getAllGatewayPWDCredentials(std::map<std::string, std::string> & 
_return);
+  bool deleteSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& airavataCredStoreToken, const std::string& 
gatewayId);
+  void send_deleteSSHPubKey(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
+  bool recv_deleteSSHPubKey();
+  bool deletePWDCredential(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
+  void send_deletePWDCredential(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataCredStoreToken, const std::string& gatewayId);
+  bool recv_deletePWDCredential();
+  void createProject(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::workspace::Project& project);
+  void send_createProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::workspace::Project& project);
+  void recv_createProject(std::string& _return);
+  void updateProject(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& projectId, const  
::apache::airavata::model::workspace::Project& updatedProject);
+  void send_updateProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId, const  ::apache::airavata::model::workspace::Project& 
updatedProject);
+  void recv_updateProject();
+  void getProject( ::apache::airavata::model::workspace::Project& _return, 
const  ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& projectId);
+  void send_getProject(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& projectId);
+  void recv_getProject( ::apache::airavata::model::workspace::Project& 
_return);
+  bool deleteProject(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& projectId);
+  void send_deleteProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId);
+  bool recv_deleteProject();
+  void getUserProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset);
+  void send_getUserProjects(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset);
+  void recv_getUserProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return);
+  void searchProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ProjectSearchFields::type, std::string> 
& filters, const int32_t limit, const int32_t offset);
+  void send_searchProjects(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ProjectSearchFields::type, std::string> 
& filters, const int32_t limit, const int32_t offset);
+  void recv_searchProjects(std::vector< 
::apache::airavata::model::workspace::Project> & _return);
+  void searchExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentSummaryModel> & _return, const 
 ::apache::airavata::model::security::AuthzToken& authzToken, const 
std::string& gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ExperimentSearchFields::type, 
std::string> & filters, const int32_t limit, const int32_t offset);
+  void send_searchExperiments(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const std::map< 
::apache::airavata::model::experiment::ExperimentSearchFields::type, 
std::string> & filters, const int32_t limit, const int32_t offset);
+  void recv_searchExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentSummaryModel> & _return);
+  void getExperimentStatistics( 
::apache::airavata::model::experiment::ExperimentStatistics& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const int64_t fromTime, const int64_t toTime);
+  void send_getExperimentStatistics(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const int64_t fromTime, const int64_t toTime);
+  void recv_getExperimentStatistics( 
::apache::airavata::model::experiment::ExperimentStatistics& _return);
+  void getExperimentsInProject(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId, const int32_t limit, const int32_t offset);
+  void send_getExperimentsInProject(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
projectId, const int32_t limit, const int32_t offset);
+  void recv_getExperimentsInProject(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return);
+  void getUserExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset);
+  void send_getUserExperiments(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const std::string& userName, const int32_t limit, const int32_t 
offset);
+  void recv_getUserExperiments(std::vector< 
::apache::airavata::model::experiment::ExperimentModel> & _return);
+  void createExperiment(std::string& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::experiment::ExperimentModel& 
experiment);
+  void send_createExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
gatewayId, const  ::apache::airavata::model::experiment::ExperimentModel& 
experiment);
+  void recv_createExperiment(std::string& _return);
+  bool deleteExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
experimentId);
+  void send_deleteExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
experimentId);
+  bool recv_deleteExperiment();
+  void getExperiment( ::apache::airavata::model::experiment::ExperimentModel& 
_return, const  ::apache::airavata::model::security::AuthzToken& authzToken, 
const std::string& airavataExperimentId);
+  void send_getExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId);
+  void recv_getExperiment( 
::apache::airavata::model::experiment::ExperimentModel& _return);
+  void getDetailedExperimentTree( 
::apache::airavata::model::experiment::ExperimentModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId);
+  void send_getDetailedExperimentTree(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId);
+  void recv_getDetailedExperimentTree( 
::apache::airavata::model::experiment::ExperimentModel& _return);
+  void updateExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::ExperimentModel& experiment);
+  void send_updateExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::ExperimentModel& experiment);
+  void recv_updateExperiment();
+  void updateExperimentConfiguration(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::UserConfigurationDataModel& 
userConfiguration);
+  void send_updateExperimentConfiguration(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::experiment::UserConfigurationDataModel& 
userConfiguration);
+  void recv_updateExperimentConfiguration();
+  void updateResourceScheduleing(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel& 
resourceScheduling);
+  void send_updateResourceScheduleing(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId, const  
::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel& 
resourceScheduling);
+  void recv_updateResourceScheduleing();
   bool validateExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId);
   void send_validateExperiment(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
airavataExperimentId);
   bool recv_validateExperiment();
@@ -23645,6 +24366,21 @@ class AiravataClient : virtual public AiravataIf {
   void getAllAccessibleUsers(std::vector<std::string> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
resourceId, const  ::apache::airavata::model::group::ResourceType::type 
resourceType, const  
::apache::airavata::model::group::ResourcePermissionType::type permissionType);
   void send_getAllAccessibleUsers(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
resourceId, const  ::apache::airavata::model::group::ResourceType::type 
resourceType, const  
::apache::airavata::model::group::ResourcePermissionType::type permissionType);
   void recv_getAllAccessibleUsers(std::vector<std::string> & _return);
+  bool createGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::group::GroupModel& groupModel);
+  void send_createGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::group::GroupModel& groupModel);
+  bool recv_createGroup();
+  bool updateGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::group::GroupModel& groupModel);
+  void send_updateGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::group::GroupModel& groupModel);
+  bool recv_updateGroup();
+  bool deleteGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& groupId, const std::string& ownerId, const 
std::string& gatewayId);
+  void send_deleteGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
groupId, const std::string& ownerId, const std::string& gatewayId);
+  bool recv_deleteGroup();
+  void getGroup( ::apache::airavata::model::group::GroupModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
groupId);
+  void send_getGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& groupId);
+  void recv_getGroup( ::apache::airavata::model::group::GroupModel& _return);
+  void getAllGroupsUserBelongs(std::vector< 
::apache::airavata::model::group::GroupModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
userName, const std::string& gatewayId);
+  void send_getAllGroupsUserBelongs(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
userName, const std::string& gatewayId);
+  void recv_getAllGroupsUserBelongs(std::vector< 
::apache::airavata::model::group::GroupModel> & _return);
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;
@@ -23804,6 +24540,11 @@ class AiravataProcessor : public 
::apache::thrift::TDispatchProcessor {
   void process_shareResourceWithUsers(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_revokeSharingOfResourceFromUsers(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getAllAccessibleUsers(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_createGroup(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_updateGroup(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_deleteGroup(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getGroup(int32_t seqid, ::apache::thrift::protocol::TProtocol* 
iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getAllGroupsUserBelongs(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  public:
   AiravataProcessor(boost::shared_ptr<AiravataIf> iface) :
     iface_(iface) {
@@ -23951,6 +24692,11 @@ class AiravataProcessor : public 
::apache::thrift::TDispatchProcessor {
     processMap_["shareResourceWithUsers"] = 
&AiravataProcessor::process_shareResourceWithUsers;
     processMap_["revokeSharingOfResourceFromUsers"] = 
&AiravataProcessor::process_revokeSharingOfResourceFromUsers;
     processMap_["getAllAccessibleUsers"] = 
&AiravataProcessor::process_getAllAccessibleUsers;
+    processMap_["createGroup"] = &AiravataProcessor::process_createGroup;
+    processMap_["updateGroup"] = &AiravataProcessor::process_updateGroup;
+    processMap_["deleteGroup"] = &AiravataProcessor::process_deleteGroup;
+    processMap_["getGroup"] = &AiravataProcessor::process_getGroup;
+    processMap_["getAllGroupsUserBelongs"] = 
&AiravataProcessor::process_getAllGroupsUserBelongs;
   }
 
   virtual ~AiravataProcessor() {}
@@ -25362,6 +26108,53 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
+  bool createGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::group::GroupModel& groupModel) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->createGroup(authzToken, groupModel);
+    }
+    return ifaces_[i]->createGroup(authzToken, groupModel);
+  }
+
+  bool updateGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::group::GroupModel& groupModel) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->updateGroup(authzToken, groupModel);
+    }
+    return ifaces_[i]->updateGroup(authzToken, groupModel);
+  }
+
+  bool deleteGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& groupId, const std::string& ownerId, const 
std::string& gatewayId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->deleteGroup(authzToken, groupId, ownerId, gatewayId);
+    }
+    return ifaces_[i]->deleteGroup(authzToken, groupId, ownerId, gatewayId);
+  }
+
+  void getGroup( ::apache::airavata::model::group::GroupModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
groupId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getGroup(_return, authzToken, groupId);
+    }
+    ifaces_[i]->getGroup(_return, authzToken, groupId);
+    return;
+  }
+
+  void getAllGroupsUserBelongs(std::vector< 
::apache::airavata::model::group::GroupModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
userName, const std::string& gatewayId) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getAllGroupsUserBelongs(_return, authzToken, userName, 
gatewayId);
+    }
+    ifaces_[i]->getAllGroupsUserBelongs(_return, authzToken, userName, 
gatewayId);
+    return;
+  }
+
 };
 
 // The 'concurrent' client is a thread safe client that correctly handles
@@ -25824,6 +26617,21 @@ class AiravataConcurrentClient : virtual public 
AiravataIf {
   void getAllAccessibleUsers(std::vector<std::string> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
resourceId, const  ::apache::airavata::model::group::ResourceType::type 
resourceType, const  
::apache::airavata::model::group::ResourcePermissionType::type permissionType);
   int32_t send_getAllAccessibleUsers(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
resourceId, const  ::apache::airavata::model::group::ResourceType::type 
resourceType, const  
::apache::airavata::model::group::ResourcePermissionType::type permissionType);
   void recv_getAllAccessibleUsers(std::vector<std::string> & _return, const 
int32_t seqid);
+  bool createGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::group::GroupModel& groupModel);
+  int32_t send_createGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::group::GroupModel& groupModel);
+  bool recv_createGroup(const int32_t seqid);
+  bool updateGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::group::GroupModel& groupModel);
+  int32_t send_updateGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const  
::apache::airavata::model::group::GroupModel& groupModel);
+  bool recv_updateGroup(const int32_t seqid);
+  bool deleteGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& groupId, const std::string& ownerId, const 
std::string& gatewayId);
+  int32_t send_deleteGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
groupId, const std::string& ownerId, const std::string& gatewayId);
+  bool recv_deleteGroup(const int32_t seqid);
+  void getGroup( ::apache::airavata::model::group::GroupModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
groupId);
+  int32_t send_getGroup(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
groupId);
+  void recv_getGroup( ::apache::airavata::model::group::GroupModel& _return, 
const int32_t seqid);
+  void getAllGroupsUserBelongs(std::vector< 
::apache::airavata::model::group::GroupModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
userName, const std::string& gatewayId);
+  int32_t send_getAllGroupsUserBelongs(const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
userName, const std::string& gatewayId);
+  void recv_getAllGroupsUserBelongs(std::vector< 
::apache::airavata::model::group::GroupModel> & _return, const int32_t seqid);
  protected:
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> piprot_;
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> poprot_;

http://git-wip-us.apache.org/repos/asf/airavata/blob/171ee0c2/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 27ae3ec..c8b5bcb 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
@@ -2939,6 +2939,31 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getAllAccessibleUsers\n");
   }
 
+  bool createGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::group::GroupModel& groupModel) {
+    // Your implementation goes here
+    printf("createGroup\n");
+  }
+
+  bool updateGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const  ::apache::airavata::model::group::GroupModel& groupModel) {
+    // Your implementation goes here
+    printf("updateGroup\n");
+  }
+
+  bool deleteGroup(const  ::apache::airavata::model::security::AuthzToken& 
authzToken, const std::string& groupId, const std::string& ownerId, const 
std::string& gatewayId) {
+    // Your implementation goes here
+    printf("deleteGroup\n");
+  }
+
+  void getGroup( ::apache::airavata::model::group::GroupModel& _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
groupId) {
+    // Your implementation goes here
+    printf("getGroup\n");
+  }
+
+  void getAllGroupsUserBelongs(std::vector< 
::apache::airavata::model::group::GroupModel> & _return, const  
::apache::airavata::model::security::AuthzToken& authzToken, const std::string& 
userName, const std::string& gatewayId) {
+    // Your implementation goes here
+    printf("getAllGroupsUserBelongs\n");
+  }
+
 };
 
 int main(int argc, char **argv) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/171ee0c2/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.cpp
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.cpp
 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.cpp
index 21c454b..8f2d18d 100644
--- 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.cpp
+++ 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.cpp
@@ -54,4 +54,200 @@ const char* _kResourcePermissionTypeNames[] = {
 };
 const std::map<int, const char*> 
_ResourcePermissionType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(2, 
_kResourcePermissionTypeValues, _kResourcePermissionTypeNames), 
::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
+
+GroupModel::~GroupModel() throw() {
+}
+
+
+void GroupModel::__set_id(const std::string& val) {
+  this->id = val;
+__isset.id = true;
+}
+
+void GroupModel::__set_name(const std::string& val) {
+  this->name = val;
+__isset.name = true;
+}
+
+void GroupModel::__set_ownerId(const std::string& val) {
+  this->ownerId = val;
+__isset.ownerId = true;
+}
+
+void GroupModel::__set_description(const std::string& val) {
+  this->description = val;
+__isset.description = true;
+}
+
+void GroupModel::__set_members(const std::vector<std::string> & val) {
+  this->members = val;
+__isset.members = true;
+}
+
+uint32_t GroupModel::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*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_STRING) {
+          xfer += iprot->readString(this->id);
+          this->__isset.id = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->name);
+          this->__isset.name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->ownerId);
+          this->__isset.ownerId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->description);
+          this->__isset.description = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->members.clear();
+            uint32_t _size0;
+            ::apache::thrift::protocol::TType _etype3;
+            xfer += iprot->readListBegin(_etype3, _size0);
+            this->members.resize(_size0);
+            uint32_t _i4;
+            for (_i4 = 0; _i4 < _size0; ++_i4)
+            {
+              xfer += iprot->readString(this->members[_i4]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.members = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t GroupModel::write(::apache::thrift::protocol::TProtocol* oprot) const 
{
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("GroupModel");
+
+  if (this->__isset.id) {
+    xfer += oprot->writeFieldBegin("id", ::apache::thrift::protocol::T_STRING, 
1);
+    xfer += oprot->writeString(this->id);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.name) {
+    xfer += oprot->writeFieldBegin("name", 
::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->name);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.ownerId) {
+    xfer += oprot->writeFieldBegin("ownerId", 
::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->ownerId);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.description) {
+    xfer += oprot->writeFieldBegin("description", 
::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->description);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.members) {
+    xfer += oprot->writeFieldBegin("members", 
::apache::thrift::protocol::T_LIST, 5);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, 
static_cast<uint32_t>(this->members.size()));
+      std::vector<std::string> ::const_iterator _iter5;
+      for (_iter5 = this->members.begin(); _iter5 != this->members.end(); 
++_iter5)
+      {
+        xfer += oprot->writeString((*_iter5));
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(GroupModel &a, GroupModel &b) {
+  using ::std::swap;
+  swap(a.id, b.id);
+  swap(a.name, b.name);
+  swap(a.ownerId, b.ownerId);
+  swap(a.description, b.description);
+  swap(a.members, b.members);
+  swap(a.__isset, b.__isset);
+}
+
+GroupModel::GroupModel(const GroupModel& other6) {
+  id = other6.id;
+  name = other6.name;
+  ownerId = other6.ownerId;
+  description = other6.description;
+  members = other6.members;
+  __isset = other6.__isset;
+}
+GroupModel& GroupModel::operator=(const GroupModel& other7) {
+  id = other7.id;
+  name = other7.name;
+  ownerId = other7.ownerId;
+  description = other7.description;
+  members = other7.members;
+  __isset = other7.__isset;
+  return *this;
+}
+void GroupModel::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "GroupModel(";
+  out << "id="; (__isset.id ? (out << to_string(id)) : (out << "<null>"));
+  out << ", " << "name="; (__isset.name ? (out << to_string(name)) : (out << 
"<null>"));
+  out << ", " << "ownerId="; (__isset.ownerId ? (out << to_string(ownerId)) : 
(out << "<null>"));
+  out << ", " << "description="; (__isset.description ? (out << 
to_string(description)) : (out << "<null>"));
+  out << ", " << "members="; (__isset.members ? (out << to_string(members)) : 
(out << "<null>"));
+  out << ")";
+}
+
 }}}} // namespace

http://git-wip-us.apache.org/repos/asf/airavata/blob/171ee0c2/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.h
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.h
 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.h
index 4cf43d4..e2e61b3 100644
--- 
a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.h
+++ 
b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/group_manager_model_types.h
@@ -57,6 +57,88 @@ struct ResourcePermissionType {
 
 extern const std::map<int, const char*> 
_ResourcePermissionType_VALUES_TO_NAMES;
 
+class GroupModel;
+
+typedef struct _GroupModel__isset {
+  _GroupModel__isset() : id(false), name(false), ownerId(false), 
description(false), members(false) {}
+  bool id :1;
+  bool name :1;
+  bool ownerId :1;
+  bool description :1;
+  bool members :1;
+} _GroupModel__isset;
+
+class GroupModel {
+ public:
+
+  GroupModel(const GroupModel&);
+  GroupModel& operator=(const GroupModel&);
+  GroupModel() : id(), name(), ownerId(), description() {
+  }
+
+  virtual ~GroupModel() throw();
+  std::string id;
+  std::string name;
+  std::string ownerId;
+  std::string description;
+  std::vector<std::string>  members;
+
+  _GroupModel__isset __isset;
+
+  void __set_id(const std::string& val);
+
+  void __set_name(const std::string& val);
+
+  void __set_ownerId(const std::string& val);
+
+  void __set_description(const std::string& val);
+
+  void __set_members(const std::vector<std::string> & val);
+
+  bool operator == (const GroupModel & rhs) const
+  {
+    if (__isset.id != rhs.__isset.id)
+      return false;
+    else if (__isset.id && !(id == rhs.id))
+      return false;
+    if (__isset.name != rhs.__isset.name)
+      return false;
+    else if (__isset.name && !(name == rhs.name))
+      return false;
+    if (__isset.ownerId != rhs.__isset.ownerId)
+      return false;
+    else if (__isset.ownerId && !(ownerId == rhs.ownerId))
+      return false;
+    if (__isset.description != rhs.__isset.description)
+      return false;
+    else if (__isset.description && !(description == rhs.description))
+      return false;
+    if (__isset.members != rhs.__isset.members)
+      return false;
+    else if (__isset.members && !(members == rhs.members))
+      return false;
+    return true;
+  }
+  bool operator != (const GroupModel &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const GroupModel & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  virtual void printTo(std::ostream& out) const;
+};
+
+void swap(GroupModel &a, GroupModel &b);
+
+inline std::ostream& operator<<(std::ostream& out, const GroupModel& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 }}}} // namespace
 
 #endif

Reply via email to