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

software.amazon.awssdk.services.ecs.waiters.EcsWaiter 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.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.core.waiters.WaiterOverrideConfiguration;
import software.amazon.awssdk.core.waiters.WaiterResponse;
import software.amazon.awssdk.services.ecs.EcsClient;
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
public interface EcsWaiter extends SdkAutoCloseable {
    /**
     * Polls {@link EcsClient#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 WaiterResponse containing either a response or an exception that has matched with the waiter success
     *         condition
     */
    default WaiterResponse waitUntilServicesInactive(DescribeServicesRequest describeServicesRequest) {
        throw new UnsupportedOperationException();
    }

    /**
     * Polls {@link EcsClient#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 WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default WaiterResponse waitUntilServicesInactive( Consumer describeServicesRequest) { return waitUntilServicesInactive(DescribeServicesRequest.builder().applyMutation(describeServicesRequest).build()); } /** * Polls {@link EcsClient#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 WaiterResponse waitUntilServicesInactive(DescribeServicesRequest describeServicesRequest, WaiterOverrideConfiguration overrideConfig) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsClient#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 WaiterResponse waitUntilServicesInactive( Consumer describeServicesRequest, Consumer overrideConfig) { return waitUntilServicesInactive(DescribeServicesRequest.builder().applyMutation(describeServicesRequest).build(), WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build()); } /** * Polls {@link EcsClient#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 WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default WaiterResponse waitUntilServicesStable(DescribeServicesRequest describeServicesRequest) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsClient#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 WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default WaiterResponse waitUntilServicesStable( Consumer describeServicesRequest) { return waitUntilServicesStable(DescribeServicesRequest.builder().applyMutation(describeServicesRequest).build()); } /** * Polls {@link EcsClient#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 WaiterResponse waitUntilServicesStable(DescribeServicesRequest describeServicesRequest, WaiterOverrideConfiguration overrideConfig) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsClient#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 WaiterResponse waitUntilServicesStable( Consumer describeServicesRequest, Consumer overrideConfig) { return waitUntilServicesStable(DescribeServicesRequest.builder().applyMutation(describeServicesRequest).build(), WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build()); } /** * Polls {@link EcsClient#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 WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default WaiterResponse waitUntilTasksRunning(DescribeTasksRequest describeTasksRequest) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsClient#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 WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default WaiterResponse waitUntilTasksRunning( Consumer describeTasksRequest) { return waitUntilTasksRunning(DescribeTasksRequest.builder().applyMutation(describeTasksRequest).build()); } /** * Polls {@link EcsClient#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 WaiterResponse waitUntilTasksRunning(DescribeTasksRequest describeTasksRequest, WaiterOverrideConfiguration overrideConfig) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsClient#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 WaiterResponse waitUntilTasksRunning( Consumer describeTasksRequest, Consumer overrideConfig) { return waitUntilTasksRunning(DescribeTasksRequest.builder().applyMutation(describeTasksRequest).build(), WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build()); } /** * Polls {@link EcsClient#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 WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default WaiterResponse waitUntilTasksStopped(DescribeTasksRequest describeTasksRequest) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsClient#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 WaiterResponse containing either a response or an exception that has matched with the waiter success * condition */ default WaiterResponse waitUntilTasksStopped( Consumer describeTasksRequest) { return waitUntilTasksStopped(DescribeTasksRequest.builder().applyMutation(describeTasksRequest).build()); } /** * Polls {@link EcsClient#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 WaiterResponse waitUntilTasksStopped(DescribeTasksRequest describeTasksRequest, WaiterOverrideConfiguration overrideConfig) { throw new UnsupportedOperationException(); } /** * Polls {@link EcsClient#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 WaiterResponse 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 EcsWaiter}. * * @return a builder */ static Builder builder() { return DefaultEcsWaiter.builder(); } /** * Create an instance of {@link EcsWaiter} with the default configuration. *

* A default {@link EcsClient} 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 EcsWaiter} */ static EcsWaiter create() { return DefaultEcsWaiter.builder().build(); } interface Builder { /** * 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 EcsClient} 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(EcsClient client); /** * Builds an instance of {@link EcsWaiter} based on the configurations supplied to this builder * * @return An initialized {@link EcsWaiter} */ EcsWaiter build(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy