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

Information about a set of Amazon ECS tasks in an CodeDeploy deployment. An * Amazon ECS task set includes details such as the desired number of tasks, how * many tasks are running, and whether the task set serves production traffic. An * CodeDeploy application that uses the Amazon ECS compute platform deploys a * containerized application in an Amazon ECS service as a task set.

See * Also:

AWS * API Reference

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

A unique ID of an ECSTaskSet.

*/ inline const Aws::String& GetIdentifer() const{ return m_identifer; } /** *

A unique ID of an ECSTaskSet.

*/ inline bool IdentiferHasBeenSet() const { return m_identiferHasBeenSet; } /** *

A unique ID of an ECSTaskSet.

*/ inline void SetIdentifer(const Aws::String& value) { m_identiferHasBeenSet = true; m_identifer = value; } /** *

A unique ID of an ECSTaskSet.

*/ inline void SetIdentifer(Aws::String&& value) { m_identiferHasBeenSet = true; m_identifer = std::move(value); } /** *

A unique ID of an ECSTaskSet.

*/ inline void SetIdentifer(const char* value) { m_identiferHasBeenSet = true; m_identifer.assign(value); } /** *

A unique ID of an ECSTaskSet.

*/ inline ECSTaskSet& WithIdentifer(const Aws::String& value) { SetIdentifer(value); return *this;} /** *

A unique ID of an ECSTaskSet.

*/ inline ECSTaskSet& WithIdentifer(Aws::String&& value) { SetIdentifer(std::move(value)); return *this;} /** *

A unique ID of an ECSTaskSet.

*/ inline ECSTaskSet& WithIdentifer(const char* value) { SetIdentifer(value); return *this;} /** *

The number of tasks in a task set. During a deployment that uses the Amazon * ECS compute type, CodeDeploy instructs Amazon ECS to create a new task set and * uses this value to determine how many tasks to create. After the updated task * set is created, CodeDeploy shifts traffic to the new task set.

*/ inline long long GetDesiredCount() const{ return m_desiredCount; } /** *

The number of tasks in a task set. During a deployment that uses the Amazon * ECS compute type, CodeDeploy instructs Amazon ECS to create a new task set and * uses this value to determine how many tasks to create. After the updated task * set is created, CodeDeploy shifts traffic to the new task set.

*/ inline bool DesiredCountHasBeenSet() const { return m_desiredCountHasBeenSet; } /** *

The number of tasks in a task set. During a deployment that uses the Amazon * ECS compute type, CodeDeploy instructs Amazon ECS to create a new task set and * uses this value to determine how many tasks to create. After the updated task * set is created, CodeDeploy shifts traffic to the new task set.

*/ inline void SetDesiredCount(long long value) { m_desiredCountHasBeenSet = true; m_desiredCount = value; } /** *

The number of tasks in a task set. During a deployment that uses the Amazon * ECS compute type, CodeDeploy instructs Amazon ECS to create a new task set and * uses this value to determine how many tasks to create. After the updated task * set is created, CodeDeploy shifts traffic to the new task set.

*/ inline ECSTaskSet& WithDesiredCount(long long value) { SetDesiredCount(value); return *this;} /** *

The number of tasks in the task set that are in the PENDING * status during an Amazon ECS deployment. A task in the PENDING state * is preparing to enter the RUNNING state. A task set enters the * PENDING status when it launches for the first time, or when it is * restarted after being in the STOPPED state.

*/ inline long long GetPendingCount() const{ return m_pendingCount; } /** *

The number of tasks in the task set that are in the PENDING * status during an Amazon ECS deployment. A task in the PENDING state * is preparing to enter the RUNNING state. A task set enters the * PENDING status when it launches for the first time, or when it is * restarted after being in the STOPPED state.

*/ inline bool PendingCountHasBeenSet() const { return m_pendingCountHasBeenSet; } /** *

The number of tasks in the task set that are in the PENDING * status during an Amazon ECS deployment. A task in the PENDING state * is preparing to enter the RUNNING state. A task set enters the * PENDING status when it launches for the first time, or when it is * restarted after being in the STOPPED state.

*/ inline void SetPendingCount(long long value) { m_pendingCountHasBeenSet = true; m_pendingCount = value; } /** *

The number of tasks in the task set that are in the PENDING * status during an Amazon ECS deployment. A task in the PENDING state * is preparing to enter the RUNNING state. A task set enters the * PENDING status when it launches for the first time, or when it is * restarted after being in the STOPPED state.

*/ inline ECSTaskSet& WithPendingCount(long long value) { SetPendingCount(value); return *this;} /** *

The number of tasks in the task set that are in the RUNNING * status during an Amazon ECS deployment. A task in the RUNNING state * is running and ready for use.

*/ inline long long GetRunningCount() const{ return m_runningCount; } /** *

The number of tasks in the task set that are in the RUNNING * status during an Amazon ECS deployment. A task in the RUNNING state * is running and ready for use.

*/ inline bool RunningCountHasBeenSet() const { return m_runningCountHasBeenSet; } /** *

The number of tasks in the task set that are in the RUNNING * status during an Amazon ECS deployment. A task in the RUNNING state * is running and ready for use.

*/ inline void SetRunningCount(long long value) { m_runningCountHasBeenSet = true; m_runningCount = value; } /** *

The number of tasks in the task set that are in the RUNNING * status during an Amazon ECS deployment. A task in the RUNNING state * is running and ready for use.

*/ inline ECSTaskSet& WithRunningCount(long long value) { SetRunningCount(value); return *this;} /** *

The status of the task set. There are three valid task set statuses:

*
  • PRIMARY: Indicates the task set is serving production * traffic.

  • ACTIVE: Indicates the task set is not * serving production traffic.

  • DRAINING: Indicates * the tasks in the task set are being stopped and their corresponding targets are * being deregistered from their target group.

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

The status of the task set. There are three valid task set statuses:

*
  • PRIMARY: Indicates the task set is serving production * traffic.

  • ACTIVE: Indicates the task set is not * serving production traffic.

  • DRAINING: Indicates * the tasks in the task set are being stopped and their corresponding targets are * being deregistered from their target group.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the task set. There are three valid task set statuses:

*
  • PRIMARY: Indicates the task set is serving production * traffic.

  • ACTIVE: Indicates the task set is not * serving production traffic.

  • DRAINING: Indicates * the tasks in the task set are being stopped and their corresponding targets are * being deregistered from their target group.

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the task set. There are three valid task set statuses:

*
  • PRIMARY: Indicates the task set is serving production * traffic.

  • ACTIVE: Indicates the task set is not * serving production traffic.

  • DRAINING: Indicates * the tasks in the task set are being stopped and their corresponding targets are * being deregistered from their target group.

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the task set. There are three valid task set statuses:

*
  • PRIMARY: Indicates the task set is serving production * traffic.

  • ACTIVE: Indicates the task set is not * serving production traffic.

  • DRAINING: Indicates * the tasks in the task set are being stopped and their corresponding targets are * being deregistered from their target group.

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

The status of the task set. There are three valid task set statuses:

*
  • PRIMARY: Indicates the task set is serving production * traffic.

  • ACTIVE: Indicates the task set is not * serving production traffic.

  • DRAINING: Indicates * the tasks in the task set are being stopped and their corresponding targets are * being deregistered from their target group.

*/ inline ECSTaskSet& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

The status of the task set. There are three valid task set statuses:

*
  • PRIMARY: Indicates the task set is serving production * traffic.

  • ACTIVE: Indicates the task set is not * serving production traffic.

  • DRAINING: Indicates * the tasks in the task set are being stopped and their corresponding targets are * being deregistered from their target group.

*/ inline ECSTaskSet& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

The status of the task set. There are three valid task set statuses:

*
  • PRIMARY: Indicates the task set is serving production * traffic.

  • ACTIVE: Indicates the task set is not * serving production traffic.

  • DRAINING: Indicates * the tasks in the task set are being stopped and their corresponding targets are * being deregistered from their target group.

*/ inline ECSTaskSet& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

The percentage of traffic served by this task set.

*/ inline double GetTrafficWeight() const{ return m_trafficWeight; } /** *

The percentage of traffic served by this task set.

*/ inline bool TrafficWeightHasBeenSet() const { return m_trafficWeightHasBeenSet; } /** *

The percentage of traffic served by this task set.

*/ inline void SetTrafficWeight(double value) { m_trafficWeightHasBeenSet = true; m_trafficWeight = value; } /** *

The percentage of traffic served by this task set.

*/ inline ECSTaskSet& WithTrafficWeight(double value) { SetTrafficWeight(value); return *this;} /** *

The target group associated with the task set. The target group is used by * CodeDeploy to manage traffic to a task set.

*/ inline const TargetGroupInfo& GetTargetGroup() const{ return m_targetGroup; } /** *

The target group associated with the task set. The target group is used by * CodeDeploy to manage traffic to a task set.

*/ inline bool TargetGroupHasBeenSet() const { return m_targetGroupHasBeenSet; } /** *

The target group associated with the task set. The target group is used by * CodeDeploy to manage traffic to a task set.

*/ inline void SetTargetGroup(const TargetGroupInfo& value) { m_targetGroupHasBeenSet = true; m_targetGroup = value; } /** *

The target group associated with the task set. The target group is used by * CodeDeploy to manage traffic to a task set.

*/ inline void SetTargetGroup(TargetGroupInfo&& value) { m_targetGroupHasBeenSet = true; m_targetGroup = std::move(value); } /** *

The target group associated with the task set. The target group is used by * CodeDeploy to manage traffic to a task set.

*/ inline ECSTaskSet& WithTargetGroup(const TargetGroupInfo& value) { SetTargetGroup(value); return *this;} /** *

The target group associated with the task set. The target group is used by * CodeDeploy to manage traffic to a task set.

*/ inline ECSTaskSet& WithTargetGroup(TargetGroupInfo&& value) { SetTargetGroup(std::move(value)); return *this;} /** *

A label that identifies whether the ECS task set is an original target * (BLUE) or a replacement target (GREEN).

*/ inline const TargetLabel& GetTaskSetLabel() const{ return m_taskSetLabel; } /** *

A label that identifies whether the ECS task set is an original target * (BLUE) or a replacement target (GREEN).

*/ inline bool TaskSetLabelHasBeenSet() const { return m_taskSetLabelHasBeenSet; } /** *

A label that identifies whether the ECS task set is an original target * (BLUE) or a replacement target (GREEN).

*/ inline void SetTaskSetLabel(const TargetLabel& value) { m_taskSetLabelHasBeenSet = true; m_taskSetLabel = value; } /** *

A label that identifies whether the ECS task set is an original target * (BLUE) or a replacement target (GREEN).

*/ inline void SetTaskSetLabel(TargetLabel&& value) { m_taskSetLabelHasBeenSet = true; m_taskSetLabel = std::move(value); } /** *

A label that identifies whether the ECS task set is an original target * (BLUE) or a replacement target (GREEN).

*/ inline ECSTaskSet& WithTaskSetLabel(const TargetLabel& value) { SetTaskSetLabel(value); return *this;} /** *

A label that identifies whether the ECS task set is an original target * (BLUE) or a replacement target (GREEN).

*/ inline ECSTaskSet& WithTaskSetLabel(TargetLabel&& value) { SetTaskSetLabel(std::move(value)); return *this;} private: Aws::String m_identifer; bool m_identiferHasBeenSet = false; long long m_desiredCount; bool m_desiredCountHasBeenSet = false; long long m_pendingCount; bool m_pendingCountHasBeenSet = false; long long m_runningCount; bool m_runningCountHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; double m_trafficWeight; bool m_trafficWeightHasBeenSet = false; TargetGroupInfo m_targetGroup; bool m_targetGroupHasBeenSet = false; TargetLabel m_taskSetLabel; bool m_taskSetLabelHasBeenSet = false; }; } // namespace Model } // namespace CodeDeploy } // namespace Aws