/* * Copyright 2013-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.cloudfoundry.uaa.groups; import reactor.core.publisher.Mono; /** * Main entry point to the UAA Group Management Client API */ public interface Groups { /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#add-member">Add Member</a> request * * @param request the Add Member request * @return the response from the Add Member request */ Mono<AddMemberResponse> addMember(AddMemberRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#check-membership">Check Membership</a> request * * @param request the Check Membership request * @return the response from the Check Membership request */ Mono<CheckMembershipResponse> checkMembership(CheckMembershipRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#create77">Create Group</a> request * * @param request the Create Group request * @return the response from the Create Group request */ Mono<CreateGroupResponse> create(CreateGroupRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#delete81">Delete a Group</a> request * * @param request the Delete Group request * @return the response from the Delete Group request */ Mono<DeleteGroupResponse> delete(DeleteGroupRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#retrieve78">Retrieve a Group</a> request * * @param request the Get Group request * @return the response from the Get Group request */ Mono<GetGroupResponse> get(GetGroupRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#list82">List Groups</a> request * * @param request the List Groups request * @return the response from the List Groups request */ Mono<ListGroupsResponse> list(ListGroupsRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#list92">List External Group Mappings</a> request * * @param request the List External Group Mappings request * @return the response from the List External Group Mappings request */ Mono<ListExternalGroupMappingsResponse> listExternalGroupMappings(ListExternalGroupMappingsRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#list-members">List Members</a> request * * @param request the List Members request * @return the response from the List Members request */ Mono<ListMembersResponse> listMembers(ListMembersRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#map">Map External Group</a> request * * @param request the Map External Group request * @return the response from the Map External Group request */ Mono<MapExternalGroupResponse> mapExternalGroup(MapExternalGroupRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#remove-member">Remove Member</a> request * * @param request the Remove Member request * @return the response from the Remove Member request */ Mono<RemoveMemberResponse> removeMember(RemoveMemberRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#by-group-display-name">Unmap External Group By Group Display Name</a> request * * @param request the Unmap External Group By Group Display Name request * @return the response from the Unmap External Group By Group Display Name request */ Mono<UnmapExternalGroupByGroupDisplayNameResponse> unmapExternalGroupByGroupDisplayName(UnmapExternalGroupByGroupDisplayNameRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#by-group-id">Unmap External Group By Group Id</a> request * * @param request the Unmap External Group By Group Id request * @return the response from the Unmap External Group By Group Id request */ Mono<UnmapExternalGroupByGroupIdResponse> unmapExternalGroupByGroupId(UnmapExternalGroupByGroupIdRequest request); /** * Makes the <a href="https://docs.cloudfoundry.org/api/uaa/#update79">Update Group</a> request * * @param request the Update Group request * @return the response from the Update Group request */ Mono<UpdateGroupResponse> update(UpdateGroupRequest request); }