/* * 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.packages; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; /** * Main entry point to the Cloud Foundry Packages Client API */ public interface Packages { /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/packages_%28experimental%29/copy_a_package.html">Copy Package</a> request * * @param request the Copy Package request * @return the response from the Copy Package request */ Mono<CopyPackageResponse> copy(CopyPackageRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/packages_(experimental)/create_a_package.html">Create Package</a> request * * @param request the Create Package request * @return the response from the Create Package request */ Mono<CreatePackageResponse> create(CreatePackageRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/packages_%28experimental%29/delete_a_package.html">Delete Package</a> request * * @param request the Delete Package request * @return the response from the Delete Package request */ Mono<Void> delete(DeletePackageRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/packages_(experimental)/download_the_bits_for_a_package.html">Download the bits for a package</a> request * * @param request the Download Package request * @return the response from the Download Package request */ Flux<byte[]> download(DownloadPackageRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/packages_(experimental)/get_a_package.html">Get Package</a> request * * @param request the Get Package request * @return the response from the Get Package request */ Mono<GetPackageResponse> get(GetPackageRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/packages_%28experimental%29/list_all_packages.html">List Packages</a> request * * @param request the List Packages request * @return the response from the List Packages request */ Mono<ListPackagesResponse> list(ListPackagesRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/packages_(experimental)/stage_a_package.html">Stage Package</a> request * * @param request the Stage Package request * @return the response from the StagePackage request */ Mono<StagePackageResponse> stage(StagePackageRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/packages_(experimental)/upload_bits_for_a_package_of_type_bits.html"> Upload Package</a> request * * @param request the Upload Package request * @return the response from the Upload Package request */ Mono<UploadPackageResponse> upload(UploadPackageRequest request); }