/** * 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 Batch { namespace Model { /** *

The fair share policy for a scheduling policy.

See Also:

AWS * API Reference

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

The amount of time (in seconds) to use to calculate a fair share percentage * for each fair share identifier in use. A value of zero (0) indicates that only * current usage is measured. The decay allows for more recently run jobs to have * more weight than jobs that ran earlier. The maximum supported value is 604800 (1 * week).

*/ inline int GetShareDecaySeconds() const{ return m_shareDecaySeconds; } /** *

The amount of time (in seconds) to use to calculate a fair share percentage * for each fair share identifier in use. A value of zero (0) indicates that only * current usage is measured. The decay allows for more recently run jobs to have * more weight than jobs that ran earlier. The maximum supported value is 604800 (1 * week).

*/ inline bool ShareDecaySecondsHasBeenSet() const { return m_shareDecaySecondsHasBeenSet; } /** *

The amount of time (in seconds) to use to calculate a fair share percentage * for each fair share identifier in use. A value of zero (0) indicates that only * current usage is measured. The decay allows for more recently run jobs to have * more weight than jobs that ran earlier. The maximum supported value is 604800 (1 * week).

*/ inline void SetShareDecaySeconds(int value) { m_shareDecaySecondsHasBeenSet = true; m_shareDecaySeconds = value; } /** *

The amount of time (in seconds) to use to calculate a fair share percentage * for each fair share identifier in use. A value of zero (0) indicates that only * current usage is measured. The decay allows for more recently run jobs to have * more weight than jobs that ran earlier. The maximum supported value is 604800 (1 * week).

*/ inline FairsharePolicy& WithShareDecaySeconds(int value) { SetShareDecaySeconds(value); return *this;} /** *

A value used to reserve some of the available maximum vCPU for fair share * identifiers that aren't already used.

The reserved ratio is * (computeReservation/100)^ActiveFairShares where * ActiveFairShares is the number of active fair share * identifiers.

For example, a computeReservation value of 50 * indicates that Batchreserves 50% of the maximum available vCPU if there's only * one fair share identifier. It reserves 25% if there are two fair share * identifiers. It reserves 12.5% if there are three fair share identifiers. A * computeReservation value of 25 indicates that Batch should reserve * 25% of the maximum available vCPU if there's only one fair share identifier, * 6.25% if there are two fair share identifiers, and 1.56% if there are three fair * share identifiers.

The minimum value is 0 and the maximum value is * 99.

*/ inline int GetComputeReservation() const{ return m_computeReservation; } /** *

A value used to reserve some of the available maximum vCPU for fair share * identifiers that aren't already used.

The reserved ratio is * (computeReservation/100)^ActiveFairShares where * ActiveFairShares is the number of active fair share * identifiers.

For example, a computeReservation value of 50 * indicates that Batchreserves 50% of the maximum available vCPU if there's only * one fair share identifier. It reserves 25% if there are two fair share * identifiers. It reserves 12.5% if there are three fair share identifiers. A * computeReservation value of 25 indicates that Batch should reserve * 25% of the maximum available vCPU if there's only one fair share identifier, * 6.25% if there are two fair share identifiers, and 1.56% if there are three fair * share identifiers.

The minimum value is 0 and the maximum value is * 99.

*/ inline bool ComputeReservationHasBeenSet() const { return m_computeReservationHasBeenSet; } /** *

A value used to reserve some of the available maximum vCPU for fair share * identifiers that aren't already used.

The reserved ratio is * (computeReservation/100)^ActiveFairShares where * ActiveFairShares is the number of active fair share * identifiers.

For example, a computeReservation value of 50 * indicates that Batchreserves 50% of the maximum available vCPU if there's only * one fair share identifier. It reserves 25% if there are two fair share * identifiers. It reserves 12.5% if there are three fair share identifiers. A * computeReservation value of 25 indicates that Batch should reserve * 25% of the maximum available vCPU if there's only one fair share identifier, * 6.25% if there are two fair share identifiers, and 1.56% if there are three fair * share identifiers.

The minimum value is 0 and the maximum value is * 99.

*/ inline void SetComputeReservation(int value) { m_computeReservationHasBeenSet = true; m_computeReservation = value; } /** *

A value used to reserve some of the available maximum vCPU for fair share * identifiers that aren't already used.

The reserved ratio is * (computeReservation/100)^ActiveFairShares where * ActiveFairShares is the number of active fair share * identifiers.

For example, a computeReservation value of 50 * indicates that Batchreserves 50% of the maximum available vCPU if there's only * one fair share identifier. It reserves 25% if there are two fair share * identifiers. It reserves 12.5% if there are three fair share identifiers. A * computeReservation value of 25 indicates that Batch should reserve * 25% of the maximum available vCPU if there's only one fair share identifier, * 6.25% if there are two fair share identifiers, and 1.56% if there are three fair * share identifiers.

The minimum value is 0 and the maximum value is * 99.

*/ inline FairsharePolicy& WithComputeReservation(int value) { SetComputeReservation(value); return *this;} /** *

An array of SharedIdentifier objects that contain the weights * for the fair share identifiers for the fair share policy. Fair share identifiers * that aren't included have a default weight of 1.0.

*/ inline const Aws::Vector& GetShareDistribution() const{ return m_shareDistribution; } /** *

An array of SharedIdentifier objects that contain the weights * for the fair share identifiers for the fair share policy. Fair share identifiers * that aren't included have a default weight of 1.0.

*/ inline bool ShareDistributionHasBeenSet() const { return m_shareDistributionHasBeenSet; } /** *

An array of SharedIdentifier objects that contain the weights * for the fair share identifiers for the fair share policy. Fair share identifiers * that aren't included have a default weight of 1.0.

*/ inline void SetShareDistribution(const Aws::Vector& value) { m_shareDistributionHasBeenSet = true; m_shareDistribution = value; } /** *

An array of SharedIdentifier objects that contain the weights * for the fair share identifiers for the fair share policy. Fair share identifiers * that aren't included have a default weight of 1.0.

*/ inline void SetShareDistribution(Aws::Vector&& value) { m_shareDistributionHasBeenSet = true; m_shareDistribution = std::move(value); } /** *

An array of SharedIdentifier objects that contain the weights * for the fair share identifiers for the fair share policy. Fair share identifiers * that aren't included have a default weight of 1.0.

*/ inline FairsharePolicy& WithShareDistribution(const Aws::Vector& value) { SetShareDistribution(value); return *this;} /** *

An array of SharedIdentifier objects that contain the weights * for the fair share identifiers for the fair share policy. Fair share identifiers * that aren't included have a default weight of 1.0.

*/ inline FairsharePolicy& WithShareDistribution(Aws::Vector&& value) { SetShareDistribution(std::move(value)); return *this;} /** *

An array of SharedIdentifier objects that contain the weights * for the fair share identifiers for the fair share policy. Fair share identifiers * that aren't included have a default weight of 1.0.

*/ inline FairsharePolicy& AddShareDistribution(const ShareAttributes& value) { m_shareDistributionHasBeenSet = true; m_shareDistribution.push_back(value); return *this; } /** *

An array of SharedIdentifier objects that contain the weights * for the fair share identifiers for the fair share policy. Fair share identifiers * that aren't included have a default weight of 1.0.

*/ inline FairsharePolicy& AddShareDistribution(ShareAttributes&& value) { m_shareDistributionHasBeenSet = true; m_shareDistribution.push_back(std::move(value)); return *this; } private: int m_shareDecaySeconds; bool m_shareDecaySecondsHasBeenSet = false; int m_computeReservation; bool m_computeReservationHasBeenSet = false; Aws::Vector m_shareDistribution; bool m_shareDistributionHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws