All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.ecs.waiters.EcsAsyncWaiter Maven / Gradle / Ivy

Go to download

The AWS Java SDK for the Amazon EC2 Container Service holds the client classes that are used for communicating with the Amazon EC2 Container Service

There is a newer version: 2.29.39
Show newest version
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file 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 software.amazon.awssdk.services.ecs.waiters;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ScheduledExecutorService;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.core.waiters.WaiterOverrideConfiguration;
import software.amazon.awssdk.core.waiters.WaiterResponse;
import software.amazon.awssdk.services.ecs.EcsAsyncClient;
import software.amazon.awssdk.services.ecs.model.DescribeServicesRequest;
import software.amazon.awssdk.services.ecs.model.DescribeServicesResponse;
import software.amazon.awssdk.services.ecs.model.DescribeTasksRequest;
import software.amazon.awssdk.services.ecs.model.DescribeTasksResponse;
import software.amazon.awssdk.utils.SdkAutoCloseable;

/**
 * Waiter utility class that polls a resource until a desired state is reached or until it is determined that the
 * resource will never enter into the desired state. This can be created using the static {@link #builder()} method
 */
@Generated("software.amazon.awssdk:codegen")
@SdkPublicApi
@ThreadSafe
@Immutable
public interface EcsAsyncWaiter extends SdkAutoCloseable {
    /**
     * Polls {@link EcsAsyncClient#describeServices} API until the desired condition {@code ServicesInactive} is met, or
     * until it is determined that the resource will never enter into the desired state
     *
     * @param describeServicesRequest
     *        the request to be used for polling
     * @return CompletableFuture containing the WaiterResponse. It completes successfully when the resource enters into
     *         a desired state or exceptionally when it is determined that the resource will never enter into the
     *         desired state.
     */
    default CompletableFuture> waitUntilServicesInactive(
            DescribeServicesRequest describeServicesRequest) {
        throw new UnsupportedOperationException();
    }

    /**
     * Polls {@link EcsAsyncClient#describeServices} API until the desired condition {@code ServicesInactive} is met, or
     * until it is determined that the resource will never enter into the desired state.
     * 

* This is a convenience method to create an instance of the request builder without the need to create one manually * using {@link DescribeServicesRequest#builder()} * * @param describeServicesRequest * The consumer that will configure the request to be used for polling * @return CompletableFuture of the WaiterResponse containing either a response or an exception that has matched * with the waiter success condition */ default CompletableFuture> waitUntilServicesInactive( Consumer describeServicesRequest) { return waitUntilServicesInactive(DescribeServicesRequest.builder().applyMutation(describeServicesRequest).build()); } /** * Polls {@link EcsAsyncClient#describeServices} API until the desired condition {@code ServicesInactive} is met, or * until it is determined that the resource will never enter into the desired state * * @param describeServicesRequest * The request to be used for polling * @param overrideConfig * Per request override configuration for waiters * @return WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default CompletableFuture> waitUntilServicesInactive( DescribeServicesRequest describeServicesRequest, WaiterOverrideConfiguration overrideConfig) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsAsyncClient#describeServices} API until the desired condition {@code ServicesInactive} is met, or * until it is determined that the resource will never enter into the desired state. *

* This is a convenience method to create an instance of the request builder and instance of the override config * builder * * @param describeServicesRequest * The consumer that will configure the request to be used for polling * @param overrideConfig * The consumer that will configure the per request override configuration for waiters * @return WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default CompletableFuture> waitUntilServicesInactive( Consumer describeServicesRequest, Consumer overrideConfig) { return waitUntilServicesInactive(DescribeServicesRequest.builder().applyMutation(describeServicesRequest).build(), WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build()); } /** * Polls {@link EcsAsyncClient#describeServices} API until the desired condition {@code ServicesStable} is met, or * until it is determined that the resource will never enter into the desired state * * @param describeServicesRequest * the request to be used for polling * @return CompletableFuture containing the WaiterResponse. It completes successfully when the resource enters into * a desired state or exceptionally when it is determined that the resource will never enter into the * desired state. */ default CompletableFuture> waitUntilServicesStable( DescribeServicesRequest describeServicesRequest) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsAsyncClient#describeServices} API until the desired condition {@code ServicesStable} is met, or * until it is determined that the resource will never enter into the desired state. *

* This is a convenience method to create an instance of the request builder without the need to create one manually * using {@link DescribeServicesRequest#builder()} * * @param describeServicesRequest * The consumer that will configure the request to be used for polling * @return CompletableFuture of the WaiterResponse containing either a response or an exception that has matched * with the waiter success condition */ default CompletableFuture> waitUntilServicesStable( Consumer describeServicesRequest) { return waitUntilServicesStable(DescribeServicesRequest.builder().applyMutation(describeServicesRequest).build()); } /** * Polls {@link EcsAsyncClient#describeServices} API until the desired condition {@code ServicesStable} is met, or * until it is determined that the resource will never enter into the desired state * * @param describeServicesRequest * The request to be used for polling * @param overrideConfig * Per request override configuration for waiters * @return WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default CompletableFuture> waitUntilServicesStable( DescribeServicesRequest describeServicesRequest, WaiterOverrideConfiguration overrideConfig) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsAsyncClient#describeServices} API until the desired condition {@code ServicesStable} is met, or * until it is determined that the resource will never enter into the desired state. *

* This is a convenience method to create an instance of the request builder and instance of the override config * builder * * @param describeServicesRequest * The consumer that will configure the request to be used for polling * @param overrideConfig * The consumer that will configure the per request override configuration for waiters * @return WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default CompletableFuture> waitUntilServicesStable( Consumer describeServicesRequest, Consumer overrideConfig) { return waitUntilServicesStable(DescribeServicesRequest.builder().applyMutation(describeServicesRequest).build(), WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build()); } /** * Polls {@link EcsAsyncClient#describeTasks} API until the desired condition {@code TasksRunning} is met, or until * it is determined that the resource will never enter into the desired state * * @param describeTasksRequest * the request to be used for polling * @return CompletableFuture containing the WaiterResponse. It completes successfully when the resource enters into * a desired state or exceptionally when it is determined that the resource will never enter into the * desired state. */ default CompletableFuture> waitUntilTasksRunning( DescribeTasksRequest describeTasksRequest) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsAsyncClient#describeTasks} API until the desired condition {@code TasksRunning} is met, or until * it is determined that the resource will never enter into the desired state. *

* This is a convenience method to create an instance of the request builder without the need to create one manually * using {@link DescribeTasksRequest#builder()} * * @param describeTasksRequest * The consumer that will configure the request to be used for polling * @return CompletableFuture of the WaiterResponse containing either a response or an exception that has matched * with the waiter success condition */ default CompletableFuture> waitUntilTasksRunning( Consumer describeTasksRequest) { return waitUntilTasksRunning(DescribeTasksRequest.builder().applyMutation(describeTasksRequest).build()); } /** * Polls {@link EcsAsyncClient#describeTasks} API until the desired condition {@code TasksRunning} is met, or until * it is determined that the resource will never enter into the desired state * * @param describeTasksRequest * The request to be used for polling * @param overrideConfig * Per request override configuration for waiters * @return WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default CompletableFuture> waitUntilTasksRunning( DescribeTasksRequest describeTasksRequest, WaiterOverrideConfiguration overrideConfig) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsAsyncClient#describeTasks} API until the desired condition {@code TasksRunning} is met, or until * it is determined that the resource will never enter into the desired state. *

* This is a convenience method to create an instance of the request builder and instance of the override config * builder * * @param describeTasksRequest * The consumer that will configure the request to be used for polling * @param overrideConfig * The consumer that will configure the per request override configuration for waiters * @return WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default CompletableFuture> waitUntilTasksRunning( Consumer describeTasksRequest, Consumer overrideConfig) { return waitUntilTasksRunning(DescribeTasksRequest.builder().applyMutation(describeTasksRequest).build(), WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build()); } /** * Polls {@link EcsAsyncClient#describeTasks} API until the desired condition {@code TasksStopped} is met, or until * it is determined that the resource will never enter into the desired state * * @param describeTasksRequest * the request to be used for polling * @return CompletableFuture containing the WaiterResponse. It completes successfully when the resource enters into * a desired state or exceptionally when it is determined that the resource will never enter into the * desired state. */ default CompletableFuture> waitUntilTasksStopped( DescribeTasksRequest describeTasksRequest) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsAsyncClient#describeTasks} API until the desired condition {@code TasksStopped} is met, or until * it is determined that the resource will never enter into the desired state. *

* This is a convenience method to create an instance of the request builder without the need to create one manually * using {@link DescribeTasksRequest#builder()} * * @param describeTasksRequest * The consumer that will configure the request to be used for polling * @return CompletableFuture of the WaiterResponse containing either a response or an exception that has matched * with the waiter success condition */ default CompletableFuture> waitUntilTasksStopped( Consumer describeTasksRequest) { return waitUntilTasksStopped(DescribeTasksRequest.builder().applyMutation(describeTasksRequest).build()); } /** * Polls {@link EcsAsyncClient#describeTasks} API until the desired condition {@code TasksStopped} is met, or until * it is determined that the resource will never enter into the desired state * * @param describeTasksRequest * The request to be used for polling * @param overrideConfig * Per request override configuration for waiters * @return WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default CompletableFuture> waitUntilTasksStopped( DescribeTasksRequest describeTasksRequest, WaiterOverrideConfiguration overrideConfig) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsAsyncClient#describeTasks} API until the desired condition {@code TasksStopped} is met, or until * it is determined that the resource will never enter into the desired state. *

* This is a convenience method to create an instance of the request builder and instance of the override config * builder * * @param describeTasksRequest * The consumer that will configure the request to be used for polling * @param overrideConfig * The consumer that will configure the per request override configuration for waiters * @return WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default CompletableFuture> waitUntilTasksStopped( Consumer describeTasksRequest, Consumer overrideConfig) { return waitUntilTasksStopped(DescribeTasksRequest.builder().applyMutation(describeTasksRequest).build(), WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build()); } /** * Create a builder that can be used to configure and create a {@link EcsAsyncWaiter}. * * @return a builder */ static Builder builder() { return DefaultEcsAsyncWaiter.builder(); } /** * Create an instance of {@link EcsAsyncWaiter} with the default configuration. *

* A default {@link EcsAsyncClient} will be created to poll resources. It is recommended to share a single * instance of the waiter created via this method. If it is not desirable to share a waiter instance, invoke * {@link #close()} to release the resources once the waiter is not needed. * * @return an instance of {@link EcsAsyncWaiter} */ static EcsAsyncWaiter create() { return DefaultEcsAsyncWaiter.builder().build(); } interface Builder { /** * Sets a custom {@link ScheduledExecutorService} that will be used to schedule async polling attempts *

* This executorService must be closed by the caller when it is ready to be disposed. The SDK will not close the * executorService when the waiter is closed * * @param executorService * the executorService to set * @return a reference to this object so that method calls can be chained together. */ Builder scheduledExecutorService(ScheduledExecutorService executorService); /** * Defines overrides to the default SDK waiter configuration that should be used for waiters created from this * builder * * @param overrideConfiguration * the override configuration to set * @return a reference to this object so that method calls can be chained together. */ Builder overrideConfiguration(WaiterOverrideConfiguration overrideConfiguration); /** * This is a convenient method to pass the override configuration without the need to create an instance * manually via {@link WaiterOverrideConfiguration#builder()} * * @param overrideConfiguration * The consumer that will configure the overrideConfiguration * @return a reference to this object so that method calls can be chained together. * @see #overrideConfiguration(WaiterOverrideConfiguration) */ default Builder overrideConfiguration(Consumer overrideConfiguration) { WaiterOverrideConfiguration.Builder builder = WaiterOverrideConfiguration.builder(); overrideConfiguration.accept(builder); return overrideConfiguration(builder.build()); } /** * Sets a custom {@link EcsAsyncClient} that will be used to poll the resource *

* This SDK client must be closed by the caller when it is ready to be disposed. The SDK will not close the * client when the waiter is closed * * @param client * the client to send the request * @return a reference to this object so that method calls can be chained together. */ Builder client(EcsAsyncClient client); /** * Builds an instance of {@link EcsAsyncWaiter} based on the configurations supplied to this builder * * @return An initialized {@link EcsAsyncWaiter} */ EcsAsyncWaiter build(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy