/* * 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.v3.isolationsegments; import reactor.core.publisher.Mono; /** * Main entry point to the Cloud Foundry Isolation Zones Client API */ public interface IsolationSegments { /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#entitle-one-or-more-organizations-for-an-isolation-segment"> * Add an Isolation Segment Organization Entitlement</a> request * * @param request the Add an Isolation Segment Organization Entitlement request * @return the response from the Add an Isolation Segment Organization Entitlement request */ Mono<AddIsolationSegmentOrganizationEntitlementResponse> addOrganizationEntitlement(AddIsolationSegmentOrganizationEntitlementRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#create-an-isolation-segment">Create an Isolation Segment</a> request * * @param request the Create Isolation Segment request * @return the response from the Create Isolation Segment request */ Mono<CreateIsolationSegmentResponse> create(CreateIsolationSegmentRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#delete-an-isolation-segment">Delete an Isolation Segment</a> request * * @param request the Delete Isolation Segment request * @return the response from the Delete Isolation Segment request */ Mono<Void> delete(DeleteIsolationSegmentRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#get-an-isolation-segment">Get an Isolation Segment</a> request * * @param request the Get Isolation Segment request * @return the response from the Get Isolation Segment request */ Mono<GetIsolationSegmentResponse> get(GetIsolationSegmentRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#list-isolation-segments">List Isolation Segments</a> request * * @param request the List Isolation Segments request * @return the response from the List Isolation Segments request */ Mono<ListIsolationSegmentsResponse> list(ListIsolationSegmentsRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#list-organizations-for-isolation-segment">List Organizations for Isolation Segment</a> request * * @param request the List Organizations for Isolation Segment request * @return the response from the List Organizations for Isolation Segment request */ Mono<ListIsolationSegmentEntitledOrganizationsResponse> listEntitledOrganizations(ListIsolationSegmentEntitledOrganizationsRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#list-organizations-relationship">List Organizations Relationship</a> request * * @param request the List Organizations Relationship request * @return the response from the List Organizations Relationship request */ Mono<ListIsolationSegmentOrganizationsRelationshipResponse> listOrganizationsRelationship(ListIsolationSegmentOrganizationsRelationshipRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#list-spaces-relationship">List Spaces Relationship</a> request * * @param request the List Spaces Relationship request * @return the response from the List Spaces Relationship request */ Mono<ListIsolationSegmentSpacesRelationshipResponse> listSpacesRelationship(ListIsolationSegmentSpacesRelationshipRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#revoke-entitlement-to-isolation-segment-for-an-organization"> * Remove an Isolation Segment Organization Entitlement</a> request * * @param request the Remove an Isolation Segment Organization Entitlement request * @return the response from the Remove an Isolation Segment Organization Entitlement request */ Mono<Void> removeOrganizationEntitlement(RemoveIsolationSegmentOrganizationEntitlementRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#update-an-isolation-segment">Update an Isolation Segment</a> request * * @param request the Update Isolation Segment request * @return the response from the Update Isolation Segment request */ Mono<UpdateIsolationSegmentResponse> update(UpdateIsolationSegmentRequest request); }