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/config/ConfigService_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/config/model/RemediationTargetType.h>
10 #include <aws/core/utils/memory/stl/AWSMap.h>
11 #include <aws/config/model/ExecutionControls.h>
12 #include <aws/config/model/RemediationParameterValue.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace ConfigService
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>An object that represents the details about the remediation configuration
32    * that includes the remediation action, parameters, and data to execute the
33    * action.</p><p><h3>See Also:</h3>   <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/RemediationConfiguration">AWS
35    * API Reference</a></p>
36    */
37   class AWS_CONFIGSERVICE_API RemediationConfiguration
38   {
39   public:
40     RemediationConfiguration();
41     RemediationConfiguration(Aws::Utils::Json::JsonView jsonValue);
42     RemediationConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
43     Aws::Utils::Json::JsonValue Jsonize() const;
44 
45 
46     /**
47      * <p>The name of the Config rule.</p>
48      */
GetConfigRuleName()49     inline const Aws::String& GetConfigRuleName() const{ return m_configRuleName; }
50 
51     /**
52      * <p>The name of the Config rule.</p>
53      */
ConfigRuleNameHasBeenSet()54     inline bool ConfigRuleNameHasBeenSet() const { return m_configRuleNameHasBeenSet; }
55 
56     /**
57      * <p>The name of the Config rule.</p>
58      */
SetConfigRuleName(const Aws::String & value)59     inline void SetConfigRuleName(const Aws::String& value) { m_configRuleNameHasBeenSet = true; m_configRuleName = value; }
60 
61     /**
62      * <p>The name of the Config rule.</p>
63      */
SetConfigRuleName(Aws::String && value)64     inline void SetConfigRuleName(Aws::String&& value) { m_configRuleNameHasBeenSet = true; m_configRuleName = std::move(value); }
65 
66     /**
67      * <p>The name of the Config rule.</p>
68      */
SetConfigRuleName(const char * value)69     inline void SetConfigRuleName(const char* value) { m_configRuleNameHasBeenSet = true; m_configRuleName.assign(value); }
70 
71     /**
72      * <p>The name of the Config rule.</p>
73      */
WithConfigRuleName(const Aws::String & value)74     inline RemediationConfiguration& WithConfigRuleName(const Aws::String& value) { SetConfigRuleName(value); return *this;}
75 
76     /**
77      * <p>The name of the Config rule.</p>
78      */
WithConfigRuleName(Aws::String && value)79     inline RemediationConfiguration& WithConfigRuleName(Aws::String&& value) { SetConfigRuleName(std::move(value)); return *this;}
80 
81     /**
82      * <p>The name of the Config rule.</p>
83      */
WithConfigRuleName(const char * value)84     inline RemediationConfiguration& WithConfigRuleName(const char* value) { SetConfigRuleName(value); return *this;}
85 
86 
87     /**
88      * <p>The type of the target. Target executes remediation. For example, SSM
89      * document.</p>
90      */
GetTargetType()91     inline const RemediationTargetType& GetTargetType() const{ return m_targetType; }
92 
93     /**
94      * <p>The type of the target. Target executes remediation. For example, SSM
95      * document.</p>
96      */
TargetTypeHasBeenSet()97     inline bool TargetTypeHasBeenSet() const { return m_targetTypeHasBeenSet; }
98 
99     /**
100      * <p>The type of the target. Target executes remediation. For example, SSM
101      * document.</p>
102      */
SetTargetType(const RemediationTargetType & value)103     inline void SetTargetType(const RemediationTargetType& value) { m_targetTypeHasBeenSet = true; m_targetType = value; }
104 
105     /**
106      * <p>The type of the target. Target executes remediation. For example, SSM
107      * document.</p>
108      */
SetTargetType(RemediationTargetType && value)109     inline void SetTargetType(RemediationTargetType&& value) { m_targetTypeHasBeenSet = true; m_targetType = std::move(value); }
110 
111     /**
112      * <p>The type of the target. Target executes remediation. For example, SSM
113      * document.</p>
114      */
WithTargetType(const RemediationTargetType & value)115     inline RemediationConfiguration& WithTargetType(const RemediationTargetType& value) { SetTargetType(value); return *this;}
116 
117     /**
118      * <p>The type of the target. Target executes remediation. For example, SSM
119      * document.</p>
120      */
WithTargetType(RemediationTargetType && value)121     inline RemediationConfiguration& WithTargetType(RemediationTargetType&& value) { SetTargetType(std::move(value)); return *this;}
122 
123 
124     /**
125      * <p>Target ID is the name of the public document.</p>
126      */
GetTargetId()127     inline const Aws::String& GetTargetId() const{ return m_targetId; }
128 
129     /**
130      * <p>Target ID is the name of the public document.</p>
131      */
TargetIdHasBeenSet()132     inline bool TargetIdHasBeenSet() const { return m_targetIdHasBeenSet; }
133 
134     /**
135      * <p>Target ID is the name of the public document.</p>
136      */
SetTargetId(const Aws::String & value)137     inline void SetTargetId(const Aws::String& value) { m_targetIdHasBeenSet = true; m_targetId = value; }
138 
139     /**
140      * <p>Target ID is the name of the public document.</p>
141      */
SetTargetId(Aws::String && value)142     inline void SetTargetId(Aws::String&& value) { m_targetIdHasBeenSet = true; m_targetId = std::move(value); }
143 
144     /**
145      * <p>Target ID is the name of the public document.</p>
146      */
SetTargetId(const char * value)147     inline void SetTargetId(const char* value) { m_targetIdHasBeenSet = true; m_targetId.assign(value); }
148 
149     /**
150      * <p>Target ID is the name of the public document.</p>
151      */
WithTargetId(const Aws::String & value)152     inline RemediationConfiguration& WithTargetId(const Aws::String& value) { SetTargetId(value); return *this;}
153 
154     /**
155      * <p>Target ID is the name of the public document.</p>
156      */
WithTargetId(Aws::String && value)157     inline RemediationConfiguration& WithTargetId(Aws::String&& value) { SetTargetId(std::move(value)); return *this;}
158 
159     /**
160      * <p>Target ID is the name of the public document.</p>
161      */
WithTargetId(const char * value)162     inline RemediationConfiguration& WithTargetId(const char* value) { SetTargetId(value); return *this;}
163 
164 
165     /**
166      * <p>Version of the target. For example, version of the SSM document.</p>
167      * <p>If you make backward incompatible changes to the SSM document, you must call
168      * PutRemediationConfiguration API again to ensure the remediations can run.</p>
169      *
170      */
GetTargetVersion()171     inline const Aws::String& GetTargetVersion() const{ return m_targetVersion; }
172 
173     /**
174      * <p>Version of the target. For example, version of the SSM document.</p>
175      * <p>If you make backward incompatible changes to the SSM document, you must call
176      * PutRemediationConfiguration API again to ensure the remediations can run.</p>
177      *
178      */
TargetVersionHasBeenSet()179     inline bool TargetVersionHasBeenSet() const { return m_targetVersionHasBeenSet; }
180 
181     /**
182      * <p>Version of the target. For example, version of the SSM document.</p>
183      * <p>If you make backward incompatible changes to the SSM document, you must call
184      * PutRemediationConfiguration API again to ensure the remediations can run.</p>
185      *
186      */
SetTargetVersion(const Aws::String & value)187     inline void SetTargetVersion(const Aws::String& value) { m_targetVersionHasBeenSet = true; m_targetVersion = value; }
188 
189     /**
190      * <p>Version of the target. For example, version of the SSM document.</p>
191      * <p>If you make backward incompatible changes to the SSM document, you must call
192      * PutRemediationConfiguration API again to ensure the remediations can run.</p>
193      *
194      */
SetTargetVersion(Aws::String && value)195     inline void SetTargetVersion(Aws::String&& value) { m_targetVersionHasBeenSet = true; m_targetVersion = std::move(value); }
196 
197     /**
198      * <p>Version of the target. For example, version of the SSM document.</p>
199      * <p>If you make backward incompatible changes to the SSM document, you must call
200      * PutRemediationConfiguration API again to ensure the remediations can run.</p>
201      *
202      */
SetTargetVersion(const char * value)203     inline void SetTargetVersion(const char* value) { m_targetVersionHasBeenSet = true; m_targetVersion.assign(value); }
204 
205     /**
206      * <p>Version of the target. For example, version of the SSM document.</p>
207      * <p>If you make backward incompatible changes to the SSM document, you must call
208      * PutRemediationConfiguration API again to ensure the remediations can run.</p>
209      *
210      */
WithTargetVersion(const Aws::String & value)211     inline RemediationConfiguration& WithTargetVersion(const Aws::String& value) { SetTargetVersion(value); return *this;}
212 
213     /**
214      * <p>Version of the target. For example, version of the SSM document.</p>
215      * <p>If you make backward incompatible changes to the SSM document, you must call
216      * PutRemediationConfiguration API again to ensure the remediations can run.</p>
217      *
218      */
WithTargetVersion(Aws::String && value)219     inline RemediationConfiguration& WithTargetVersion(Aws::String&& value) { SetTargetVersion(std::move(value)); return *this;}
220 
221     /**
222      * <p>Version of the target. For example, version of the SSM document.</p>
223      * <p>If you make backward incompatible changes to the SSM document, you must call
224      * PutRemediationConfiguration API again to ensure the remediations can run.</p>
225      *
226      */
WithTargetVersion(const char * value)227     inline RemediationConfiguration& WithTargetVersion(const char* value) { SetTargetVersion(value); return *this;}
228 
229 
230     /**
231      * <p>An object of the RemediationParameterValue.</p>
232      */
GetParameters()233     inline const Aws::Map<Aws::String, RemediationParameterValue>& GetParameters() const{ return m_parameters; }
234 
235     /**
236      * <p>An object of the RemediationParameterValue.</p>
237      */
ParametersHasBeenSet()238     inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; }
239 
240     /**
241      * <p>An object of the RemediationParameterValue.</p>
242      */
SetParameters(const Aws::Map<Aws::String,RemediationParameterValue> & value)243     inline void SetParameters(const Aws::Map<Aws::String, RemediationParameterValue>& value) { m_parametersHasBeenSet = true; m_parameters = value; }
244 
245     /**
246      * <p>An object of the RemediationParameterValue.</p>
247      */
SetParameters(Aws::Map<Aws::String,RemediationParameterValue> && value)248     inline void SetParameters(Aws::Map<Aws::String, RemediationParameterValue>&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); }
249 
250     /**
251      * <p>An object of the RemediationParameterValue.</p>
252      */
WithParameters(const Aws::Map<Aws::String,RemediationParameterValue> & value)253     inline RemediationConfiguration& WithParameters(const Aws::Map<Aws::String, RemediationParameterValue>& value) { SetParameters(value); return *this;}
254 
255     /**
256      * <p>An object of the RemediationParameterValue.</p>
257      */
WithParameters(Aws::Map<Aws::String,RemediationParameterValue> && value)258     inline RemediationConfiguration& WithParameters(Aws::Map<Aws::String, RemediationParameterValue>&& value) { SetParameters(std::move(value)); return *this;}
259 
260     /**
261      * <p>An object of the RemediationParameterValue.</p>
262      */
AddParameters(const Aws::String & key,const RemediationParameterValue & value)263     inline RemediationConfiguration& AddParameters(const Aws::String& key, const RemediationParameterValue& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; }
264 
265     /**
266      * <p>An object of the RemediationParameterValue.</p>
267      */
AddParameters(Aws::String && key,const RemediationParameterValue & value)268     inline RemediationConfiguration& AddParameters(Aws::String&& key, const RemediationParameterValue& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; }
269 
270     /**
271      * <p>An object of the RemediationParameterValue.</p>
272      */
AddParameters(const Aws::String & key,RemediationParameterValue && value)273     inline RemediationConfiguration& AddParameters(const Aws::String& key, RemediationParameterValue&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; }
274 
275     /**
276      * <p>An object of the RemediationParameterValue.</p>
277      */
AddParameters(Aws::String && key,RemediationParameterValue && value)278     inline RemediationConfiguration& AddParameters(Aws::String&& key, RemediationParameterValue&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), std::move(value)); return *this; }
279 
280     /**
281      * <p>An object of the RemediationParameterValue.</p>
282      */
AddParameters(const char * key,RemediationParameterValue && value)283     inline RemediationConfiguration& AddParameters(const char* key, RemediationParameterValue&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; }
284 
285     /**
286      * <p>An object of the RemediationParameterValue.</p>
287      */
AddParameters(const char * key,const RemediationParameterValue & value)288     inline RemediationConfiguration& AddParameters(const char* key, const RemediationParameterValue& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; }
289 
290 
291     /**
292      * <p>The type of a resource. </p>
293      */
GetResourceType()294     inline const Aws::String& GetResourceType() const{ return m_resourceType; }
295 
296     /**
297      * <p>The type of a resource. </p>
298      */
ResourceTypeHasBeenSet()299     inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; }
300 
301     /**
302      * <p>The type of a resource. </p>
303      */
SetResourceType(const Aws::String & value)304     inline void SetResourceType(const Aws::String& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; }
305 
306     /**
307      * <p>The type of a resource. </p>
308      */
SetResourceType(Aws::String && value)309     inline void SetResourceType(Aws::String&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); }
310 
311     /**
312      * <p>The type of a resource. </p>
313      */
SetResourceType(const char * value)314     inline void SetResourceType(const char* value) { m_resourceTypeHasBeenSet = true; m_resourceType.assign(value); }
315 
316     /**
317      * <p>The type of a resource. </p>
318      */
WithResourceType(const Aws::String & value)319     inline RemediationConfiguration& WithResourceType(const Aws::String& value) { SetResourceType(value); return *this;}
320 
321     /**
322      * <p>The type of a resource. </p>
323      */
WithResourceType(Aws::String && value)324     inline RemediationConfiguration& WithResourceType(Aws::String&& value) { SetResourceType(std::move(value)); return *this;}
325 
326     /**
327      * <p>The type of a resource. </p>
328      */
WithResourceType(const char * value)329     inline RemediationConfiguration& WithResourceType(const char* value) { SetResourceType(value); return *this;}
330 
331 
332     /**
333      * <p>The remediation is triggered automatically.</p>
334      */
GetAutomatic()335     inline bool GetAutomatic() const{ return m_automatic; }
336 
337     /**
338      * <p>The remediation is triggered automatically.</p>
339      */
AutomaticHasBeenSet()340     inline bool AutomaticHasBeenSet() const { return m_automaticHasBeenSet; }
341 
342     /**
343      * <p>The remediation is triggered automatically.</p>
344      */
SetAutomatic(bool value)345     inline void SetAutomatic(bool value) { m_automaticHasBeenSet = true; m_automatic = value; }
346 
347     /**
348      * <p>The remediation is triggered automatically.</p>
349      */
WithAutomatic(bool value)350     inline RemediationConfiguration& WithAutomatic(bool value) { SetAutomatic(value); return *this;}
351 
352 
353     /**
354      * <p>An ExecutionControls object.</p>
355      */
GetExecutionControls()356     inline const ExecutionControls& GetExecutionControls() const{ return m_executionControls; }
357 
358     /**
359      * <p>An ExecutionControls object.</p>
360      */
ExecutionControlsHasBeenSet()361     inline bool ExecutionControlsHasBeenSet() const { return m_executionControlsHasBeenSet; }
362 
363     /**
364      * <p>An ExecutionControls object.</p>
365      */
SetExecutionControls(const ExecutionControls & value)366     inline void SetExecutionControls(const ExecutionControls& value) { m_executionControlsHasBeenSet = true; m_executionControls = value; }
367 
368     /**
369      * <p>An ExecutionControls object.</p>
370      */
SetExecutionControls(ExecutionControls && value)371     inline void SetExecutionControls(ExecutionControls&& value) { m_executionControlsHasBeenSet = true; m_executionControls = std::move(value); }
372 
373     /**
374      * <p>An ExecutionControls object.</p>
375      */
WithExecutionControls(const ExecutionControls & value)376     inline RemediationConfiguration& WithExecutionControls(const ExecutionControls& value) { SetExecutionControls(value); return *this;}
377 
378     /**
379      * <p>An ExecutionControls object.</p>
380      */
WithExecutionControls(ExecutionControls && value)381     inline RemediationConfiguration& WithExecutionControls(ExecutionControls&& value) { SetExecutionControls(std::move(value)); return *this;}
382 
383 
384     /**
385      * <p>The maximum number of failed attempts for auto-remediation. If you do not
386      * select a number, the default is 5.</p> <p>For example, if you specify
387      * MaximumAutomaticAttempts as 5 with RetryAttemptSeconds as 50 seconds, Config
388      * will put a RemediationException on your behalf for the failing resource after
389      * the 5th failed attempt within 50 seconds.</p>
390      */
GetMaximumAutomaticAttempts()391     inline int GetMaximumAutomaticAttempts() const{ return m_maximumAutomaticAttempts; }
392 
393     /**
394      * <p>The maximum number of failed attempts for auto-remediation. If you do not
395      * select a number, the default is 5.</p> <p>For example, if you specify
396      * MaximumAutomaticAttempts as 5 with RetryAttemptSeconds as 50 seconds, Config
397      * will put a RemediationException on your behalf for the failing resource after
398      * the 5th failed attempt within 50 seconds.</p>
399      */
MaximumAutomaticAttemptsHasBeenSet()400     inline bool MaximumAutomaticAttemptsHasBeenSet() const { return m_maximumAutomaticAttemptsHasBeenSet; }
401 
402     /**
403      * <p>The maximum number of failed attempts for auto-remediation. If you do not
404      * select a number, the default is 5.</p> <p>For example, if you specify
405      * MaximumAutomaticAttempts as 5 with RetryAttemptSeconds as 50 seconds, Config
406      * will put a RemediationException on your behalf for the failing resource after
407      * the 5th failed attempt within 50 seconds.</p>
408      */
SetMaximumAutomaticAttempts(int value)409     inline void SetMaximumAutomaticAttempts(int value) { m_maximumAutomaticAttemptsHasBeenSet = true; m_maximumAutomaticAttempts = value; }
410 
411     /**
412      * <p>The maximum number of failed attempts for auto-remediation. If you do not
413      * select a number, the default is 5.</p> <p>For example, if you specify
414      * MaximumAutomaticAttempts as 5 with RetryAttemptSeconds as 50 seconds, Config
415      * will put a RemediationException on your behalf for the failing resource after
416      * the 5th failed attempt within 50 seconds.</p>
417      */
WithMaximumAutomaticAttempts(int value)418     inline RemediationConfiguration& WithMaximumAutomaticAttempts(int value) { SetMaximumAutomaticAttempts(value); return *this;}
419 
420 
421     /**
422      * <p>Maximum time in seconds that Config runs auto-remediation. If you do not
423      * select a number, the default is 60 seconds. </p> <p>For example, if you specify
424      * RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, Config will
425      * run auto-remediations 5 times within 50 seconds before throwing an
426      * exception.</p>
427      */
GetRetryAttemptSeconds()428     inline long long GetRetryAttemptSeconds() const{ return m_retryAttemptSeconds; }
429 
430     /**
431      * <p>Maximum time in seconds that Config runs auto-remediation. If you do not
432      * select a number, the default is 60 seconds. </p> <p>For example, if you specify
433      * RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, Config will
434      * run auto-remediations 5 times within 50 seconds before throwing an
435      * exception.</p>
436      */
RetryAttemptSecondsHasBeenSet()437     inline bool RetryAttemptSecondsHasBeenSet() const { return m_retryAttemptSecondsHasBeenSet; }
438 
439     /**
440      * <p>Maximum time in seconds that Config runs auto-remediation. If you do not
441      * select a number, the default is 60 seconds. </p> <p>For example, if you specify
442      * RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, Config will
443      * run auto-remediations 5 times within 50 seconds before throwing an
444      * exception.</p>
445      */
SetRetryAttemptSeconds(long long value)446     inline void SetRetryAttemptSeconds(long long value) { m_retryAttemptSecondsHasBeenSet = true; m_retryAttemptSeconds = value; }
447 
448     /**
449      * <p>Maximum time in seconds that Config runs auto-remediation. If you do not
450      * select a number, the default is 60 seconds. </p> <p>For example, if you specify
451      * RetryAttemptSeconds as 50 seconds and MaximumAutomaticAttempts as 5, Config will
452      * run auto-remediations 5 times within 50 seconds before throwing an
453      * exception.</p>
454      */
WithRetryAttemptSeconds(long long value)455     inline RemediationConfiguration& WithRetryAttemptSeconds(long long value) { SetRetryAttemptSeconds(value); return *this;}
456 
457 
458     /**
459      * <p>Amazon Resource Name (ARN) of remediation configuration.</p>
460      */
GetArn()461     inline const Aws::String& GetArn() const{ return m_arn; }
462 
463     /**
464      * <p>Amazon Resource Name (ARN) of remediation configuration.</p>
465      */
ArnHasBeenSet()466     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
467 
468     /**
469      * <p>Amazon Resource Name (ARN) of remediation configuration.</p>
470      */
SetArn(const Aws::String & value)471     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
472 
473     /**
474      * <p>Amazon Resource Name (ARN) of remediation configuration.</p>
475      */
SetArn(Aws::String && value)476     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
477 
478     /**
479      * <p>Amazon Resource Name (ARN) of remediation configuration.</p>
480      */
SetArn(const char * value)481     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
482 
483     /**
484      * <p>Amazon Resource Name (ARN) of remediation configuration.</p>
485      */
WithArn(const Aws::String & value)486     inline RemediationConfiguration& WithArn(const Aws::String& value) { SetArn(value); return *this;}
487 
488     /**
489      * <p>Amazon Resource Name (ARN) of remediation configuration.</p>
490      */
WithArn(Aws::String && value)491     inline RemediationConfiguration& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
492 
493     /**
494      * <p>Amazon Resource Name (ARN) of remediation configuration.</p>
495      */
WithArn(const char * value)496     inline RemediationConfiguration& WithArn(const char* value) { SetArn(value); return *this;}
497 
498 
499     /**
500      * <p>Name of the service that owns the service linked rule, if applicable.</p>
501      */
GetCreatedByService()502     inline const Aws::String& GetCreatedByService() const{ return m_createdByService; }
503 
504     /**
505      * <p>Name of the service that owns the service linked rule, if applicable.</p>
506      */
CreatedByServiceHasBeenSet()507     inline bool CreatedByServiceHasBeenSet() const { return m_createdByServiceHasBeenSet; }
508 
509     /**
510      * <p>Name of the service that owns the service linked rule, if applicable.</p>
511      */
SetCreatedByService(const Aws::String & value)512     inline void SetCreatedByService(const Aws::String& value) { m_createdByServiceHasBeenSet = true; m_createdByService = value; }
513 
514     /**
515      * <p>Name of the service that owns the service linked rule, if applicable.</p>
516      */
SetCreatedByService(Aws::String && value)517     inline void SetCreatedByService(Aws::String&& value) { m_createdByServiceHasBeenSet = true; m_createdByService = std::move(value); }
518 
519     /**
520      * <p>Name of the service that owns the service linked rule, if applicable.</p>
521      */
SetCreatedByService(const char * value)522     inline void SetCreatedByService(const char* value) { m_createdByServiceHasBeenSet = true; m_createdByService.assign(value); }
523 
524     /**
525      * <p>Name of the service that owns the service linked rule, if applicable.</p>
526      */
WithCreatedByService(const Aws::String & value)527     inline RemediationConfiguration& WithCreatedByService(const Aws::String& value) { SetCreatedByService(value); return *this;}
528 
529     /**
530      * <p>Name of the service that owns the service linked rule, if applicable.</p>
531      */
WithCreatedByService(Aws::String && value)532     inline RemediationConfiguration& WithCreatedByService(Aws::String&& value) { SetCreatedByService(std::move(value)); return *this;}
533 
534     /**
535      * <p>Name of the service that owns the service linked rule, if applicable.</p>
536      */
WithCreatedByService(const char * value)537     inline RemediationConfiguration& WithCreatedByService(const char* value) { SetCreatedByService(value); return *this;}
538 
539   private:
540 
541     Aws::String m_configRuleName;
542     bool m_configRuleNameHasBeenSet;
543 
544     RemediationTargetType m_targetType;
545     bool m_targetTypeHasBeenSet;
546 
547     Aws::String m_targetId;
548     bool m_targetIdHasBeenSet;
549 
550     Aws::String m_targetVersion;
551     bool m_targetVersionHasBeenSet;
552 
553     Aws::Map<Aws::String, RemediationParameterValue> m_parameters;
554     bool m_parametersHasBeenSet;
555 
556     Aws::String m_resourceType;
557     bool m_resourceTypeHasBeenSet;
558 
559     bool m_automatic;
560     bool m_automaticHasBeenSet;
561 
562     ExecutionControls m_executionControls;
563     bool m_executionControlsHasBeenSet;
564 
565     int m_maximumAutomaticAttempts;
566     bool m_maximumAutomaticAttemptsHasBeenSet;
567 
568     long long m_retryAttemptSeconds;
569     bool m_retryAttemptSecondsHasBeenSet;
570 
571     Aws::String m_arn;
572     bool m_arnHasBeenSet;
573 
574     Aws::String m_createdByService;
575     bool m_createdByServiceHasBeenSet;
576   };
577 
578 } // namespace Model
579 } // namespace ConfigService
580 } // namespace Aws
581