/* * 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.applications; import reactor.core.publisher.Mono; /** * Main entry point to the Cloud Foundry Applications V3 Client API */ public interface ApplicationsV3 { /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/assigning_a_droplet_as_a_an_apps_current_droplet.html">Assign Application Droplet</a> request * * @param request the Assign Application Droplet request * @return the response from the Assign Application Droplet request */ Mono<AssignApplicationDropletResponse> assignDroplet(AssignApplicationDropletRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#cancel-an-app-39-s-task">Cancel Application Task</a> request * * @param request the Cancel Application Task request * @return the response from the Cancel Application Task request */ Mono<CancelApplicationTaskResponse> cancelTask(CancelApplicationTaskRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/create_an_app.html">Create Application</a> request * * @param request the Create Application request * @return the response from the Create Application request */ Mono<CreateApplicationResponse> create(CreateApplicationRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/delete_an_app.html">Delete Application</a> request * * @param request the Delete Application request * @return the response from the Delete Application request */ Mono<Void> delete(DeleteApplicationRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/get_an_app.html">Get Application</a> request * * @param request the Get Application request * @return the response from the Get Application request */ Mono<GetApplicationResponse> get(GetApplicationRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/get_the_env_for_an_app.html">Get Application Environment</a> request * * @param request the Get Application Environment request * @return the response from the Get Application Environment request */ Mono<GetApplicationEnvironmentResponse> getEnvironment(GetApplicationEnvironmentRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/get_a_process_from_an_app.html">Get Application Process</a> request * * @param request the Get Application Process request * @return the response from the Get Application Process request */ Mono<GetApplicationProcessResponse> getProcess(GetApplicationProcessRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#get-stats-for-a-process-for-an-app">Get Statistics for a Process for an Application</a> request * * @param request the Get Statistics for a Process for an Application request * @return the response from the Get Statistics for a Process for an Application request */ Mono<GetApplicationProcessStatisticsResponse> getProcessStatistics(GetApplicationProcessStatisticsRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#get-an-app-39-s-task">Get Application Task</a> request * * @param request the Get Application Task request * @return the response from the Get Application Task request */ Mono<GetApplicationTaskResponse> getTask(GetApplicationTaskRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/list_all_apps.html">List Applications</a> request * * @param request the List Applications request * @return the response from the List Applications request */ Mono<ListApplicationsResponse> list(ListApplicationsRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/app_droplets_(experimental)/list_droplets.html">List Application Droplets</a> request * * @param request the List Application Droplets request * @return the response from the List Application Droplets request */ Mono<ListApplicationDropletsResponse> listDroplets(ListApplicationDropletsRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/list_associated_packages.html">List Application Packages</a> request * * @param request the List Application Packages request * @return the response from the List Application Packages request */ Mono<ListApplicationPackagesResponse> listPackages(ListApplicationPackagesRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/list_associated_processes.html">List Application Processes</a> request * * @param request the List Application Processes request * @return the response from the List Application Processes request */ Mono<ListApplicationProcessesResponse> listProcesses(ListApplicationProcessesRequest request); /** * Makes the <a href="http://v3-apidocs.cloudfoundry.org/version/release-candidate/index.html#list-an-app-39-s-tasks">List Application Tasks</a> request * * @param request the List Application Tasks request * @return the response from the List Application Tasks request */ Mono<ListApplicationTasksResponse> listTasks(ListApplicationTasksRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/scaling_a_process_from_its_app.html">Scale Application</a> request * * @param request the Scale Application request * @return the response from the Scale Application request */ Mono<ScaleApplicationResponse> scale(ScaleApplicationRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/starting_an_app.html">Start Application</a> request * * @param request the Start Application request * @return the response from the Start Application request */ Mono<StartApplicationResponse> start(StartApplicationRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/stopping_an_app.html">Stop Application</a> request * * @param request the Stop Application request * @return the response from the Stop Application request */ Mono<StopApplicationResponse> stop(StopApplicationRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/terminating_a_process_instance_from_its_app.html">Delete Application Process</a> request * * @param request the Delete Application Process Instance request * @return the response from the Delete Application Process Instance request */ Mono<Void> terminateInstance(TerminateApplicationInstanceRequest request); /** * Makes the <a href="http://apidocs.cloudfoundry.org/latest-release/apps_(experimental)/updating_an_app.html">Update Application</a> request * * @param request the Update Application request * @return the response from the Update Application request */ Mono<UpdateApplicationResponse> update(UpdateApplicationRequest request); }