AWS SDK for C++

AWS SDK for C++ Version 1.11.751

Loading...
Searching...
No Matches
ManagedAutoScaling.h
1
6#pragma once
7#include <aws/core/utils/memory/stl/AWSVector.h>
8#include <aws/ecs/ECS_EXPORTS.h>
9#include <aws/ecs/model/ManagedApplicationAutoScalingPolicy.h>
10#include <aws/ecs/model/ManagedScalableTarget.h>
11
12#include <utility>
13
14namespace Aws {
15namespace Utils {
16namespace Json {
17class JsonValue;
18class JsonView;
19} // namespace Json
20} // namespace Utils
21namespace ECS {
22namespace Model {
23
31 public:
32 AWS_ECS_API ManagedAutoScaling() = default;
36
38
41 inline const ManagedScalableTarget& GetScalableTarget() const { return m_scalableTarget; }
42 inline bool ScalableTargetHasBeenSet() const { return m_scalableTargetHasBeenSet; }
43 template <typename ScalableTargetT = ManagedScalableTarget>
44 void SetScalableTarget(ScalableTargetT&& value) {
45 m_scalableTargetHasBeenSet = true;
46 m_scalableTarget = std::forward<ScalableTargetT>(value);
47 }
48 template <typename ScalableTargetT = ManagedScalableTarget>
49 ManagedAutoScaling& WithScalableTarget(ScalableTargetT&& value) {
50 SetScalableTarget(std::forward<ScalableTargetT>(value));
51 return *this;
52 }
54
56
60 return m_applicationAutoScalingPolicies;
61 }
62 inline bool ApplicationAutoScalingPoliciesHasBeenSet() const { return m_applicationAutoScalingPoliciesHasBeenSet; }
63 template <typename ApplicationAutoScalingPoliciesT = Aws::Vector<ManagedApplicationAutoScalingPolicy>>
64 void SetApplicationAutoScalingPolicies(ApplicationAutoScalingPoliciesT&& value) {
65 m_applicationAutoScalingPoliciesHasBeenSet = true;
66 m_applicationAutoScalingPolicies = std::forward<ApplicationAutoScalingPoliciesT>(value);
67 }
68 template <typename ApplicationAutoScalingPoliciesT = Aws::Vector<ManagedApplicationAutoScalingPolicy>>
69 ManagedAutoScaling& WithApplicationAutoScalingPolicies(ApplicationAutoScalingPoliciesT&& value) {
70 SetApplicationAutoScalingPolicies(std::forward<ApplicationAutoScalingPoliciesT>(value));
71 return *this;
72 }
73 template <typename ApplicationAutoScalingPoliciesT = ManagedApplicationAutoScalingPolicy>
74 ManagedAutoScaling& AddApplicationAutoScalingPolicies(ApplicationAutoScalingPoliciesT&& value) {
75 m_applicationAutoScalingPoliciesHasBeenSet = true;
76 m_applicationAutoScalingPolicies.emplace_back(std::forward<ApplicationAutoScalingPoliciesT>(value));
77 return *this;
78 }
80 private:
81 ManagedScalableTarget m_scalableTarget;
82
83 Aws::Vector<ManagedApplicationAutoScalingPolicy> m_applicationAutoScalingPolicies;
84 bool m_scalableTargetHasBeenSet = false;
85 bool m_applicationAutoScalingPoliciesHasBeenSet = false;
86};
87
88} // namespace Model
89} // namespace ECS
90} // namespace Aws
AWS_ECS_API ManagedAutoScaling()=default
const ManagedScalableTarget & GetScalableTarget() const
void SetScalableTarget(ScalableTargetT &&value)
const Aws::Vector< ManagedApplicationAutoScalingPolicy > & GetApplicationAutoScalingPolicies() const
void SetApplicationAutoScalingPolicies(ApplicationAutoScalingPoliciesT &&value)
AWS_ECS_API Aws::Utils::Json::JsonValue Jsonize() const
AWS_ECS_API ManagedAutoScaling & operator=(Aws::Utils::Json::JsonView jsonValue)
ManagedAutoScaling & WithApplicationAutoScalingPolicies(ApplicationAutoScalingPoliciesT &&value)
AWS_ECS_API ManagedAutoScaling(Aws::Utils::Json::JsonView jsonValue)
ManagedAutoScaling & WithScalableTarget(ScalableTargetT &&value)
ManagedAutoScaling & AddApplicationAutoScalingPolicies(ApplicationAutoScalingPoliciesT &&value)
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue