/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ECS { namespace Model { /** *

The dependencies defined for container startup and shutdown. A container can * contain multiple dependencies. When a dependency is defined for container * startup, for container shutdown it is reversed.

Your Amazon ECS container * instances require at least version 1.26.0 of the container agent to use * container dependencies. However, we recommend using the latest container agent * version. For information about checking your agent version and updating to the * latest version, see Updating * the Amazon ECS Container Agent in the Amazon Elastic Container Service * Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your * instance needs at least version 1.26.0-1 of the ecs-init package. * If your container instances are launched from version 20190301 or * later, then they contain the required versions of the container agent and * ecs-init. For more information, see Amazon * ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer * Guide.

For tasks that use the Fargate launch type, the task or * service requires the following platforms:

  • Linux platform * version 1.3.0 or later.

  • Windows platform version * 1.0.0 or later.

See Also:

AWS * API Reference

*/ class ContainerDependency { public: AWS_ECS_API ContainerDependency(); AWS_ECS_API ContainerDependency(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API ContainerDependency& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of a container.

*/ inline const Aws::String& GetContainerName() const{ return m_containerName; } /** *

The name of a container.

*/ inline bool ContainerNameHasBeenSet() const { return m_containerNameHasBeenSet; } /** *

The name of a container.

*/ inline void SetContainerName(const Aws::String& value) { m_containerNameHasBeenSet = true; m_containerName = value; } /** *

The name of a container.

*/ inline void SetContainerName(Aws::String&& value) { m_containerNameHasBeenSet = true; m_containerName = std::move(value); } /** *

The name of a container.

*/ inline void SetContainerName(const char* value) { m_containerNameHasBeenSet = true; m_containerName.assign(value); } /** *

The name of a container.

*/ inline ContainerDependency& WithContainerName(const Aws::String& value) { SetContainerName(value); return *this;} /** *

The name of a container.

*/ inline ContainerDependency& WithContainerName(Aws::String&& value) { SetContainerName(std::move(value)); return *this;} /** *

The name of a container.

*/ inline ContainerDependency& WithContainerName(const char* value) { SetContainerName(value); return *this;} /** *

The dependency condition of the container. The following are the available * conditions and their behavior:

  • START - This * condition emulates the behavior of links and volumes today. It validates that a * dependent container is started before permitting other containers to start.

    *
  • COMPLETE - This condition validates that a dependent * container runs to completion (exits) before permitting other containers to * start. This can be useful for nonessential containers that run a script and then * exit. This condition can't be set on an essential container.

  • * SUCCESS - This condition is the same as COMPLETE, but * it also requires that the container exits with a zero status. This * condition can't be set on an essential container.

  • * HEALTHY - This condition validates that the dependent container * passes its Docker health check before permitting other containers to start. This * requires that the dependent container has health checks configured. This * condition is confirmed only at task startup.

*/ inline const ContainerCondition& GetCondition() const{ return m_condition; } /** *

The dependency condition of the container. The following are the available * conditions and their behavior:

  • START - This * condition emulates the behavior of links and volumes today. It validates that a * dependent container is started before permitting other containers to start.

    *
  • COMPLETE - This condition validates that a dependent * container runs to completion (exits) before permitting other containers to * start. This can be useful for nonessential containers that run a script and then * exit. This condition can't be set on an essential container.

  • * SUCCESS - This condition is the same as COMPLETE, but * it also requires that the container exits with a zero status. This * condition can't be set on an essential container.

  • * HEALTHY - This condition validates that the dependent container * passes its Docker health check before permitting other containers to start. This * requires that the dependent container has health checks configured. This * condition is confirmed only at task startup.

*/ inline bool ConditionHasBeenSet() const { return m_conditionHasBeenSet; } /** *

The dependency condition of the container. The following are the available * conditions and their behavior:

  • START - This * condition emulates the behavior of links and volumes today. It validates that a * dependent container is started before permitting other containers to start.

    *
  • COMPLETE - This condition validates that a dependent * container runs to completion (exits) before permitting other containers to * start. This can be useful for nonessential containers that run a script and then * exit. This condition can't be set on an essential container.

  • * SUCCESS - This condition is the same as COMPLETE, but * it also requires that the container exits with a zero status. This * condition can't be set on an essential container.

  • * HEALTHY - This condition validates that the dependent container * passes its Docker health check before permitting other containers to start. This * requires that the dependent container has health checks configured. This * condition is confirmed only at task startup.

*/ inline void SetCondition(const ContainerCondition& value) { m_conditionHasBeenSet = true; m_condition = value; } /** *

The dependency condition of the container. The following are the available * conditions and their behavior:

  • START - This * condition emulates the behavior of links and volumes today. It validates that a * dependent container is started before permitting other containers to start.

    *
  • COMPLETE - This condition validates that a dependent * container runs to completion (exits) before permitting other containers to * start. This can be useful for nonessential containers that run a script and then * exit. This condition can't be set on an essential container.

  • * SUCCESS - This condition is the same as COMPLETE, but * it also requires that the container exits with a zero status. This * condition can't be set on an essential container.

  • * HEALTHY - This condition validates that the dependent container * passes its Docker health check before permitting other containers to start. This * requires that the dependent container has health checks configured. This * condition is confirmed only at task startup.

*/ inline void SetCondition(ContainerCondition&& value) { m_conditionHasBeenSet = true; m_condition = std::move(value); } /** *

The dependency condition of the container. The following are the available * conditions and their behavior:

  • START - This * condition emulates the behavior of links and volumes today. It validates that a * dependent container is started before permitting other containers to start.

    *
  • COMPLETE - This condition validates that a dependent * container runs to completion (exits) before permitting other containers to * start. This can be useful for nonessential containers that run a script and then * exit. This condition can't be set on an essential container.

  • * SUCCESS - This condition is the same as COMPLETE, but * it also requires that the container exits with a zero status. This * condition can't be set on an essential container.

  • * HEALTHY - This condition validates that the dependent container * passes its Docker health check before permitting other containers to start. This * requires that the dependent container has health checks configured. This * condition is confirmed only at task startup.

*/ inline ContainerDependency& WithCondition(const ContainerCondition& value) { SetCondition(value); return *this;} /** *

The dependency condition of the container. The following are the available * conditions and their behavior:

  • START - This * condition emulates the behavior of links and volumes today. It validates that a * dependent container is started before permitting other containers to start.

    *
  • COMPLETE - This condition validates that a dependent * container runs to completion (exits) before permitting other containers to * start. This can be useful for nonessential containers that run a script and then * exit. This condition can't be set on an essential container.

  • * SUCCESS - This condition is the same as COMPLETE, but * it also requires that the container exits with a zero status. This * condition can't be set on an essential container.

  • * HEALTHY - This condition validates that the dependent container * passes its Docker health check before permitting other containers to start. This * requires that the dependent container has health checks configured. This * condition is confirmed only at task startup.

*/ inline ContainerDependency& WithCondition(ContainerCondition&& value) { SetCondition(std::move(value)); return *this;} private: Aws::String m_containerName; bool m_containerNameHasBeenSet = false; ContainerCondition m_condition; bool m_conditionHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws