/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The task placement strategy for a task or service.See Also:
* AWS
* API Reference
The field to apply the placement strategy against. For the spread placement
* strategy, valid values are instanceId
(or instanceId
,
* which has the same effect), or any platform or custom attribute that is applied
* to a container instance, such as attribute:ecs.availability-zone
.
* For the binpack placement strategy, valid values are cpu
and
* memory
. For the random placement strategy, this field is not
* used.
The field to apply the placement strategy against. For the spread placement
* strategy, valid values are instanceId
(or instanceId
,
* which has the same effect), or any platform or custom attribute that is applied
* to a container instance, such as attribute:ecs.availability-zone
.
* For the binpack placement strategy, valid values are cpu
and
* memory
. For the random placement strategy, this field is not
* used.
The field to apply the placement strategy against. For the spread placement
* strategy, valid values are instanceId
(or instanceId
,
* which has the same effect), or any platform or custom attribute that is applied
* to a container instance, such as attribute:ecs.availability-zone
.
* For the binpack placement strategy, valid values are cpu
and
* memory
. For the random placement strategy, this field is not
* used.
The field to apply the placement strategy against. For the spread placement
* strategy, valid values are instanceId
(or instanceId
,
* which has the same effect), or any platform or custom attribute that is applied
* to a container instance, such as attribute:ecs.availability-zone
.
* For the binpack placement strategy, valid values are cpu
and
* memory
. For the random placement strategy, this field is not
* used.
The field to apply the placement strategy against. For the spread placement
* strategy, valid values are instanceId
(or instanceId
,
* which has the same effect), or any platform or custom attribute that is applied
* to a container instance, such as attribute:ecs.availability-zone
.
* For the binpack placement strategy, valid values are cpu
and
* memory
. For the random placement strategy, this field is not
* used.
The field to apply the placement strategy against. For the spread placement
* strategy, valid values are instanceId
(or instanceId
,
* which has the same effect), or any platform or custom attribute that is applied
* to a container instance, such as attribute:ecs.availability-zone
.
* For the binpack placement strategy, valid values are cpu
and
* memory
. For the random placement strategy, this field is not
* used.
The field to apply the placement strategy against. For the spread placement
* strategy, valid values are instanceId
(or instanceId
,
* which has the same effect), or any platform or custom attribute that is applied
* to a container instance, such as attribute:ecs.availability-zone
.
* For the binpack placement strategy, valid values are cpu
and
* memory
. For the random placement strategy, this field is not
* used.
The field to apply the placement strategy against. For the spread placement
* strategy, valid values are instanceId
(or instanceId
,
* which has the same effect), or any platform or custom attribute that is applied
* to a container instance, such as attribute:ecs.availability-zone
.
* For the binpack placement strategy, valid values are cpu
and
* memory
. For the random placement strategy, this field is not
* used.
The type of placement strategy. The random placement strategy randomly places * tasks on available candidates. The spread placement strategy spreads placement * across available candidates evenly based on the field parameter. The binpack * strategy places tasks on available candidates that have the least available * amount of the resource that is specified with the field parameter. For example, * if you binpack on memory, a task is placed on the instance with the least amount * of remaining memory (but still enough to run the task).
*/ inline const PlacementStrategyType& GetType() const{ return m_type; } /** *The type of placement strategy. The random placement strategy randomly places * tasks on available candidates. The spread placement strategy spreads placement * across available candidates evenly based on the field parameter. The binpack * strategy places tasks on available candidates that have the least available * amount of the resource that is specified with the field parameter. For example, * if you binpack on memory, a task is placed on the instance with the least amount * of remaining memory (but still enough to run the task).
*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *The type of placement strategy. The random placement strategy randomly places * tasks on available candidates. The spread placement strategy spreads placement * across available candidates evenly based on the field parameter. The binpack * strategy places tasks on available candidates that have the least available * amount of the resource that is specified with the field parameter. For example, * if you binpack on memory, a task is placed on the instance with the least amount * of remaining memory (but still enough to run the task).
*/ inline void SetType(const PlacementStrategyType& value) { m_typeHasBeenSet = true; m_type = value; } /** *The type of placement strategy. The random placement strategy randomly places * tasks on available candidates. The spread placement strategy spreads placement * across available candidates evenly based on the field parameter. The binpack * strategy places tasks on available candidates that have the least available * amount of the resource that is specified with the field parameter. For example, * if you binpack on memory, a task is placed on the instance with the least amount * of remaining memory (but still enough to run the task).
*/ inline void SetType(PlacementStrategyType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *The type of placement strategy. The random placement strategy randomly places * tasks on available candidates. The spread placement strategy spreads placement * across available candidates evenly based on the field parameter. The binpack * strategy places tasks on available candidates that have the least available * amount of the resource that is specified with the field parameter. For example, * if you binpack on memory, a task is placed on the instance with the least amount * of remaining memory (but still enough to run the task).
*/ inline PlacementStrategy& WithType(const PlacementStrategyType& value) { SetType(value); return *this;} /** *The type of placement strategy. The random placement strategy randomly places * tasks on available candidates. The spread placement strategy spreads placement * across available candidates evenly based on the field parameter. The binpack * strategy places tasks on available candidates that have the least available * amount of the resource that is specified with the field parameter. For example, * if you binpack on memory, a task is placed on the instance with the least amount * of remaining memory (but still enough to run the task).
*/ inline PlacementStrategy& WithType(PlacementStrategyType&& value) { SetType(std::move(value)); return *this;} private: Aws::String m_field; bool m_fieldHasBeenSet = false; PlacementStrategyType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace Scheduler } // namespace Aws