/* * 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.reactor.client.v2.users; import org.cloudfoundry.client.v2.users.AssociateUserAuditedOrganizationRequest; import org.cloudfoundry.client.v2.users.AssociateUserAuditedOrganizationResponse; import org.cloudfoundry.client.v2.users.AssociateUserAuditedSpaceRequest; import org.cloudfoundry.client.v2.users.AssociateUserAuditedSpaceResponse; import org.cloudfoundry.client.v2.users.AssociateUserBillingManagedOrganizationRequest; import org.cloudfoundry.client.v2.users.AssociateUserBillingManagedOrganizationResponse; import org.cloudfoundry.client.v2.users.AssociateUserManagedOrganizationRequest; import org.cloudfoundry.client.v2.users.AssociateUserManagedOrganizationResponse; import org.cloudfoundry.client.v2.users.AssociateUserManagedSpaceRequest; import org.cloudfoundry.client.v2.users.AssociateUserManagedSpaceResponse; import org.cloudfoundry.client.v2.users.AssociateUserOrganizationRequest; import org.cloudfoundry.client.v2.users.AssociateUserOrganizationResponse; import org.cloudfoundry.client.v2.users.AssociateUserSpaceRequest; import org.cloudfoundry.client.v2.users.AssociateUserSpaceResponse; import org.cloudfoundry.client.v2.users.CreateUserRequest; import org.cloudfoundry.client.v2.users.CreateUserResponse; import org.cloudfoundry.client.v2.users.DeleteUserRequest; import org.cloudfoundry.client.v2.users.DeleteUserResponse; import org.cloudfoundry.client.v2.users.GetUserRequest; import org.cloudfoundry.client.v2.users.GetUserResponse; import org.cloudfoundry.client.v2.users.ListUserAuditedOrganizationsRequest; import org.cloudfoundry.client.v2.users.ListUserAuditedOrganizationsResponse; import org.cloudfoundry.client.v2.users.ListUserAuditedSpacesRequest; import org.cloudfoundry.client.v2.users.ListUserAuditedSpacesResponse; import org.cloudfoundry.client.v2.users.ListUserBillingManagedOrganizationsRequest; import org.cloudfoundry.client.v2.users.ListUserBillingManagedOrganizationsResponse; import org.cloudfoundry.client.v2.users.ListUserManagedOrganizationsRequest; import org.cloudfoundry.client.v2.users.ListUserManagedOrganizationsResponse; import org.cloudfoundry.client.v2.users.ListUserManagedSpacesRequest; import org.cloudfoundry.client.v2.users.ListUserManagedSpacesResponse; import org.cloudfoundry.client.v2.users.ListUserOrganizationsRequest; import org.cloudfoundry.client.v2.users.ListUserOrganizationsResponse; import org.cloudfoundry.client.v2.users.ListUserSpacesRequest; import org.cloudfoundry.client.v2.users.ListUserSpacesResponse; import org.cloudfoundry.client.v2.users.ListUsersRequest; import org.cloudfoundry.client.v2.users.ListUsersResponse; import org.cloudfoundry.client.v2.users.RemoveUserAuditedOrganizationRequest; import org.cloudfoundry.client.v2.users.RemoveUserAuditedSpaceRequest; import org.cloudfoundry.client.v2.users.RemoveUserBillingManagedOrganizationRequest; import org.cloudfoundry.client.v2.users.RemoveUserManagedOrganizationRequest; import org.cloudfoundry.client.v2.users.RemoveUserManagedSpaceRequest; import org.cloudfoundry.client.v2.users.RemoveUserOrganizationRequest; import org.cloudfoundry.client.v2.users.RemoveUserSpaceRequest; import org.cloudfoundry.client.v2.users.SummaryUserRequest; import org.cloudfoundry.client.v2.users.SummaryUserResponse; import org.cloudfoundry.client.v2.users.UpdateUserRequest; import org.cloudfoundry.client.v2.users.UpdateUserResponse; import org.cloudfoundry.client.v2.users.Users; import org.cloudfoundry.reactor.ConnectionContext; import org.cloudfoundry.reactor.TokenProvider; import org.cloudfoundry.reactor.client.v2.AbstractClientV2Operations; import reactor.core.publisher.Mono; /** * The Reactor-based implementation of {@link Users} */ public final class ReactorUsers extends AbstractClientV2Operations implements Users { /** * Creates an instance * * @param connectionContext the {@link ConnectionContext} to use when communicating with the server * @param root the root URI of the server. Typically something like {@code https://api.run.pivotal.io}. * @param tokenProvider the {@link TokenProvider} to use when communicating with the server */ public ReactorUsers(ConnectionContext connectionContext, Mono<String> root, TokenProvider tokenProvider) { super(connectionContext, root, tokenProvider); } @Override public Mono<AssociateUserAuditedOrganizationResponse> associateAuditedOrganization(AssociateUserAuditedOrganizationRequest request) { return put(request, AssociateUserAuditedOrganizationResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "audited_organizations", request.getAuditedOrganizationId())) .checkpoint(); } @Override public Mono<AssociateUserAuditedSpaceResponse> associateAuditedSpace(AssociateUserAuditedSpaceRequest request) { return put(request, AssociateUserAuditedSpaceResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "audited_spaces", request.getAuditedSpaceId())) .checkpoint(); } @Override public Mono<AssociateUserBillingManagedOrganizationResponse> associateBillingManagedOrganization(AssociateUserBillingManagedOrganizationRequest request) { return put(request, AssociateUserBillingManagedOrganizationResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "billing_managed_organizations", request.getBillingManagedOrganizationId())) .checkpoint(); } @Override public Mono<AssociateUserManagedOrganizationResponse> associateManagedOrganization(AssociateUserManagedOrganizationRequest request) { return put(request, AssociateUserManagedOrganizationResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "managed_organizations", request.getManagedOrganizationId())) .checkpoint(); } @Override public Mono<AssociateUserManagedSpaceResponse> associateManagedSpace(AssociateUserManagedSpaceRequest request) { return put(request, AssociateUserManagedSpaceResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "managed_spaces", request.getManagedSpaceId())) .checkpoint(); } @Override public Mono<AssociateUserOrganizationResponse> associateOrganization(AssociateUserOrganizationRequest request) { return put(request, AssociateUserOrganizationResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "organizations", request.getOrganizationId())) .checkpoint(); } @Override public Mono<AssociateUserSpaceResponse> associateSpace(AssociateUserSpaceRequest request) { return put(request, AssociateUserSpaceResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "spaces", request.getSpaceId())) .checkpoint(); } @Override public Mono<CreateUserResponse> create(CreateUserRequest request) { return post(request, CreateUserResponse.class, builder -> builder.pathSegment("v2", "users")) .checkpoint(); } @Override public Mono<DeleteUserResponse> delete(DeleteUserRequest request) { return delete(request, DeleteUserResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId())) .checkpoint(); } @Override public Mono<GetUserResponse> get(GetUserRequest request) { return get(request, GetUserResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId())) .checkpoint(); } @Override public Mono<ListUsersResponse> list(ListUsersRequest request) { return get(request, ListUsersResponse.class, builder -> builder.pathSegment("v2", "users")) .checkpoint(); } @Override public Mono<ListUserAuditedOrganizationsResponse> listAuditedOrganizations(ListUserAuditedOrganizationsRequest request) { return get(request, ListUserAuditedOrganizationsResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "audited_organizations")) .checkpoint(); } @Override public Mono<ListUserAuditedSpacesResponse> listAuditedSpaces(ListUserAuditedSpacesRequest request) { return get(request, ListUserAuditedSpacesResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "audited_spaces")) .checkpoint(); } @Override public Mono<ListUserBillingManagedOrganizationsResponse> listBillingManagedOrganizations(ListUserBillingManagedOrganizationsRequest request) { return get(request, ListUserBillingManagedOrganizationsResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "billing_managed_organizations")) .checkpoint(); } @Override public Mono<ListUserManagedOrganizationsResponse> listManagedOrganizations(ListUserManagedOrganizationsRequest request) { return get(request, ListUserManagedOrganizationsResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "managed_organizations")) .checkpoint(); } @Override public Mono<ListUserManagedSpacesResponse> listManagedSpaces(ListUserManagedSpacesRequest request) { return get(request, ListUserManagedSpacesResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "managed_spaces")) .checkpoint(); } @Override public Mono<ListUserOrganizationsResponse> listOrganizations(ListUserOrganizationsRequest request) { return get(request, ListUserOrganizationsResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "organizations")) .checkpoint(); } @Override public Mono<ListUserSpacesResponse> listSpaces(ListUserSpacesRequest request) { return get(request, ListUserSpacesResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "spaces")) .checkpoint(); } @Override public Mono<Void> removeAuditedOrganization(RemoveUserAuditedOrganizationRequest request) { return delete(request, Void.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "audited_organizations", request.getAuditedOrganizationId())) .checkpoint(); } @Override public Mono<Void> removeAuditedSpace(RemoveUserAuditedSpaceRequest request) { return delete(request, Void.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "audited_spaces", request.getAuditedSpaceId())) .checkpoint(); } @Override public Mono<Void> removeBillingManagedOrganization(RemoveUserBillingManagedOrganizationRequest request) { return delete(request, Void.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "billing_managed_organizations", request.getBillingManagedOrganizationId())) .checkpoint(); } @Override public Mono<Void> removeManagedOrganization(RemoveUserManagedOrganizationRequest request) { return delete(request, Void.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "managed_organizations", request.getManagedOrganizationId())) .checkpoint(); } @Override public Mono<Void> removeManagedSpace(RemoveUserManagedSpaceRequest request) { return delete(request, Void.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "managed_spaces", request.getManagedSpaceId())) .checkpoint(); } @Override public Mono<Void> removeOrganization(RemoveUserOrganizationRequest request) { return delete(request, Void.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "organizations", request.getOrganizationId())) .checkpoint(); } @Override public Mono<Void> removeSpace(RemoveUserSpaceRequest request) { return delete(request, Void.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "spaces", request.getSpaceId())) .checkpoint(); } @Override public Mono<SummaryUserResponse> summary(SummaryUserRequest request) { return get(request, SummaryUserResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId(), "summary")) .checkpoint(); } @Override public Mono<UpdateUserResponse> update(UpdateUserRequest request) { return put(request, UpdateUserResponse.class, builder -> builder.pathSegment("v2", "users", request.getUserId())) .checkpoint(); } }