AWS SDK for C++

AWS SDK for C++ Version 1.11.718

Loading...
Searching...
No Matches
InstanceResizePolicy.h
1
6#pragma once
7#include <aws/core/utils/memory/stl/AWSString.h>
8#include <aws/core/utils/memory/stl/AWSVector.h>
9#include <aws/elasticmapreduce/EMR_EXPORTS.h>
10
11#include <utility>
12
13namespace Aws {
14namespace Utils {
15namespace Json {
16class JsonValue;
17class JsonView;
18} // namespace Json
19} // namespace Utils
20namespace EMR {
21namespace Model {
22
31 public:
32 AWS_EMR_API InstanceResizePolicy() = default;
36
38
42 inline const Aws::Vector<Aws::String>& GetInstancesToTerminate() const { return m_instancesToTerminate; }
43 inline bool InstancesToTerminateHasBeenSet() const { return m_instancesToTerminateHasBeenSet; }
44 template <typename InstancesToTerminateT = Aws::Vector<Aws::String>>
45 void SetInstancesToTerminate(InstancesToTerminateT&& value) {
46 m_instancesToTerminateHasBeenSet = true;
47 m_instancesToTerminate = std::forward<InstancesToTerminateT>(value);
48 }
49 template <typename InstancesToTerminateT = Aws::Vector<Aws::String>>
50 InstanceResizePolicy& WithInstancesToTerminate(InstancesToTerminateT&& value) {
51 SetInstancesToTerminate(std::forward<InstancesToTerminateT>(value));
52 return *this;
53 }
54 template <typename InstancesToTerminateT = Aws::String>
55 InstanceResizePolicy& AddInstancesToTerminate(InstancesToTerminateT&& value) {
56 m_instancesToTerminateHasBeenSet = true;
57 m_instancesToTerminate.emplace_back(std::forward<InstancesToTerminateT>(value));
58 return *this;
59 }
61
63
67 inline const Aws::Vector<Aws::String>& GetInstancesToProtect() const { return m_instancesToProtect; }
68 inline bool InstancesToProtectHasBeenSet() const { return m_instancesToProtectHasBeenSet; }
69 template <typename InstancesToProtectT = Aws::Vector<Aws::String>>
70 void SetInstancesToProtect(InstancesToProtectT&& value) {
71 m_instancesToProtectHasBeenSet = true;
72 m_instancesToProtect = std::forward<InstancesToProtectT>(value);
73 }
74 template <typename InstancesToProtectT = Aws::Vector<Aws::String>>
75 InstanceResizePolicy& WithInstancesToProtect(InstancesToProtectT&& value) {
76 SetInstancesToProtect(std::forward<InstancesToProtectT>(value));
77 return *this;
78 }
79 template <typename InstancesToProtectT = Aws::String>
80 InstanceResizePolicy& AddInstancesToProtect(InstancesToProtectT&& value) {
81 m_instancesToProtectHasBeenSet = true;
82 m_instancesToProtect.emplace_back(std::forward<InstancesToProtectT>(value));
83 return *this;
84 }
86
88
92 inline int GetInstanceTerminationTimeout() const { return m_instanceTerminationTimeout; }
93 inline bool InstanceTerminationTimeoutHasBeenSet() const { return m_instanceTerminationTimeoutHasBeenSet; }
94 inline void SetInstanceTerminationTimeout(int value) {
95 m_instanceTerminationTimeoutHasBeenSet = true;
96 m_instanceTerminationTimeout = value;
97 }
100 return *this;
101 }
103 private:
104 Aws::Vector<Aws::String> m_instancesToTerminate;
105
106 Aws::Vector<Aws::String> m_instancesToProtect;
107
108 int m_instanceTerminationTimeout{0};
109 bool m_instancesToTerminateHasBeenSet = false;
110 bool m_instancesToProtectHasBeenSet = false;
111 bool m_instanceTerminationTimeoutHasBeenSet = false;
112};
113
114} // namespace Model
115} // namespace EMR
116} // namespace Aws
InstanceResizePolicy & WithInstanceTerminationTimeout(int value)
InstanceResizePolicy & WithInstancesToProtect(InstancesToProtectT &&value)
InstanceResizePolicy & AddInstancesToTerminate(InstancesToTerminateT &&value)
AWS_EMR_API Aws::Utils::Json::JsonValue Jsonize() const
void SetInstancesToProtect(InstancesToProtectT &&value)
const Aws::Vector< Aws::String > & GetInstancesToProtect() const
const Aws::Vector< Aws::String > & GetInstancesToTerminate() const
InstanceResizePolicy & AddInstancesToProtect(InstancesToProtectT &&value)
AWS_EMR_API InstanceResizePolicy & operator=(Aws::Utils::Json::JsonView jsonValue)
void SetInstancesToTerminate(InstancesToTerminateT &&value)
AWS_EMR_API InstanceResizePolicy()=default
InstanceResizePolicy & WithInstancesToTerminate(InstancesToTerminateT &&value)
AWS_EMR_API InstanceResizePolicy(Aws::Utils::Json::JsonView jsonValue)
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue