/*
* 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.client.v2.spaces;
import reactor.core.publisher.Mono;
/**
* Main entry point to the Cloud Foundry Spaces Client API
*/
public interface Spaces {
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/associate_auditor_with_the_space.html">Associate Auditor with the Space</a> request
*
* @param request the Associate Auditor request
* @return the response from the Associate Auditor request
*/
Mono<AssociateSpaceAuditorResponse> associateAuditor(AssociateSpaceAuditorRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/associate_auditor_with_the_space_by_username.html">Associate Auditor with the Space by Username</a> request
*
* @param request the Associate Auditor with the Space by Username request
* @return the response from the Associate Auditor with the Space by Username request
*/
Mono<AssociateSpaceAuditorByUsernameResponse> associateAuditorByUsername(AssociateSpaceAuditorByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/associate_developer_with_the_space.html">Associate Developer with the Space</a> request
*
* @param request the Associate Developer request
* @return the response from the Associate Developer request
*/
Mono<AssociateSpaceDeveloperResponse> associateDeveloper(AssociateSpaceDeveloperRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/associate_developer_with_the_space_by_username.html">Associate Developer with the Space by Username</a> request
*
* @param request the Associate Developer with the Space by Username request
* @return the response from the Associate Developer with the Space by Username request
*/
Mono<AssociateSpaceDeveloperByUsernameResponse> associateDeveloperByUsername(AssociateSpaceDeveloperByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/associate_manager_with_the_space.html">Associate Manager with the Space</a> request
*
* @param request the Associate Manager request
* @return the response from the Associate Manager request
*/
Mono<AssociateSpaceManagerResponse> associateManager(AssociateSpaceManagerRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/associate_manager_with_the_space_by_username.html">Associate Manager with the Space by Username</a> request
*
* @param request the Associate Manager with the Space by Username request
* @return the response from the Associate Manager with the Space by Username request
*/
Mono<AssociateSpaceManagerByUsernameResponse> associateManagerByUsername(AssociateSpaceManagerByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/associate_security_group_with_the_space.html">Associate Security Group with the Space</a> request
*
* @param request the Associate Security Group request
* @return the response from the Associate Security Group request
*/
Mono<AssociateSpaceSecurityGroupResponse> associateSecurityGroup(AssociateSpaceSecurityGroupRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/creating_a_space.html">Create Space</a> request
*
* @param request the Create Space request
* @return the response from the Create Space request
*/
Mono<CreateSpaceResponse> create(CreateSpaceRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/delete_a_particular_space.html">Delete a Particular Space</a> request
*
* @param request the Delete a Space request
* @return the response from the Delete a Space request
*/
Mono<DeleteSpaceResponse> delete(DeleteSpaceRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/retrieve_a_particular_space.html">Get Space</a> request
*
* @param request the Get Space request
* @return the response from the Get Space request
*/
Mono<GetSpaceResponse> get(GetSpaceRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/get_space_summary.html">Get Space Summary</a> request
*
* @param request the Get Space Summary request
* @return the response from the Get Space Summary request
*/
Mono<GetSpaceSummaryResponse> getSummary(GetSpaceSummaryRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_spaces.html">List Spaces</a> request
*
* @param request the List Spaces request
* @return the response from the List Spaces request
*/
Mono<ListSpacesResponse> list(ListSpacesRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_apps_for_the_space.html">List all Apps for the Space</a> request
*
* @param request the List all Apps for the Space request
* @return the response from the List all Apps for the Space request
*/
Mono<ListSpaceApplicationsResponse> listApplications(ListSpaceApplicationsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_auditors_for_the_space.html">List all Auditors for the Space</a> request
*
* @param request the List all Auditors for the Space request
* @return the response from the List all Auditors for the Space request
*/
Mono<ListSpaceAuditorsResponse> listAuditors(ListSpaceAuditorsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_developers_for_the_space.html">List all Developers for the Space</a> request
*
* @param request the List all Developers for the Space request
* @return the response from the List all Developers for the Space request
*/
Mono<ListSpaceDevelopersResponse> listDevelopers(ListSpaceDevelopersRequest request);
/**
* Makes the deprecated <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_domains_for_the_space_%28deprecated%29.html">List all Domains for the Space</a> request
*
* @param request the List all Domains for the Space request
* @return the response from the List all Domains for the Space request
*/
@Deprecated
Mono<ListSpaceDomainsResponse> listDomains(ListSpaceDomainsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_events_for_the_space.html">List all Events for the Space</a> request
*
* @param request the List all Events for the Space request
* @return the response from the List all Events for the Space request
*/
Mono<ListSpaceEventsResponse> listEvents(ListSpaceEventsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_managers_for_the_space.html">List all Managers for the Space</a> request
*
* @param request the List all Managers for the Space request
* @return the response from the List all Managers for the Space request
*/
Mono<ListSpaceManagersResponse> listManagers(ListSpaceManagersRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_routes_for_the_space.html">List all Routes for the Space</a> request
*
* @param request the List all Routes for the Space request
* @return the response from the List all Routes for the Space request
*/
Mono<ListSpaceRoutesResponse> listRoutes(ListSpaceRoutesRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_security_groups_for_the_space.html">List all Security Groups for the Space</a> request
*
* @param request the List all Security Groups for the Space request
* @return the response from the List all Security Groups for the Space request
*/
Mono<ListSpaceSecurityGroupsResponse> listSecurityGroups(ListSpaceSecurityGroupsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_service_instances_for_the_space.html">List all Service Instances for the Space</a> request
*
* @param request the List all Service Instances for the Space request
* @return the response from the List all Service Instances for the Space request
*/
Mono<ListSpaceServiceInstancesResponse> listServiceInstances(ListSpaceServiceInstancesRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/list_all_services_for_the_space.html">List all Services for the Space</a> request
*
* @param request the List all Services for the Space request
* @return the response from the List all Services for the Space request
*/
Mono<ListSpaceServicesResponse> listServices(ListSpaceServicesRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/retrieving_the_roles_of_all_users_in_the_space.html">Retrieving the roles of all Users in the Space</a> request
*
* @param request the Retrieving the roles of all Users in the Space request
* @return the response from the Retrieving the roles of all Users in the Space request
*/
Mono<ListSpaceUserRolesResponse> listUserRoles(ListSpaceUserRolesRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/remove_auditor_from_the_space.html">Remove Auditor from the Space</a> request
*
* @param request the Remove Auditor from the Space request
* @return the response from the Remove Auditor from the Space request
*/
Mono<Void> removeAuditor(RemoveSpaceAuditorRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/disassociate_auditor_with_the_space_by_username.html">Disassociate Auditor with the Space by Username</a> request
*
* @param request the Disassociate Auditor with the Space by Username request
* @return the response from the Disassociate Auditor with the Space by Username request
*/
Mono<RemoveSpaceAuditorByUsernameResponse> removeAuditorByUsername(RemoveSpaceAuditorByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/remove_developer_from_the_space.html">Remove Developer from the Space</a> request
*
* @param request the Remove Developer from the Space request
* @return the response from the Remove Developer from the Space request
*/
Mono<Void> removeDeveloper(RemoveSpaceDeveloperRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/disassociate_developer_with_the_space_by_username.html">Disassociate Developer with the Space by Username</a> request
*
* @param request the Disassociate Developer with the Space by Username request
* @return the response from the Disassociate Developer with the Space by Username request
*/
Mono<RemoveSpaceDeveloperByUsernameResponse> removeDeveloperByUsername(RemoveSpaceDeveloperByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/remove_manager_from_the_space.html">Remove Manager from the Space</a> request
*
* @param request the Remove Manager from the Space request
* @return the response from the Remove Manager from the Space request
*/
Mono<Void> removeManager(RemoveSpaceManagerRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/disassociate_manager_with_the_space_by_username.html">Disassociate Manager with the Space by Username</a> request
*
* @param request the Disassociate Manager with the Space by Username request
* @return the response from the Disassociate Manager with the Space by Username request
*/
Mono<RemoveSpaceManagerByUsernameResponse> removeManagerByUsername(RemoveSpaceManagerByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/remove_security_group_from_the_space.html">Remove Security Group from the Space</a> request
*
* @param request the Remove Security Group from the Space request
* @return the response from the Remove Security Group from the Space request
*/
Mono<Void> removeSecurityGroup(RemoveSpaceSecurityGroupRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/spaces/update_a_space.html">Update a Space</a> request
*
* @param request the Update a Space request
* @return the response from the Update a Space request
*/
Mono<UpdateSpaceResponse> update(UpdateSpaceRequest request);
}