5 #ifndef INCLUDE_CBE_Role_H_
6 #define INCLUDE_CBE_Role_H_
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"
18 #include "cbe/delegate/Error.h"
19 #include "cbe/util/ErrorInfo.h"
20 #include "cbe/util/Exception.h"
21 #include "util/Optional.h"
25 using RolePtr = std::shared_ptr<CBI::Role>;
291 explicit operator bool()
const;
294 std::shared_ptr<Impl> pImpl{};
297 Role(CBI::RolePtr cbiPeerPtr);
298 CBI::Role& getCbiPeer()
const;
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) ,...
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...
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