/*
* 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.organizations;
import reactor.core.publisher.Mono;
/**
* Main entry point to the Cloud Foundry Organizations Client API
*/
public interface Organizations {
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/associate_auditor_with_the_organization.html">Associate Auditor with the Organization</a> request
*
* @param request the Associate Auditor request
* @return the response from the Associate Auditor request
*/
Mono<AssociateOrganizationAuditorResponse> associateAuditor(AssociateOrganizationAuditorRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/associate_auditor_with_the_organization_by_username.html">Associate Auditor with the Organization by Username</a>
* request
*
* @param request the Associate Auditor with an Organization by Username request
* @return the response from the Associate Auditor with an Organization by Username request
*/
Mono<AssociateOrganizationAuditorByUsernameResponse> associateAuditorByUsername(AssociateOrganizationAuditorByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/associate_billing_manager_with_the_organization.html">Associate Billing Manager with the Organization</a>
* request
*
* @param request the Associate Billing Manager with the Organization request
* @return the response from the Associate Billing Manager with the Organization request
*/
Mono<AssociateOrganizationBillingManagerResponse> associateBillingManager(AssociateOrganizationBillingManagerRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/associate_billing_manager_with_the_organization_by_username.html">Associate Billing Manager with the Organization
* by Username</a> request
*
* @param request the Associate Billing Manager with the Organization by Username request
* @return the response from the Associate Billing Manager with the Organization by Username request
*/
Mono<AssociateOrganizationBillingManagerByUsernameResponse> associateBillingManagerByUsername(AssociateOrganizationBillingManagerByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/associate_manager_with_the_organization.html">Associate Manager with the Organization</a> request
*
* @param request the Associate Manager with the Organization request
* @return the response from the Associate Manager with the Organization request
*/
Mono<AssociateOrganizationManagerResponse> associateManager(AssociateOrganizationManagerRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/associate_manager_with_the_organization_by_username.html">Associate Manager with the Organization by Username</a>
* request
*
* @param request the Associate Manager with the Organization by Username request
* @return the response from the Associate Manager with the Organization by Username request
*/
Mono<AssociateOrganizationManagerByUsernameResponse> associateManagerByUsername(AssociateOrganizationManagerByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/associate_private_domain_with_the_organization.html">Associate Private Domain with the Organization</a> request
*
* @param request the Associate Private Domain with the Organization request
* @return the response from the Associate Private Domain with the Organization request
*/
Mono<AssociateOrganizationPrivateDomainResponse> associatePrivateDomain(AssociateOrganizationPrivateDomainRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/associate_user_with_the_organization.html">Associate User with the Organization</a> request
*
* @param request the Associate User with the Organization request
* @return the response from the Associate User with the Organization request
*/
Mono<AssociateOrganizationUserResponse> associateUser(AssociateOrganizationUserRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/associate_user_with_the_organization_by_username.html">Associate User with the Organization by Username</a>
* request
*
* @param request the Associate User with the Organization by Username request
* @return the response from the Associate User with the Organization by Username request
*/
Mono<AssociateOrganizationUserByUsernameResponse> associateUserByUsername(AssociateOrganizationUserByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/creating_an_organization.html">Creating an Organization</a> request
*
* @param request the Creating an Organization request
* @return the response from the Creating an Organization request
*/
Mono<CreateOrganizationResponse> create(CreateOrganizationRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/delete_a_particular_organization.html">Delete a Particular Organization</a> request
*
* @param request the Delete a Particular Organization request
* @return the response from the Delete a Particular Organization request
*/
Mono<DeleteOrganizationResponse> delete(DeleteOrganizationRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/retrieve_a_particular_organization.html">Retrieve a Particular Organization</a> request
*
* @param request the Retrieve a Particular Organization request
* @return the response from the Retrieve a Particular Organization request
*/
Mono<GetOrganizationResponse> get(GetOrganizationRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/retrieving_organization_instance_usage.html">Retrieving organization instance usage</a> request
*
* @param request the Retrieving organization instance usage request
* @return the response from the Retrieving organization instance usage request
*/
Mono<GetOrganizationInstanceUsageResponse> getInstanceUsage(GetOrganizationInstanceUsageRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/retrieving_organization_memory_usage.html">Retrieving organization memory usage</a> request
*
* @param request the Retrieving organization memory usage request
* @return the response from the Retrieving organization memory usage request
*/
Mono<GetOrganizationMemoryUsageResponse> getMemoryUsage(GetOrganizationMemoryUsageRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/retrieving_the_roles_of_all_users_in_the_organization.html">Retrieving the roles of all Users in the
* Organization</a> request
*
* @param request the Retrieving the roles of all Users in the Organization request
* @return the response from the Retrieving the roles of all Users in the Organization request
*/
Mono<GetOrganizationUserRolesResponse> getUserRoles(GetOrganizationUserRolesRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_organizations.html">List Organizations</a> request
*
* @param request the List Organizations request
* @return the response from the List Organizations request
*/
Mono<ListOrganizationsResponse> list(ListOrganizationsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_auditors_for_the_organization.html">List all Auditors for the Organization</a> request
*
* @param request the List all Auditors for the Organization request
* @return the response from the List all Auditors for the Organization request
*/
Mono<ListOrganizationAuditorsResponse> listAuditors(ListOrganizationAuditorsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_billing_managers_for_the_organization.html">List all Billing Managers for the Organization</a> request
*
* @param request the List all Billing Managers for the Organization request
* @return the response from the List all Billing Managers for the Organization request
*/
Mono<ListOrganizationBillingManagersResponse> listBillingManagers(ListOrganizationBillingManagersRequest request);
/**
* <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_domains_for_the_organization_%28deprecated%29.html">List all Domains for the Organization</a> request
*
* @param request the List all Domains for the Organization request
* @return the response from the List all Domains for the Organization request
*/
@Deprecated
Mono<ListOrganizationDomainsResponse> listDomains(ListOrganizationDomainsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_managers_for_the_organization.html">List all Managers for the Organization</a> request
*
* @param request the List all Managers for the Organization request
* @return the response from the List all Managers for the Organization request
*/
Mono<ListOrganizationManagersResponse> listManagers(ListOrganizationManagersRequest request);
/**
* <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_private_domains_for_the_organization.html">List all Private Domains for the Organization</a> request
*
* @param request the List all Private Domains for the Organization request
* @return the response from the List all Private Domains for the Organization request
*/
Mono<ListOrganizationPrivateDomainsResponse> listPrivateDomains(ListOrganizationPrivateDomainsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_services_for_the_organization.html">List all Services for the Organization</a> request
*
* @param request the List all Services for the Organization request
* @return the response from the List all Services for the Organization request
*/
Mono<ListOrganizationServicesResponse> listServices(ListOrganizationServicesRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_space_quota_definitions_for_the_organization.html">List all Space Quota Definitions for the
* Organization</a> request
*
* @param request the List all Space Quota Definitions for the Organization request
* @return the response from the List all Space Quota Definitions for the Organization request
*/
Mono<ListOrganizationSpaceQuotaDefinitionsResponse> listSpaceQuotaDefinitions(ListOrganizationSpaceQuotaDefinitionsRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_spaces_for_the_organization.html">List all Spaces for the Organization</a> request
*
* @param request the List all Spaces for the Organization request
* @return the response from the List all Spaces for the Organization request
*/
Mono<ListOrganizationSpacesResponse> listSpaces(ListOrganizationSpacesRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/list_all_users_for_the_organization.html">List all Users for the Organization</a> request
*
* @param request the List all Users for the Organization request
* @return the response from the List all Users for the Organization request
*/
Mono<ListOrganizationUsersResponse> listUsers(ListOrganizationUsersRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/remove_auditor_from_the_organization.html">Remove Auditor from the Organization</a> request
*
* @param request the Remove Auditor from the Organization request
* @return the response from the Remove Auditor from the Organization request
*/
Mono<Void> removeAuditor(RemoveOrganizationAuditorRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/disassociate_auditor_with_the_organization_by_username.html">Disassociate Auditor with the Organization by
* Username</a> request
*
* @param request the Remove Auditor with the Organization By Username request
* @return the response from the Associate Billing Manager with the Organization request
*/
Mono<Void> removeAuditorByUsername(RemoveOrganizationAuditorByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/remove_billing_manager_from_the_organization.html">Remove Billing Manager from the Organization</a> request
*
* @param request the Remove Billing Manager from the Organization request
* @return the response from the Remove Billing Manager from the Organization request
*/
Mono<Void> removeBillingManager(RemoveOrganizationBillingManagerRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/disassociate_billing_manager_with_the_organization_by_username.html">Disassociate Billing Manager with the
* Organization by Username</a> request
*
* @param request the Disassociate Billing Manager with the Organization by Username request
* @return the response from the Disassociate Billing Manager with the Organization by Username request
*/
Mono<Void> removeBillingManagerByUsername(RemoveOrganizationBillingManagerByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/remove_manager_from_the_organization.html">Remove Manager from the Organization</a> request
*
* @param request the Remove Manager from the Organization request
* @return the response from the Remove Manager from the Organization request
*/
Mono<Void> removeManager(RemoveOrganizationManagerRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/disassociate_manager_with_the_organization_by_username.html">Disassociate Manager with the Organization by
* Username</a> request
*
* @param request the Disassociate Manager with the Organization by Username request
* @return the response from the Disassociate Manager with the Organization by Username request
*/
Mono<Void> removeManagerByUsername(RemoveOrganizationManagerByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/remove_private_domain_from_the_organization.html">Remove Private Domain from the Organization</a> request
*
* @param request the Remove Private Domain from the Organization request
* @return the response from the Remove Private Domain from the Organization request
*/
Mono<Void> removePrivateDomain(RemoveOrganizationPrivateDomainRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/remove_user_from_the_organization.html">Remove User from the Organization</a> request
*
* @param request the Remove User from the Organization request
* @return the response from the Remove User from the Organization request
*/
Mono<Void> removeUser(RemoveOrganizationUserRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/disassociate_user_with_the_organization_by_username.html">Disassociate User with the Organization by Username</a>
* request
*
* @param request the Disassociate User with the Organization by Username request
* @return the response from the Disassociate User with the Organization by Username request
*/
Mono<Void> removeUserByUsername(RemoveOrganizationUserByUsernameRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/get_organization_summary.html">Get Organization summary</a> request
*
* @param request the Organization summary request
* @return the response from the Organization summary request
*/
Mono<SummaryOrganizationResponse> summary(SummaryOrganizationRequest request);
/**
* Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/organizations/update_an_organization.html">Update an Organization</a> request
*
* @param request the Update an Organization request
* @return the response from the Update an Organization request
*/
Mono<UpdateOrganizationResponse> update(UpdateOrganizationRequest request);
}