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/AWSString.h>
9 #include <aws/ssm/model/CloudWatchOutputConfig.h>
10 #include <aws/ssm/model/DocumentHashType.h>
11 #include <aws/ssm/model/NotificationConfig.h>
12 #include <aws/core/utils/memory/stl/AWSMap.h>
13 #include <aws/core/utils/memory/stl/AWSVector.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23   class JsonView;
24 } // namespace Json
25 } // namespace Utils
26 namespace SSM
27 {
28 namespace Model
29 {
30 
31   /**
32    * <p>The parameters for a <code>RUN_COMMAND</code> task type.</p> <p>For
33    * information about specifying and updating task parameters, see
34    * <a>RegisterTaskWithMaintenanceWindow</a> and
35    * <a>UpdateMaintenanceWindowTask</a>.</p>  <p> <code>LoggingInfo</code> has
36    * been deprecated. To specify an Amazon Simple Storage Service (Amazon S3) bucket
37    * to contain logs, instead use the <code>OutputS3BucketName</code> and
38    * <code>OutputS3KeyPrefix</code> options in the
39    * <code>TaskInvocationParameters</code> structure. For information about how
40    * Amazon Web Services Systems Manager handles these options for the supported
41    * maintenance window task types, see
42    * <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>
43    * <code>TaskParameters</code> has been deprecated. To specify parameters to pass
44    * to a task when it runs, instead use the <code>Parameters</code> option in the
45    * <code>TaskInvocationParameters</code> structure. For information about how
46    * Systems Manager handles these options for the supported maintenance window task
47    * types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>For
48    * <code>RUN_COMMAND</code> tasks, Systems Manager uses specified values for
49    * <code>TaskParameters</code> and <code>LoggingInfo</code> only if no values are
50    * specified for <code>TaskInvocationParameters</code>. </p> <p><h3>See
51    * Also:</h3>   <a
52    * href="http://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowRunCommandParameters">AWS
53    * API Reference</a></p>
54    */
55   class AWS_SSM_API MaintenanceWindowRunCommandParameters
56   {
57   public:
58     MaintenanceWindowRunCommandParameters();
59     MaintenanceWindowRunCommandParameters(Aws::Utils::Json::JsonView jsonValue);
60     MaintenanceWindowRunCommandParameters& operator=(Aws::Utils::Json::JsonView jsonValue);
61     Aws::Utils::Json::JsonValue Jsonize() const;
62 
63 
64     /**
65      * <p>Information about the commands to run.</p>
66      */
GetComment()67     inline const Aws::String& GetComment() const{ return m_comment; }
68 
69     /**
70      * <p>Information about the commands to run.</p>
71      */
CommentHasBeenSet()72     inline bool CommentHasBeenSet() const { return m_commentHasBeenSet; }
73 
74     /**
75      * <p>Information about the commands to run.</p>
76      */
SetComment(const Aws::String & value)77     inline void SetComment(const Aws::String& value) { m_commentHasBeenSet = true; m_comment = value; }
78 
79     /**
80      * <p>Information about the commands to run.</p>
81      */
SetComment(Aws::String && value)82     inline void SetComment(Aws::String&& value) { m_commentHasBeenSet = true; m_comment = std::move(value); }
83 
84     /**
85      * <p>Information about the commands to run.</p>
86      */
SetComment(const char * value)87     inline void SetComment(const char* value) { m_commentHasBeenSet = true; m_comment.assign(value); }
88 
89     /**
90      * <p>Information about the commands to run.</p>
91      */
WithComment(const Aws::String & value)92     inline MaintenanceWindowRunCommandParameters& WithComment(const Aws::String& value) { SetComment(value); return *this;}
93 
94     /**
95      * <p>Information about the commands to run.</p>
96      */
WithComment(Aws::String && value)97     inline MaintenanceWindowRunCommandParameters& WithComment(Aws::String&& value) { SetComment(std::move(value)); return *this;}
98 
99     /**
100      * <p>Information about the commands to run.</p>
101      */
WithComment(const char * value)102     inline MaintenanceWindowRunCommandParameters& WithComment(const char* value) { SetComment(value); return *this;}
103 
104 
105 
GetCloudWatchOutputConfig()106     inline const CloudWatchOutputConfig& GetCloudWatchOutputConfig() const{ return m_cloudWatchOutputConfig; }
107 
108 
CloudWatchOutputConfigHasBeenSet()109     inline bool CloudWatchOutputConfigHasBeenSet() const { return m_cloudWatchOutputConfigHasBeenSet; }
110 
111 
SetCloudWatchOutputConfig(const CloudWatchOutputConfig & value)112     inline void SetCloudWatchOutputConfig(const CloudWatchOutputConfig& value) { m_cloudWatchOutputConfigHasBeenSet = true; m_cloudWatchOutputConfig = value; }
113 
114 
SetCloudWatchOutputConfig(CloudWatchOutputConfig && value)115     inline void SetCloudWatchOutputConfig(CloudWatchOutputConfig&& value) { m_cloudWatchOutputConfigHasBeenSet = true; m_cloudWatchOutputConfig = std::move(value); }
116 
117 
WithCloudWatchOutputConfig(const CloudWatchOutputConfig & value)118     inline MaintenanceWindowRunCommandParameters& WithCloudWatchOutputConfig(const CloudWatchOutputConfig& value) { SetCloudWatchOutputConfig(value); return *this;}
119 
120 
WithCloudWatchOutputConfig(CloudWatchOutputConfig && value)121     inline MaintenanceWindowRunCommandParameters& WithCloudWatchOutputConfig(CloudWatchOutputConfig&& value) { SetCloudWatchOutputConfig(std::move(value)); return *this;}
122 
123 
124     /**
125      * <p>The SHA-256 or SHA-1 hash created by the system when the document was
126      * created. SHA-1 hashes have been deprecated.</p>
127      */
GetDocumentHash()128     inline const Aws::String& GetDocumentHash() const{ return m_documentHash; }
129 
130     /**
131      * <p>The SHA-256 or SHA-1 hash created by the system when the document was
132      * created. SHA-1 hashes have been deprecated.</p>
133      */
DocumentHashHasBeenSet()134     inline bool DocumentHashHasBeenSet() const { return m_documentHashHasBeenSet; }
135 
136     /**
137      * <p>The SHA-256 or SHA-1 hash created by the system when the document was
138      * created. SHA-1 hashes have been deprecated.</p>
139      */
SetDocumentHash(const Aws::String & value)140     inline void SetDocumentHash(const Aws::String& value) { m_documentHashHasBeenSet = true; m_documentHash = value; }
141 
142     /**
143      * <p>The SHA-256 or SHA-1 hash created by the system when the document was
144      * created. SHA-1 hashes have been deprecated.</p>
145      */
SetDocumentHash(Aws::String && value)146     inline void SetDocumentHash(Aws::String&& value) { m_documentHashHasBeenSet = true; m_documentHash = std::move(value); }
147 
148     /**
149      * <p>The SHA-256 or SHA-1 hash created by the system when the document was
150      * created. SHA-1 hashes have been deprecated.</p>
151      */
SetDocumentHash(const char * value)152     inline void SetDocumentHash(const char* value) { m_documentHashHasBeenSet = true; m_documentHash.assign(value); }
153 
154     /**
155      * <p>The SHA-256 or SHA-1 hash created by the system when the document was
156      * created. SHA-1 hashes have been deprecated.</p>
157      */
WithDocumentHash(const Aws::String & value)158     inline MaintenanceWindowRunCommandParameters& WithDocumentHash(const Aws::String& value) { SetDocumentHash(value); return *this;}
159 
160     /**
161      * <p>The SHA-256 or SHA-1 hash created by the system when the document was
162      * created. SHA-1 hashes have been deprecated.</p>
163      */
WithDocumentHash(Aws::String && value)164     inline MaintenanceWindowRunCommandParameters& WithDocumentHash(Aws::String&& value) { SetDocumentHash(std::move(value)); return *this;}
165 
166     /**
167      * <p>The SHA-256 or SHA-1 hash created by the system when the document was
168      * created. SHA-1 hashes have been deprecated.</p>
169      */
WithDocumentHash(const char * value)170     inline MaintenanceWindowRunCommandParameters& WithDocumentHash(const char* value) { SetDocumentHash(value); return *this;}
171 
172 
173     /**
174      * <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
175      */
GetDocumentHashType()176     inline const DocumentHashType& GetDocumentHashType() const{ return m_documentHashType; }
177 
178     /**
179      * <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
180      */
DocumentHashTypeHasBeenSet()181     inline bool DocumentHashTypeHasBeenSet() const { return m_documentHashTypeHasBeenSet; }
182 
183     /**
184      * <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
185      */
SetDocumentHashType(const DocumentHashType & value)186     inline void SetDocumentHashType(const DocumentHashType& value) { m_documentHashTypeHasBeenSet = true; m_documentHashType = value; }
187 
188     /**
189      * <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
190      */
SetDocumentHashType(DocumentHashType && value)191     inline void SetDocumentHashType(DocumentHashType&& value) { m_documentHashTypeHasBeenSet = true; m_documentHashType = std::move(value); }
192 
193     /**
194      * <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
195      */
WithDocumentHashType(const DocumentHashType & value)196     inline MaintenanceWindowRunCommandParameters& WithDocumentHashType(const DocumentHashType& value) { SetDocumentHashType(value); return *this;}
197 
198     /**
199      * <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
200      */
WithDocumentHashType(DocumentHashType && value)201     inline MaintenanceWindowRunCommandParameters& WithDocumentHashType(DocumentHashType&& value) { SetDocumentHashType(std::move(value)); return *this;}
202 
203 
204     /**
205      * <p>The Amazon Web Services Systems Manager document (SSM document) version to
206      * use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>,
207      * or a specific version number. If you run commands by using the Amazon Web
208      * Services CLI, then you must escape the first two options by using a backslash.
209      * If you specify a version number, then you don't need to use the backslash. For
210      * example:</p> <p> <code>--document-version "\$DEFAULT"</code> </p> <p>
211      * <code>--document-version "\$LATEST"</code> </p> <p> <code>--document-version
212      * "3"</code> </p>
213      */
GetDocumentVersion()214     inline const Aws::String& GetDocumentVersion() const{ return m_documentVersion; }
215 
216     /**
217      * <p>The Amazon Web Services Systems Manager document (SSM document) version to
218      * use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>,
219      * or a specific version number. If you run commands by using the Amazon Web
220      * Services CLI, then you must escape the first two options by using a backslash.
221      * If you specify a version number, then you don't need to use the backslash. For
222      * example:</p> <p> <code>--document-version "\$DEFAULT"</code> </p> <p>
223      * <code>--document-version "\$LATEST"</code> </p> <p> <code>--document-version
224      * "3"</code> </p>
225      */
DocumentVersionHasBeenSet()226     inline bool DocumentVersionHasBeenSet() const { return m_documentVersionHasBeenSet; }
227 
228     /**
229      * <p>The Amazon Web Services Systems Manager document (SSM document) version to
230      * use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>,
231      * or a specific version number. If you run commands by using the Amazon Web
232      * Services CLI, then you must escape the first two options by using a backslash.
233      * If you specify a version number, then you don't need to use the backslash. For
234      * example:</p> <p> <code>--document-version "\$DEFAULT"</code> </p> <p>
235      * <code>--document-version "\$LATEST"</code> </p> <p> <code>--document-version
236      * "3"</code> </p>
237      */
SetDocumentVersion(const Aws::String & value)238     inline void SetDocumentVersion(const Aws::String& value) { m_documentVersionHasBeenSet = true; m_documentVersion = value; }
239 
240     /**
241      * <p>The Amazon Web Services Systems Manager document (SSM document) version to
242      * use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>,
243      * or a specific version number. If you run commands by using the Amazon Web
244      * Services CLI, then you must escape the first two options by using a backslash.
245      * If you specify a version number, then you don't need to use the backslash. For
246      * example:</p> <p> <code>--document-version "\$DEFAULT"</code> </p> <p>
247      * <code>--document-version "\$LATEST"</code> </p> <p> <code>--document-version
248      * "3"</code> </p>
249      */
SetDocumentVersion(Aws::String && value)250     inline void SetDocumentVersion(Aws::String&& value) { m_documentVersionHasBeenSet = true; m_documentVersion = std::move(value); }
251 
252     /**
253      * <p>The Amazon Web Services Systems Manager document (SSM document) version to
254      * use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>,
255      * or a specific version number. If you run commands by using the Amazon Web
256      * Services CLI, then you must escape the first two options by using a backslash.
257      * If you specify a version number, then you don't need to use the backslash. For
258      * example:</p> <p> <code>--document-version "\$DEFAULT"</code> </p> <p>
259      * <code>--document-version "\$LATEST"</code> </p> <p> <code>--document-version
260      * "3"</code> </p>
261      */
SetDocumentVersion(const char * value)262     inline void SetDocumentVersion(const char* value) { m_documentVersionHasBeenSet = true; m_documentVersion.assign(value); }
263 
264     /**
265      * <p>The Amazon Web Services Systems Manager document (SSM document) version to
266      * use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>,
267      * or a specific version number. If you run commands by using the Amazon Web
268      * Services CLI, then you must escape the first two options by using a backslash.
269      * If you specify a version number, then you don't need to use the backslash. For
270      * example:</p> <p> <code>--document-version "\$DEFAULT"</code> </p> <p>
271      * <code>--document-version "\$LATEST"</code> </p> <p> <code>--document-version
272      * "3"</code> </p>
273      */
WithDocumentVersion(const Aws::String & value)274     inline MaintenanceWindowRunCommandParameters& WithDocumentVersion(const Aws::String& value) { SetDocumentVersion(value); return *this;}
275 
276     /**
277      * <p>The Amazon Web Services Systems Manager document (SSM document) version to
278      * use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>,
279      * or a specific version number. If you run commands by using the Amazon Web
280      * Services CLI, then you must escape the first two options by using a backslash.
281      * If you specify a version number, then you don't need to use the backslash. For
282      * example:</p> <p> <code>--document-version "\$DEFAULT"</code> </p> <p>
283      * <code>--document-version "\$LATEST"</code> </p> <p> <code>--document-version
284      * "3"</code> </p>
285      */
WithDocumentVersion(Aws::String && value)286     inline MaintenanceWindowRunCommandParameters& WithDocumentVersion(Aws::String&& value) { SetDocumentVersion(std::move(value)); return *this;}
287 
288     /**
289      * <p>The Amazon Web Services Systems Manager document (SSM document) version to
290      * use in the request. You can specify <code>$DEFAULT</code>, <code>$LATEST</code>,
291      * or a specific version number. If you run commands by using the Amazon Web
292      * Services CLI, then you must escape the first two options by using a backslash.
293      * If you specify a version number, then you don't need to use the backslash. For
294      * example:</p> <p> <code>--document-version "\$DEFAULT"</code> </p> <p>
295      * <code>--document-version "\$LATEST"</code> </p> <p> <code>--document-version
296      * "3"</code> </p>
297      */
WithDocumentVersion(const char * value)298     inline MaintenanceWindowRunCommandParameters& WithDocumentVersion(const char* value) { SetDocumentVersion(value); return *this;}
299 
300 
301     /**
302      * <p>Configurations for sending notifications about command status changes on a
303      * per-instance basis.</p>
304      */
GetNotificationConfig()305     inline const NotificationConfig& GetNotificationConfig() const{ return m_notificationConfig; }
306 
307     /**
308      * <p>Configurations for sending notifications about command status changes on a
309      * per-instance basis.</p>
310      */
NotificationConfigHasBeenSet()311     inline bool NotificationConfigHasBeenSet() const { return m_notificationConfigHasBeenSet; }
312 
313     /**
314      * <p>Configurations for sending notifications about command status changes on a
315      * per-instance basis.</p>
316      */
SetNotificationConfig(const NotificationConfig & value)317     inline void SetNotificationConfig(const NotificationConfig& value) { m_notificationConfigHasBeenSet = true; m_notificationConfig = value; }
318 
319     /**
320      * <p>Configurations for sending notifications about command status changes on a
321      * per-instance basis.</p>
322      */
SetNotificationConfig(NotificationConfig && value)323     inline void SetNotificationConfig(NotificationConfig&& value) { m_notificationConfigHasBeenSet = true; m_notificationConfig = std::move(value); }
324 
325     /**
326      * <p>Configurations for sending notifications about command status changes on a
327      * per-instance basis.</p>
328      */
WithNotificationConfig(const NotificationConfig & value)329     inline MaintenanceWindowRunCommandParameters& WithNotificationConfig(const NotificationConfig& value) { SetNotificationConfig(value); return *this;}
330 
331     /**
332      * <p>Configurations for sending notifications about command status changes on a
333      * per-instance basis.</p>
334      */
WithNotificationConfig(NotificationConfig && value)335     inline MaintenanceWindowRunCommandParameters& WithNotificationConfig(NotificationConfig&& value) { SetNotificationConfig(std::move(value)); return *this;}
336 
337 
338     /**
339      * <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
340      */
GetOutputS3BucketName()341     inline const Aws::String& GetOutputS3BucketName() const{ return m_outputS3BucketName; }
342 
343     /**
344      * <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
345      */
OutputS3BucketNameHasBeenSet()346     inline bool OutputS3BucketNameHasBeenSet() const { return m_outputS3BucketNameHasBeenSet; }
347 
348     /**
349      * <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
350      */
SetOutputS3BucketName(const Aws::String & value)351     inline void SetOutputS3BucketName(const Aws::String& value) { m_outputS3BucketNameHasBeenSet = true; m_outputS3BucketName = value; }
352 
353     /**
354      * <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
355      */
SetOutputS3BucketName(Aws::String && value)356     inline void SetOutputS3BucketName(Aws::String&& value) { m_outputS3BucketNameHasBeenSet = true; m_outputS3BucketName = std::move(value); }
357 
358     /**
359      * <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
360      */
SetOutputS3BucketName(const char * value)361     inline void SetOutputS3BucketName(const char* value) { m_outputS3BucketNameHasBeenSet = true; m_outputS3BucketName.assign(value); }
362 
363     /**
364      * <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
365      */
WithOutputS3BucketName(const Aws::String & value)366     inline MaintenanceWindowRunCommandParameters& WithOutputS3BucketName(const Aws::String& value) { SetOutputS3BucketName(value); return *this;}
367 
368     /**
369      * <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
370      */
WithOutputS3BucketName(Aws::String && value)371     inline MaintenanceWindowRunCommandParameters& WithOutputS3BucketName(Aws::String&& value) { SetOutputS3BucketName(std::move(value)); return *this;}
372 
373     /**
374      * <p>The name of the Amazon Simple Storage Service (Amazon S3) bucket.</p>
375      */
WithOutputS3BucketName(const char * value)376     inline MaintenanceWindowRunCommandParameters& WithOutputS3BucketName(const char* value) { SetOutputS3BucketName(value); return *this;}
377 
378 
379     /**
380      * <p>The S3 bucket subfolder.</p>
381      */
GetOutputS3KeyPrefix()382     inline const Aws::String& GetOutputS3KeyPrefix() const{ return m_outputS3KeyPrefix; }
383 
384     /**
385      * <p>The S3 bucket subfolder.</p>
386      */
OutputS3KeyPrefixHasBeenSet()387     inline bool OutputS3KeyPrefixHasBeenSet() const { return m_outputS3KeyPrefixHasBeenSet; }
388 
389     /**
390      * <p>The S3 bucket subfolder.</p>
391      */
SetOutputS3KeyPrefix(const Aws::String & value)392     inline void SetOutputS3KeyPrefix(const Aws::String& value) { m_outputS3KeyPrefixHasBeenSet = true; m_outputS3KeyPrefix = value; }
393 
394     /**
395      * <p>The S3 bucket subfolder.</p>
396      */
SetOutputS3KeyPrefix(Aws::String && value)397     inline void SetOutputS3KeyPrefix(Aws::String&& value) { m_outputS3KeyPrefixHasBeenSet = true; m_outputS3KeyPrefix = std::move(value); }
398 
399     /**
400      * <p>The S3 bucket subfolder.</p>
401      */
SetOutputS3KeyPrefix(const char * value)402     inline void SetOutputS3KeyPrefix(const char* value) { m_outputS3KeyPrefixHasBeenSet = true; m_outputS3KeyPrefix.assign(value); }
403 
404     /**
405      * <p>The S3 bucket subfolder.</p>
406      */
WithOutputS3KeyPrefix(const Aws::String & value)407     inline MaintenanceWindowRunCommandParameters& WithOutputS3KeyPrefix(const Aws::String& value) { SetOutputS3KeyPrefix(value); return *this;}
408 
409     /**
410      * <p>The S3 bucket subfolder.</p>
411      */
WithOutputS3KeyPrefix(Aws::String && value)412     inline MaintenanceWindowRunCommandParameters& WithOutputS3KeyPrefix(Aws::String&& value) { SetOutputS3KeyPrefix(std::move(value)); return *this;}
413 
414     /**
415      * <p>The S3 bucket subfolder.</p>
416      */
WithOutputS3KeyPrefix(const char * value)417     inline MaintenanceWindowRunCommandParameters& WithOutputS3KeyPrefix(const char* value) { SetOutputS3KeyPrefix(value); return *this;}
418 
419 
420     /**
421      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
422      */
GetParameters()423     inline const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& GetParameters() const{ return m_parameters; }
424 
425     /**
426      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
427      */
ParametersHasBeenSet()428     inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; }
429 
430     /**
431      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
432      */
SetParameters(const Aws::Map<Aws::String,Aws::Vector<Aws::String>> & value)433     inline void SetParameters(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { m_parametersHasBeenSet = true; m_parameters = value; }
434 
435     /**
436      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
437      */
SetParameters(Aws::Map<Aws::String,Aws::Vector<Aws::String>> && value)438     inline void SetParameters(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); }
439 
440     /**
441      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
442      */
WithParameters(const Aws::Map<Aws::String,Aws::Vector<Aws::String>> & value)443     inline MaintenanceWindowRunCommandParameters& WithParameters(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { SetParameters(value); return *this;}
444 
445     /**
446      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
447      */
WithParameters(Aws::Map<Aws::String,Aws::Vector<Aws::String>> && value)448     inline MaintenanceWindowRunCommandParameters& WithParameters(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { SetParameters(std::move(value)); return *this;}
449 
450     /**
451      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
452      */
AddParameters(const Aws::String & key,const Aws::Vector<Aws::String> & value)453     inline MaintenanceWindowRunCommandParameters& AddParameters(const Aws::String& key, const Aws::Vector<Aws::String>& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; }
454 
455     /**
456      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
457      */
AddParameters(Aws::String && key,const Aws::Vector<Aws::String> & value)458     inline MaintenanceWindowRunCommandParameters& AddParameters(Aws::String&& key, const Aws::Vector<Aws::String>& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; }
459 
460     /**
461      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
462      */
AddParameters(const Aws::String & key,Aws::Vector<Aws::String> && value)463     inline MaintenanceWindowRunCommandParameters& AddParameters(const Aws::String& key, Aws::Vector<Aws::String>&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; }
464 
465     /**
466      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
467      */
AddParameters(Aws::String && key,Aws::Vector<Aws::String> && value)468     inline MaintenanceWindowRunCommandParameters& AddParameters(Aws::String&& key, Aws::Vector<Aws::String>&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), std::move(value)); return *this; }
469 
470     /**
471      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
472      */
AddParameters(const char * key,Aws::Vector<Aws::String> && value)473     inline MaintenanceWindowRunCommandParameters& AddParameters(const char* key, Aws::Vector<Aws::String>&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; }
474 
475     /**
476      * <p>The parameters for the <code>RUN_COMMAND</code> task execution.</p>
477      */
AddParameters(const char * key,const Aws::Vector<Aws::String> & value)478     inline MaintenanceWindowRunCommandParameters& AddParameters(const char* key, const Aws::Vector<Aws::String>& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; }
479 
480 
481     /**
482      * <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
483      * service role to use to publish Amazon Simple Notification Service (Amazon SNS)
484      * notifications for maintenance window Run Command tasks.</p>
485      */
GetServiceRoleArn()486     inline const Aws::String& GetServiceRoleArn() const{ return m_serviceRoleArn; }
487 
488     /**
489      * <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
490      * service role to use to publish Amazon Simple Notification Service (Amazon SNS)
491      * notifications for maintenance window Run Command tasks.</p>
492      */
ServiceRoleArnHasBeenSet()493     inline bool ServiceRoleArnHasBeenSet() const { return m_serviceRoleArnHasBeenSet; }
494 
495     /**
496      * <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
497      * service role to use to publish Amazon Simple Notification Service (Amazon SNS)
498      * notifications for maintenance window Run Command tasks.</p>
499      */
SetServiceRoleArn(const Aws::String & value)500     inline void SetServiceRoleArn(const Aws::String& value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn = value; }
501 
502     /**
503      * <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
504      * service role to use to publish Amazon Simple Notification Service (Amazon SNS)
505      * notifications for maintenance window Run Command tasks.</p>
506      */
SetServiceRoleArn(Aws::String && value)507     inline void SetServiceRoleArn(Aws::String&& value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn = std::move(value); }
508 
509     /**
510      * <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
511      * service role to use to publish Amazon Simple Notification Service (Amazon SNS)
512      * notifications for maintenance window Run Command tasks.</p>
513      */
SetServiceRoleArn(const char * value)514     inline void SetServiceRoleArn(const char* value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn.assign(value); }
515 
516     /**
517      * <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
518      * service role to use to publish Amazon Simple Notification Service (Amazon SNS)
519      * notifications for maintenance window Run Command tasks.</p>
520      */
WithServiceRoleArn(const Aws::String & value)521     inline MaintenanceWindowRunCommandParameters& WithServiceRoleArn(const Aws::String& value) { SetServiceRoleArn(value); return *this;}
522 
523     /**
524      * <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
525      * service role to use to publish Amazon Simple Notification Service (Amazon SNS)
526      * notifications for maintenance window Run Command tasks.</p>
527      */
WithServiceRoleArn(Aws::String && value)528     inline MaintenanceWindowRunCommandParameters& WithServiceRoleArn(Aws::String&& value) { SetServiceRoleArn(std::move(value)); return *this;}
529 
530     /**
531      * <p>The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
532      * service role to use to publish Amazon Simple Notification Service (Amazon SNS)
533      * notifications for maintenance window Run Command tasks.</p>
534      */
WithServiceRoleArn(const char * value)535     inline MaintenanceWindowRunCommandParameters& WithServiceRoleArn(const char* value) { SetServiceRoleArn(value); return *this;}
536 
537 
538     /**
539      * <p>If this time is reached and the command hasn't already started running, it
540      * doesn't run.</p>
541      */
GetTimeoutSeconds()542     inline int GetTimeoutSeconds() const{ return m_timeoutSeconds; }
543 
544     /**
545      * <p>If this time is reached and the command hasn't already started running, it
546      * doesn't run.</p>
547      */
TimeoutSecondsHasBeenSet()548     inline bool TimeoutSecondsHasBeenSet() const { return m_timeoutSecondsHasBeenSet; }
549 
550     /**
551      * <p>If this time is reached and the command hasn't already started running, it
552      * doesn't run.</p>
553      */
SetTimeoutSeconds(int value)554     inline void SetTimeoutSeconds(int value) { m_timeoutSecondsHasBeenSet = true; m_timeoutSeconds = value; }
555 
556     /**
557      * <p>If this time is reached and the command hasn't already started running, it
558      * doesn't run.</p>
559      */
WithTimeoutSeconds(int value)560     inline MaintenanceWindowRunCommandParameters& WithTimeoutSeconds(int value) { SetTimeoutSeconds(value); return *this;}
561 
562   private:
563 
564     Aws::String m_comment;
565     bool m_commentHasBeenSet;
566 
567     CloudWatchOutputConfig m_cloudWatchOutputConfig;
568     bool m_cloudWatchOutputConfigHasBeenSet;
569 
570     Aws::String m_documentHash;
571     bool m_documentHashHasBeenSet;
572 
573     DocumentHashType m_documentHashType;
574     bool m_documentHashTypeHasBeenSet;
575 
576     Aws::String m_documentVersion;
577     bool m_documentVersionHasBeenSet;
578 
579     NotificationConfig m_notificationConfig;
580     bool m_notificationConfigHasBeenSet;
581 
582     Aws::String m_outputS3BucketName;
583     bool m_outputS3BucketNameHasBeenSet;
584 
585     Aws::String m_outputS3KeyPrefix;
586     bool m_outputS3KeyPrefixHasBeenSet;
587 
588     Aws::Map<Aws::String, Aws::Vector<Aws::String>> m_parameters;
589     bool m_parametersHasBeenSet;
590 
591     Aws::String m_serviceRoleArn;
592     bool m_serviceRoleArnHasBeenSet;
593 
594     int m_timeoutSeconds;
595     bool m_timeoutSecondsHasBeenSet;
596   };
597 
598 } // namespace Model
599 } // namespace SSM
600 } // namespace Aws
601