1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/ssm/SSM_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace SSM
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>The combination of Amazon Web Services Regions and Amazon Web Services
29    * accounts targeted by the current Automation execution.</p><p><h3>See Also:</h3>
30    * <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/TargetLocation">AWS
32    * API Reference</a></p>
33    */
34   class AWS_SSM_API TargetLocation
35   {
36   public:
37     TargetLocation();
38     TargetLocation(Aws::Utils::Json::JsonView jsonValue);
39     TargetLocation& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The Amazon Web Services accounts targeted by the current Automation
45      * execution.</p>
46      */
GetAccounts()47     inline const Aws::Vector<Aws::String>& GetAccounts() const{ return m_accounts; }
48 
49     /**
50      * <p>The Amazon Web Services accounts targeted by the current Automation
51      * execution.</p>
52      */
AccountsHasBeenSet()53     inline bool AccountsHasBeenSet() const { return m_accountsHasBeenSet; }
54 
55     /**
56      * <p>The Amazon Web Services accounts targeted by the current Automation
57      * execution.</p>
58      */
SetAccounts(const Aws::Vector<Aws::String> & value)59     inline void SetAccounts(const Aws::Vector<Aws::String>& value) { m_accountsHasBeenSet = true; m_accounts = value; }
60 
61     /**
62      * <p>The Amazon Web Services accounts targeted by the current Automation
63      * execution.</p>
64      */
SetAccounts(Aws::Vector<Aws::String> && value)65     inline void SetAccounts(Aws::Vector<Aws::String>&& value) { m_accountsHasBeenSet = true; m_accounts = std::move(value); }
66 
67     /**
68      * <p>The Amazon Web Services accounts targeted by the current Automation
69      * execution.</p>
70      */
WithAccounts(const Aws::Vector<Aws::String> & value)71     inline TargetLocation& WithAccounts(const Aws::Vector<Aws::String>& value) { SetAccounts(value); return *this;}
72 
73     /**
74      * <p>The Amazon Web Services accounts targeted by the current Automation
75      * execution.</p>
76      */
WithAccounts(Aws::Vector<Aws::String> && value)77     inline TargetLocation& WithAccounts(Aws::Vector<Aws::String>&& value) { SetAccounts(std::move(value)); return *this;}
78 
79     /**
80      * <p>The Amazon Web Services accounts targeted by the current Automation
81      * execution.</p>
82      */
AddAccounts(const Aws::String & value)83     inline TargetLocation& AddAccounts(const Aws::String& value) { m_accountsHasBeenSet = true; m_accounts.push_back(value); return *this; }
84 
85     /**
86      * <p>The Amazon Web Services accounts targeted by the current Automation
87      * execution.</p>
88      */
AddAccounts(Aws::String && value)89     inline TargetLocation& AddAccounts(Aws::String&& value) { m_accountsHasBeenSet = true; m_accounts.push_back(std::move(value)); return *this; }
90 
91     /**
92      * <p>The Amazon Web Services accounts targeted by the current Automation
93      * execution.</p>
94      */
AddAccounts(const char * value)95     inline TargetLocation& AddAccounts(const char* value) { m_accountsHasBeenSet = true; m_accounts.push_back(value); return *this; }
96 
97 
98     /**
99      * <p>The Amazon Web Services Regions targeted by the current Automation
100      * execution.</p>
101      */
GetRegions()102     inline const Aws::Vector<Aws::String>& GetRegions() const{ return m_regions; }
103 
104     /**
105      * <p>The Amazon Web Services Regions targeted by the current Automation
106      * execution.</p>
107      */
RegionsHasBeenSet()108     inline bool RegionsHasBeenSet() const { return m_regionsHasBeenSet; }
109 
110     /**
111      * <p>The Amazon Web Services Regions targeted by the current Automation
112      * execution.</p>
113      */
SetRegions(const Aws::Vector<Aws::String> & value)114     inline void SetRegions(const Aws::Vector<Aws::String>& value) { m_regionsHasBeenSet = true; m_regions = value; }
115 
116     /**
117      * <p>The Amazon Web Services Regions targeted by the current Automation
118      * execution.</p>
119      */
SetRegions(Aws::Vector<Aws::String> && value)120     inline void SetRegions(Aws::Vector<Aws::String>&& value) { m_regionsHasBeenSet = true; m_regions = std::move(value); }
121 
122     /**
123      * <p>The Amazon Web Services Regions targeted by the current Automation
124      * execution.</p>
125      */
WithRegions(const Aws::Vector<Aws::String> & value)126     inline TargetLocation& WithRegions(const Aws::Vector<Aws::String>& value) { SetRegions(value); return *this;}
127 
128     /**
129      * <p>The Amazon Web Services Regions targeted by the current Automation
130      * execution.</p>
131      */
WithRegions(Aws::Vector<Aws::String> && value)132     inline TargetLocation& WithRegions(Aws::Vector<Aws::String>&& value) { SetRegions(std::move(value)); return *this;}
133 
134     /**
135      * <p>The Amazon Web Services Regions targeted by the current Automation
136      * execution.</p>
137      */
AddRegions(const Aws::String & value)138     inline TargetLocation& AddRegions(const Aws::String& value) { m_regionsHasBeenSet = true; m_regions.push_back(value); return *this; }
139 
140     /**
141      * <p>The Amazon Web Services Regions targeted by the current Automation
142      * execution.</p>
143      */
AddRegions(Aws::String && value)144     inline TargetLocation& AddRegions(Aws::String&& value) { m_regionsHasBeenSet = true; m_regions.push_back(std::move(value)); return *this; }
145 
146     /**
147      * <p>The Amazon Web Services Regions targeted by the current Automation
148      * execution.</p>
149      */
AddRegions(const char * value)150     inline TargetLocation& AddRegions(const char* value) { m_regionsHasBeenSet = true; m_regions.push_back(value); return *this; }
151 
152 
153     /**
154      * <p>The maximum number of Amazon Web Services Regions and Amazon Web Services
155      * accounts allowed to run the Automation concurrently.</p>
156      */
GetTargetLocationMaxConcurrency()157     inline const Aws::String& GetTargetLocationMaxConcurrency() const{ return m_targetLocationMaxConcurrency; }
158 
159     /**
160      * <p>The maximum number of Amazon Web Services Regions and Amazon Web Services
161      * accounts allowed to run the Automation concurrently.</p>
162      */
TargetLocationMaxConcurrencyHasBeenSet()163     inline bool TargetLocationMaxConcurrencyHasBeenSet() const { return m_targetLocationMaxConcurrencyHasBeenSet; }
164 
165     /**
166      * <p>The maximum number of Amazon Web Services Regions and Amazon Web Services
167      * accounts allowed to run the Automation concurrently.</p>
168      */
SetTargetLocationMaxConcurrency(const Aws::String & value)169     inline void SetTargetLocationMaxConcurrency(const Aws::String& value) { m_targetLocationMaxConcurrencyHasBeenSet = true; m_targetLocationMaxConcurrency = value; }
170 
171     /**
172      * <p>The maximum number of Amazon Web Services Regions and Amazon Web Services
173      * accounts allowed to run the Automation concurrently.</p>
174      */
SetTargetLocationMaxConcurrency(Aws::String && value)175     inline void SetTargetLocationMaxConcurrency(Aws::String&& value) { m_targetLocationMaxConcurrencyHasBeenSet = true; m_targetLocationMaxConcurrency = std::move(value); }
176 
177     /**
178      * <p>The maximum number of Amazon Web Services Regions and Amazon Web Services
179      * accounts allowed to run the Automation concurrently.</p>
180      */
SetTargetLocationMaxConcurrency(const char * value)181     inline void SetTargetLocationMaxConcurrency(const char* value) { m_targetLocationMaxConcurrencyHasBeenSet = true; m_targetLocationMaxConcurrency.assign(value); }
182 
183     /**
184      * <p>The maximum number of Amazon Web Services Regions and Amazon Web Services
185      * accounts allowed to run the Automation concurrently.</p>
186      */
WithTargetLocationMaxConcurrency(const Aws::String & value)187     inline TargetLocation& WithTargetLocationMaxConcurrency(const Aws::String& value) { SetTargetLocationMaxConcurrency(value); return *this;}
188 
189     /**
190      * <p>The maximum number of Amazon Web Services Regions and Amazon Web Services
191      * accounts allowed to run the Automation concurrently.</p>
192      */
WithTargetLocationMaxConcurrency(Aws::String && value)193     inline TargetLocation& WithTargetLocationMaxConcurrency(Aws::String&& value) { SetTargetLocationMaxConcurrency(std::move(value)); return *this;}
194 
195     /**
196      * <p>The maximum number of Amazon Web Services Regions and Amazon Web Services
197      * accounts allowed to run the Automation concurrently.</p>
198      */
WithTargetLocationMaxConcurrency(const char * value)199     inline TargetLocation& WithTargetLocationMaxConcurrency(const char* value) { SetTargetLocationMaxConcurrency(value); return *this;}
200 
201 
202     /**
203      * <p>The maximum number of errors allowed before the system stops queueing
204      * additional Automation executions for the currently running Automation.</p>
205      */
GetTargetLocationMaxErrors()206     inline const Aws::String& GetTargetLocationMaxErrors() const{ return m_targetLocationMaxErrors; }
207 
208     /**
209      * <p>The maximum number of errors allowed before the system stops queueing
210      * additional Automation executions for the currently running Automation.</p>
211      */
TargetLocationMaxErrorsHasBeenSet()212     inline bool TargetLocationMaxErrorsHasBeenSet() const { return m_targetLocationMaxErrorsHasBeenSet; }
213 
214     /**
215      * <p>The maximum number of errors allowed before the system stops queueing
216      * additional Automation executions for the currently running Automation.</p>
217      */
SetTargetLocationMaxErrors(const Aws::String & value)218     inline void SetTargetLocationMaxErrors(const Aws::String& value) { m_targetLocationMaxErrorsHasBeenSet = true; m_targetLocationMaxErrors = value; }
219 
220     /**
221      * <p>The maximum number of errors allowed before the system stops queueing
222      * additional Automation executions for the currently running Automation.</p>
223      */
SetTargetLocationMaxErrors(Aws::String && value)224     inline void SetTargetLocationMaxErrors(Aws::String&& value) { m_targetLocationMaxErrorsHasBeenSet = true; m_targetLocationMaxErrors = std::move(value); }
225 
226     /**
227      * <p>The maximum number of errors allowed before the system stops queueing
228      * additional Automation executions for the currently running Automation.</p>
229      */
SetTargetLocationMaxErrors(const char * value)230     inline void SetTargetLocationMaxErrors(const char* value) { m_targetLocationMaxErrorsHasBeenSet = true; m_targetLocationMaxErrors.assign(value); }
231 
232     /**
233      * <p>The maximum number of errors allowed before the system stops queueing
234      * additional Automation executions for the currently running Automation.</p>
235      */
WithTargetLocationMaxErrors(const Aws::String & value)236     inline TargetLocation& WithTargetLocationMaxErrors(const Aws::String& value) { SetTargetLocationMaxErrors(value); return *this;}
237 
238     /**
239      * <p>The maximum number of errors allowed before the system stops queueing
240      * additional Automation executions for the currently running Automation.</p>
241      */
WithTargetLocationMaxErrors(Aws::String && value)242     inline TargetLocation& WithTargetLocationMaxErrors(Aws::String&& value) { SetTargetLocationMaxErrors(std::move(value)); return *this;}
243 
244     /**
245      * <p>The maximum number of errors allowed before the system stops queueing
246      * additional Automation executions for the currently running Automation.</p>
247      */
WithTargetLocationMaxErrors(const char * value)248     inline TargetLocation& WithTargetLocationMaxErrors(const char* value) { SetTargetLocationMaxErrors(value); return *this;}
249 
250 
251     /**
252      * <p>The Automation execution role used by the currently running Automation. If
253      * not specified, the default value is
254      * <code>AWS-SystemsManager-AutomationExecutionRole</code>.</p>
255      */
GetExecutionRoleName()256     inline const Aws::String& GetExecutionRoleName() const{ return m_executionRoleName; }
257 
258     /**
259      * <p>The Automation execution role used by the currently running Automation. If
260      * not specified, the default value is
261      * <code>AWS-SystemsManager-AutomationExecutionRole</code>.</p>
262      */
ExecutionRoleNameHasBeenSet()263     inline bool ExecutionRoleNameHasBeenSet() const { return m_executionRoleNameHasBeenSet; }
264 
265     /**
266      * <p>The Automation execution role used by the currently running Automation. If
267      * not specified, the default value is
268      * <code>AWS-SystemsManager-AutomationExecutionRole</code>.</p>
269      */
SetExecutionRoleName(const Aws::String & value)270     inline void SetExecutionRoleName(const Aws::String& value) { m_executionRoleNameHasBeenSet = true; m_executionRoleName = value; }
271 
272     /**
273      * <p>The Automation execution role used by the currently running Automation. If
274      * not specified, the default value is
275      * <code>AWS-SystemsManager-AutomationExecutionRole</code>.</p>
276      */
SetExecutionRoleName(Aws::String && value)277     inline void SetExecutionRoleName(Aws::String&& value) { m_executionRoleNameHasBeenSet = true; m_executionRoleName = std::move(value); }
278 
279     /**
280      * <p>The Automation execution role used by the currently running Automation. If
281      * not specified, the default value is
282      * <code>AWS-SystemsManager-AutomationExecutionRole</code>.</p>
283      */
SetExecutionRoleName(const char * value)284     inline void SetExecutionRoleName(const char* value) { m_executionRoleNameHasBeenSet = true; m_executionRoleName.assign(value); }
285 
286     /**
287      * <p>The Automation execution role used by the currently running Automation. If
288      * not specified, the default value is
289      * <code>AWS-SystemsManager-AutomationExecutionRole</code>.</p>
290      */
WithExecutionRoleName(const Aws::String & value)291     inline TargetLocation& WithExecutionRoleName(const Aws::String& value) { SetExecutionRoleName(value); return *this;}
292 
293     /**
294      * <p>The Automation execution role used by the currently running Automation. If
295      * not specified, the default value is
296      * <code>AWS-SystemsManager-AutomationExecutionRole</code>.</p>
297      */
WithExecutionRoleName(Aws::String && value)298     inline TargetLocation& WithExecutionRoleName(Aws::String&& value) { SetExecutionRoleName(std::move(value)); return *this;}
299 
300     /**
301      * <p>The Automation execution role used by the currently running Automation. If
302      * not specified, the default value is
303      * <code>AWS-SystemsManager-AutomationExecutionRole</code>.</p>
304      */
WithExecutionRoleName(const char * value)305     inline TargetLocation& WithExecutionRoleName(const char* value) { SetExecutionRoleName(value); return *this;}
306 
307   private:
308 
309     Aws::Vector<Aws::String> m_accounts;
310     bool m_accountsHasBeenSet;
311 
312     Aws::Vector<Aws::String> m_regions;
313     bool m_regionsHasBeenSet;
314 
315     Aws::String m_targetLocationMaxConcurrency;
316     bool m_targetLocationMaxConcurrencyHasBeenSet;
317 
318     Aws::String m_targetLocationMaxErrors;
319     bool m_targetLocationMaxErrorsHasBeenSet;
320 
321     Aws::String m_executionRoleName;
322     bool m_executionRoleNameHasBeenSet;
323   };
324 
325 } // namespace Model
326 } // namespace SSM
327 } // namespace Aws
328