/** * 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 enable * 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 are 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 using the Fargate launch type, this parameter * requires that the task or service uses platform version 1.3.0 or later.

*

See Also:

AWS * API Reference

*/ class AWS_ECS_API ContainerDependency { public: ContainerDependency(); ContainerDependency(Aws::Utils::Json::JsonView jsonValue); ContainerDependency& operator=(Aws::Utils::Json::JsonView jsonValue); 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.

  • SUCCESS - This condition is the same as * COMPLETE, but it also requires that the container exits with a * zero status.

  • 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.

  • SUCCESS - This condition is the same as * COMPLETE, but it also requires that the container exits with a * zero status.

  • 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.

  • SUCCESS - This condition is the same as * COMPLETE, but it also requires that the container exits with a * zero status.

  • 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.

  • SUCCESS - This condition is the same as * COMPLETE, but it also requires that the container exits with a * zero status.

  • 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.

  • SUCCESS - This condition is the same as * COMPLETE, but it also requires that the container exits with a * zero status.

  • 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.

  • SUCCESS - This condition is the same as * COMPLETE, but it also requires that the container exits with a * zero status.

  • 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; ContainerCondition m_condition; bool m_conditionHasBeenSet; }; } // namespace Model } // namespace ECS } // namespace Aws