SDK  2.1.4
CloudBackend Software Development Kit - SDK API for C++
Role.h
1 /*
2  Copyright © CloudBackend AB 2020-2023.
3  */
4 
5 #ifndef INCLUDE_CBE_Role_H_
6 #define INCLUDE_CBE_Role_H_
7 
8 #include <string>
9 #include <vector>
10 #include <map>
11 
12 #include "cbe/Types.h"
13 #include "cbe/delegate/AddRoleMemberDelegate.h"
14 #include "cbe/delegate/ListMembersDelegate.h"
15 #include "cbe/delegate/RemoveRoleMemberDelegate.h"
16 #include "cbe/Database.h"
17 
18 #include "cbe/delegate/Error.h"
19 #include "cbe/util/ErrorInfo.h"
20 #include "cbe/util/Exception.h"
21 #include "util/Optional.h"
22 
23 namespace CBI {
24 class Role;
25 using RolePtr = std::shared_ptr<CBI::Role>;
26 } // namespace CBI
27 
28 namespace cbe
29 {
34 class Role {
35 public:
39  std::string name() const;
40 
44  cbe::RoleId id() const;
45 
50 
70 #ifndef CBE_NO_SYNC
88  std::vector<cbe::Member> listMembers();
89 
118  ListMembersError& error);
119 #endif // #ifndef CBE_NO_SYNC
120  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
121 
144 #ifndef CBE_NO_SYNC
163 
192  AddRoleMemberError& error);
193 #endif // #ifndef CBE_NO_SYNC
194  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
195 
216 #ifndef CBE_NO_SYNC
235 
264  RemoveRoleMemberError& error);
265 #endif // #ifndef CBE_NO_SYNC
266  // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
267 
277  ~Role();
278 
291  explicit operator bool() const;
292 private:
293  struct Impl;
294  std::shared_ptr<Impl> pImpl{};
295 
296  friend class Group;
297  Role(CBI::RolePtr cbiPeerPtr);
298  CBI::Role& getCbiPeer() const;
299 }; // class Role
300 
301 } // namespace cbe
302 
303 #endif // INCLUDE_CBE_Role_H_
A group of members.
Definition: Group.h:42
User role information.
Definition: Role.h:34
std::vector< cbe::Member > listMembers()
Synchronous [exception] Synchronous version of listMembers(ListMembersDelegatePtr) ,...
void listMembers(ListMembersDelegatePtr delegate)
Lists the members of this role,.
delegate::AddRoleMemberDelegatePtr AddRoleMemberDelegatePtr
Definition: Role.h:128
cbe::util::Optional< std::vector< cbe::Member > > listMembers(ListMembersError &error)
Synchronous [non-throwing] Synchronous version of listMembers(ListMembersDelegatePtr) ,...
cbe::RoleId id() const
void removeRoleMember(MemberId memberId, RemoveRoleMemberDelegatePtr delegate)
Removes a member to this role.
cbe::util::Optional< MemberId > removeRoleMember(MemberId memberId, RemoveRoleMemberError &error)
Synchronous [non-throwing] Synchronous version of RemoveRoleMember(memberId,RemoveRoleMemberDelegateP...
std::string name() const
delegate::RemoveRoleMemberDelegatePtr RemoveRoleMemberDelegatePtr
Definition: Role.h:200
MemberId removeRoleMember(MemberId memberId)
Synchronous [exception] Synchronous version of RemoveRoleMember(MemberId memberId,...
delegate::ListMembersDelegatePtr ListMembersDelegatePtr
Definition: Role.h:56
MemberId addRoleMember(MemberId memberId)
Synchronous [exception] Synchronous version of AddRoleMember(MemberId, AddRoleMemberDelegatePtr) ,...
cbe::GroupId groupId() const
cbe::util::Optional< MemberId > addRoleMember(MemberId memberId, AddRoleMemberError &error)
Synchronous [non-throwing] Synchronous version of AddRoleMember(memberId, AddRoleMemberDelegatePtr) ,...
void addRoleMember(MemberId memberId, AddRoleMemberDelegatePtr delegate)
Adds a member to this role.
Role(cbe::DefaultCtor)
Default constructor.
Class template Optional manages an optional contained value - i.e., a value that is either present or...
Definition: Optional.h:20
std::shared_ptr< ListMembersDelegate > ListMembersDelegatePtr
Definition: ListMembersDelegate.h:68
std::shared_ptr< AddRoleMemberDelegate > AddRoleMemberDelegatePtr
Definition: AddRoleMemberDelegate.h:62
std::shared_ptr< RemoveRoleMemberDelegate > RemoveRoleMemberDelegatePtr
Definition: RemoveRoleMemberDelegate.h:62
Root namespace for the CloudBackend SDK API.
Definition: Account.h:22
std::uint64_t RoleId
Uniquely identifies the Role.
Definition: Types.h:108
DefaultCtor
Default constructor marker.
Definition: Types.h:204
std::uint64_t GroupId
Uniquely identifies the Group.
Definition: Types.h:84
std::uint64_t MemberId
Represents the cbe::Group membership id.
Definition: Types.h:92
Definition: AddRoleMemberDelegate.h:38
exception thrown by cbe::Group::AddMember() if the request fails.
Definition: AddRoleMemberDelegate.h:48
Definition: ListMembersDelegate.h:44
exception thrown by cbe::Group::listMembers() if the request fails.
Definition: ListMembersDelegate.h:54
Definition: RemoveRoleMemberDelegate.h:38
exception thrown by cbe::Group::RemoveMember() if the request fails.
Definition: RemoveRoleMemberDelegate.h:48