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/ssm/SSMRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSMap.h>
11 #include <aws/ssm/model/InstanceAssociationOutputLocation.h>
12 #include <aws/core/utils/memory/stl/AWSVector.h>
13 #include <aws/ssm/model/AssociationComplianceSeverity.h>
14 #include <aws/ssm/model/AssociationSyncCompliance.h>
15 #include <aws/ssm/model/Target.h>
16 #include <aws/ssm/model/TargetLocation.h>
17 #include <utility>
18 
19 namespace Aws
20 {
21 namespace SSM
22 {
23 namespace Model
24 {
25 
26   /**
27    */
28   class AWS_SSM_API UpdateAssociationRequest : public SSMRequest
29   {
30   public:
31     UpdateAssociationRequest();
32 
33     // Service request name is the Operation name which will send this request out,
34     // each operation should has unique request name, so that we can get operation's name from this request.
35     // Note: this is not true for response, multiple operations may have the same response name,
36     // so we can not get operation's name from response.
GetServiceRequestName()37     inline virtual const char* GetServiceRequestName() const override { return "UpdateAssociation"; }
38 
39     Aws::String SerializePayload() const override;
40 
41     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
42 
43 
44     /**
45      * <p>The ID of the association you want to update. </p>
46      */
GetAssociationId()47     inline const Aws::String& GetAssociationId() const{ return m_associationId; }
48 
49     /**
50      * <p>The ID of the association you want to update. </p>
51      */
AssociationIdHasBeenSet()52     inline bool AssociationIdHasBeenSet() const { return m_associationIdHasBeenSet; }
53 
54     /**
55      * <p>The ID of the association you want to update. </p>
56      */
SetAssociationId(const Aws::String & value)57     inline void SetAssociationId(const Aws::String& value) { m_associationIdHasBeenSet = true; m_associationId = value; }
58 
59     /**
60      * <p>The ID of the association you want to update. </p>
61      */
SetAssociationId(Aws::String && value)62     inline void SetAssociationId(Aws::String&& value) { m_associationIdHasBeenSet = true; m_associationId = std::move(value); }
63 
64     /**
65      * <p>The ID of the association you want to update. </p>
66      */
SetAssociationId(const char * value)67     inline void SetAssociationId(const char* value) { m_associationIdHasBeenSet = true; m_associationId.assign(value); }
68 
69     /**
70      * <p>The ID of the association you want to update. </p>
71      */
WithAssociationId(const Aws::String & value)72     inline UpdateAssociationRequest& WithAssociationId(const Aws::String& value) { SetAssociationId(value); return *this;}
73 
74     /**
75      * <p>The ID of the association you want to update. </p>
76      */
WithAssociationId(Aws::String && value)77     inline UpdateAssociationRequest& WithAssociationId(Aws::String&& value) { SetAssociationId(std::move(value)); return *this;}
78 
79     /**
80      * <p>The ID of the association you want to update. </p>
81      */
WithAssociationId(const char * value)82     inline UpdateAssociationRequest& WithAssociationId(const char* value) { SetAssociationId(value); return *this;}
83 
84 
85     /**
86      * <p>The parameters you want to update for the association. If you create a
87      * parameter using Parameter Store, a capability of Amazon Web Services Systems
88      * Manager, you can reference the parameter using
89      * <code>{{ssm:parameter-name}}</code>.</p>
90      */
GetParameters()91     inline const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& GetParameters() const{ return m_parameters; }
92 
93     /**
94      * <p>The parameters you want to update for the association. If you create a
95      * parameter using Parameter Store, a capability of Amazon Web Services Systems
96      * Manager, you can reference the parameter using
97      * <code>{{ssm:parameter-name}}</code>.</p>
98      */
ParametersHasBeenSet()99     inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; }
100 
101     /**
102      * <p>The parameters you want to update for the association. If you create a
103      * parameter using Parameter Store, a capability of Amazon Web Services Systems
104      * Manager, you can reference the parameter using
105      * <code>{{ssm:parameter-name}}</code>.</p>
106      */
SetParameters(const Aws::Map<Aws::String,Aws::Vector<Aws::String>> & value)107     inline void SetParameters(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { m_parametersHasBeenSet = true; m_parameters = value; }
108 
109     /**
110      * <p>The parameters you want to update for the association. If you create a
111      * parameter using Parameter Store, a capability of Amazon Web Services Systems
112      * Manager, you can reference the parameter using
113      * <code>{{ssm:parameter-name}}</code>.</p>
114      */
SetParameters(Aws::Map<Aws::String,Aws::Vector<Aws::String>> && value)115     inline void SetParameters(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); }
116 
117     /**
118      * <p>The parameters you want to update for the association. If you create a
119      * parameter using Parameter Store, a capability of Amazon Web Services Systems
120      * Manager, you can reference the parameter using
121      * <code>{{ssm:parameter-name}}</code>.</p>
122      */
WithParameters(const Aws::Map<Aws::String,Aws::Vector<Aws::String>> & value)123     inline UpdateAssociationRequest& WithParameters(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { SetParameters(value); return *this;}
124 
125     /**
126      * <p>The parameters you want to update for the association. If you create a
127      * parameter using Parameter Store, a capability of Amazon Web Services Systems
128      * Manager, you can reference the parameter using
129      * <code>{{ssm:parameter-name}}</code>.</p>
130      */
WithParameters(Aws::Map<Aws::String,Aws::Vector<Aws::String>> && value)131     inline UpdateAssociationRequest& WithParameters(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { SetParameters(std::move(value)); return *this;}
132 
133     /**
134      * <p>The parameters you want to update for the association. If you create a
135      * parameter using Parameter Store, a capability of Amazon Web Services Systems
136      * Manager, you can reference the parameter using
137      * <code>{{ssm:parameter-name}}</code>.</p>
138      */
AddParameters(const Aws::String & key,const Aws::Vector<Aws::String> & value)139     inline UpdateAssociationRequest& AddParameters(const Aws::String& key, const Aws::Vector<Aws::String>& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; }
140 
141     /**
142      * <p>The parameters you want to update for the association. If you create a
143      * parameter using Parameter Store, a capability of Amazon Web Services Systems
144      * Manager, you can reference the parameter using
145      * <code>{{ssm:parameter-name}}</code>.</p>
146      */
AddParameters(Aws::String && key,const Aws::Vector<Aws::String> & value)147     inline UpdateAssociationRequest& AddParameters(Aws::String&& key, const Aws::Vector<Aws::String>& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; }
148 
149     /**
150      * <p>The parameters you want to update for the association. If you create a
151      * parameter using Parameter Store, a capability of Amazon Web Services Systems
152      * Manager, you can reference the parameter using
153      * <code>{{ssm:parameter-name}}</code>.</p>
154      */
AddParameters(const Aws::String & key,Aws::Vector<Aws::String> && value)155     inline UpdateAssociationRequest& AddParameters(const Aws::String& key, Aws::Vector<Aws::String>&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; }
156 
157     /**
158      * <p>The parameters you want to update for the association. If you create a
159      * parameter using Parameter Store, a capability of Amazon Web Services Systems
160      * Manager, you can reference the parameter using
161      * <code>{{ssm:parameter-name}}</code>.</p>
162      */
AddParameters(Aws::String && key,Aws::Vector<Aws::String> && value)163     inline UpdateAssociationRequest& AddParameters(Aws::String&& key, Aws::Vector<Aws::String>&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), std::move(value)); return *this; }
164 
165     /**
166      * <p>The parameters you want to update for the association. If you create a
167      * parameter using Parameter Store, a capability of Amazon Web Services Systems
168      * Manager, you can reference the parameter using
169      * <code>{{ssm:parameter-name}}</code>.</p>
170      */
AddParameters(const char * key,Aws::Vector<Aws::String> && value)171     inline UpdateAssociationRequest& AddParameters(const char* key, Aws::Vector<Aws::String>&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; }
172 
173     /**
174      * <p>The parameters you want to update for the association. If you create a
175      * parameter using Parameter Store, a capability of Amazon Web Services Systems
176      * Manager, you can reference the parameter using
177      * <code>{{ssm:parameter-name}}</code>.</p>
178      */
AddParameters(const char * key,const Aws::Vector<Aws::String> & value)179     inline UpdateAssociationRequest& AddParameters(const char* key, const Aws::Vector<Aws::String>& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; }
180 
181 
182     /**
183      * <p>The document version you want update for the association. </p>
184      */
GetDocumentVersion()185     inline const Aws::String& GetDocumentVersion() const{ return m_documentVersion; }
186 
187     /**
188      * <p>The document version you want update for the association. </p>
189      */
DocumentVersionHasBeenSet()190     inline bool DocumentVersionHasBeenSet() const { return m_documentVersionHasBeenSet; }
191 
192     /**
193      * <p>The document version you want update for the association. </p>
194      */
SetDocumentVersion(const Aws::String & value)195     inline void SetDocumentVersion(const Aws::String& value) { m_documentVersionHasBeenSet = true; m_documentVersion = value; }
196 
197     /**
198      * <p>The document version you want update for the association. </p>
199      */
SetDocumentVersion(Aws::String && value)200     inline void SetDocumentVersion(Aws::String&& value) { m_documentVersionHasBeenSet = true; m_documentVersion = std::move(value); }
201 
202     /**
203      * <p>The document version you want update for the association. </p>
204      */
SetDocumentVersion(const char * value)205     inline void SetDocumentVersion(const char* value) { m_documentVersionHasBeenSet = true; m_documentVersion.assign(value); }
206 
207     /**
208      * <p>The document version you want update for the association. </p>
209      */
WithDocumentVersion(const Aws::String & value)210     inline UpdateAssociationRequest& WithDocumentVersion(const Aws::String& value) { SetDocumentVersion(value); return *this;}
211 
212     /**
213      * <p>The document version you want update for the association. </p>
214      */
WithDocumentVersion(Aws::String && value)215     inline UpdateAssociationRequest& WithDocumentVersion(Aws::String&& value) { SetDocumentVersion(std::move(value)); return *this;}
216 
217     /**
218      * <p>The document version you want update for the association. </p>
219      */
WithDocumentVersion(const char * value)220     inline UpdateAssociationRequest& WithDocumentVersion(const char* value) { SetDocumentVersion(value); return *this;}
221 
222 
223     /**
224      * <p>The cron expression used to schedule the association that you want to
225      * update.</p>
226      */
GetScheduleExpression()227     inline const Aws::String& GetScheduleExpression() const{ return m_scheduleExpression; }
228 
229     /**
230      * <p>The cron expression used to schedule the association that you want to
231      * update.</p>
232      */
ScheduleExpressionHasBeenSet()233     inline bool ScheduleExpressionHasBeenSet() const { return m_scheduleExpressionHasBeenSet; }
234 
235     /**
236      * <p>The cron expression used to schedule the association that you want to
237      * update.</p>
238      */
SetScheduleExpression(const Aws::String & value)239     inline void SetScheduleExpression(const Aws::String& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = value; }
240 
241     /**
242      * <p>The cron expression used to schedule the association that you want to
243      * update.</p>
244      */
SetScheduleExpression(Aws::String && value)245     inline void SetScheduleExpression(Aws::String&& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = std::move(value); }
246 
247     /**
248      * <p>The cron expression used to schedule the association that you want to
249      * update.</p>
250      */
SetScheduleExpression(const char * value)251     inline void SetScheduleExpression(const char* value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression.assign(value); }
252 
253     /**
254      * <p>The cron expression used to schedule the association that you want to
255      * update.</p>
256      */
WithScheduleExpression(const Aws::String & value)257     inline UpdateAssociationRequest& WithScheduleExpression(const Aws::String& value) { SetScheduleExpression(value); return *this;}
258 
259     /**
260      * <p>The cron expression used to schedule the association that you want to
261      * update.</p>
262      */
WithScheduleExpression(Aws::String && value)263     inline UpdateAssociationRequest& WithScheduleExpression(Aws::String&& value) { SetScheduleExpression(std::move(value)); return *this;}
264 
265     /**
266      * <p>The cron expression used to schedule the association that you want to
267      * update.</p>
268      */
WithScheduleExpression(const char * value)269     inline UpdateAssociationRequest& WithScheduleExpression(const char* value) { SetScheduleExpression(value); return *this;}
270 
271 
272     /**
273      * <p>An S3 bucket where you want to store the results of this request.</p>
274      */
GetOutputLocation()275     inline const InstanceAssociationOutputLocation& GetOutputLocation() const{ return m_outputLocation; }
276 
277     /**
278      * <p>An S3 bucket where you want to store the results of this request.</p>
279      */
OutputLocationHasBeenSet()280     inline bool OutputLocationHasBeenSet() const { return m_outputLocationHasBeenSet; }
281 
282     /**
283      * <p>An S3 bucket where you want to store the results of this request.</p>
284      */
SetOutputLocation(const InstanceAssociationOutputLocation & value)285     inline void SetOutputLocation(const InstanceAssociationOutputLocation& value) { m_outputLocationHasBeenSet = true; m_outputLocation = value; }
286 
287     /**
288      * <p>An S3 bucket where you want to store the results of this request.</p>
289      */
SetOutputLocation(InstanceAssociationOutputLocation && value)290     inline void SetOutputLocation(InstanceAssociationOutputLocation&& value) { m_outputLocationHasBeenSet = true; m_outputLocation = std::move(value); }
291 
292     /**
293      * <p>An S3 bucket where you want to store the results of this request.</p>
294      */
WithOutputLocation(const InstanceAssociationOutputLocation & value)295     inline UpdateAssociationRequest& WithOutputLocation(const InstanceAssociationOutputLocation& value) { SetOutputLocation(value); return *this;}
296 
297     /**
298      * <p>An S3 bucket where you want to store the results of this request.</p>
299      */
WithOutputLocation(InstanceAssociationOutputLocation && value)300     inline UpdateAssociationRequest& WithOutputLocation(InstanceAssociationOutputLocation&& value) { SetOutputLocation(std::move(value)); return *this;}
301 
302 
303     /**
304      * <p>The name of the SSM Command document or Automation runbook that contains the
305      * configuration information for the instance.</p> <p>You can specify Amazon Web
306      * Services-predefined documents, documents you created, or a document that is
307      * shared with you from another account.</p> <p>For Systems Manager document (SSM
308      * document) that are shared with you from other Amazon Web Services accounts, you
309      * must specify the complete SSM document ARN, in the following format:</p> <p>
310      * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i>
311      * </code> </p> <p>For example:</p> <p>
312      * <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p>
313      * <p>For Amazon Web Services-predefined documents and SSM documents you created in
314      * your account, you only need to specify the document name. For example,
315      * <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
316      */
GetName()317     inline const Aws::String& GetName() const{ return m_name; }
318 
319     /**
320      * <p>The name of the SSM Command document or Automation runbook that contains the
321      * configuration information for the instance.</p> <p>You can specify Amazon Web
322      * Services-predefined documents, documents you created, or a document that is
323      * shared with you from another account.</p> <p>For Systems Manager document (SSM
324      * document) that are shared with you from other Amazon Web Services accounts, you
325      * must specify the complete SSM document ARN, in the following format:</p> <p>
326      * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i>
327      * </code> </p> <p>For example:</p> <p>
328      * <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p>
329      * <p>For Amazon Web Services-predefined documents and SSM documents you created in
330      * your account, you only need to specify the document name. For example,
331      * <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
332      */
NameHasBeenSet()333     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
334 
335     /**
336      * <p>The name of the SSM Command document or Automation runbook that contains the
337      * configuration information for the instance.</p> <p>You can specify Amazon Web
338      * Services-predefined documents, documents you created, or a document that is
339      * shared with you from another account.</p> <p>For Systems Manager document (SSM
340      * document) that are shared with you from other Amazon Web Services accounts, you
341      * must specify the complete SSM document ARN, in the following format:</p> <p>
342      * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i>
343      * </code> </p> <p>For example:</p> <p>
344      * <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p>
345      * <p>For Amazon Web Services-predefined documents and SSM documents you created in
346      * your account, you only need to specify the document name. For example,
347      * <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
348      */
SetName(const Aws::String & value)349     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
350 
351     /**
352      * <p>The name of the SSM Command document or Automation runbook that contains the
353      * configuration information for the instance.</p> <p>You can specify Amazon Web
354      * Services-predefined documents, documents you created, or a document that is
355      * shared with you from another account.</p> <p>For Systems Manager document (SSM
356      * document) that are shared with you from other Amazon Web Services accounts, you
357      * must specify the complete SSM document ARN, in the following format:</p> <p>
358      * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i>
359      * </code> </p> <p>For example:</p> <p>
360      * <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p>
361      * <p>For Amazon Web Services-predefined documents and SSM documents you created in
362      * your account, you only need to specify the document name. For example,
363      * <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
364      */
SetName(Aws::String && value)365     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
366 
367     /**
368      * <p>The name of the SSM Command document or Automation runbook that contains the
369      * configuration information for the instance.</p> <p>You can specify Amazon Web
370      * Services-predefined documents, documents you created, or a document that is
371      * shared with you from another account.</p> <p>For Systems Manager document (SSM
372      * document) that are shared with you from other Amazon Web Services accounts, you
373      * must specify the complete SSM document ARN, in the following format:</p> <p>
374      * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i>
375      * </code> </p> <p>For example:</p> <p>
376      * <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p>
377      * <p>For Amazon Web Services-predefined documents and SSM documents you created in
378      * your account, you only need to specify the document name. For example,
379      * <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
380      */
SetName(const char * value)381     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
382 
383     /**
384      * <p>The name of the SSM Command document or Automation runbook that contains the
385      * configuration information for the instance.</p> <p>You can specify Amazon Web
386      * Services-predefined documents, documents you created, or a document that is
387      * shared with you from another account.</p> <p>For Systems Manager document (SSM
388      * document) that are shared with you from other Amazon Web Services accounts, you
389      * must specify the complete SSM document ARN, in the following format:</p> <p>
390      * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i>
391      * </code> </p> <p>For example:</p> <p>
392      * <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p>
393      * <p>For Amazon Web Services-predefined documents and SSM documents you created in
394      * your account, you only need to specify the document name. For example,
395      * <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
396      */
WithName(const Aws::String & value)397     inline UpdateAssociationRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
398 
399     /**
400      * <p>The name of the SSM Command document or Automation runbook that contains the
401      * configuration information for the instance.</p> <p>You can specify Amazon Web
402      * Services-predefined documents, documents you created, or a document that is
403      * shared with you from another account.</p> <p>For Systems Manager document (SSM
404      * document) that are shared with you from other Amazon Web Services accounts, you
405      * must specify the complete SSM document ARN, in the following format:</p> <p>
406      * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i>
407      * </code> </p> <p>For example:</p> <p>
408      * <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p>
409      * <p>For Amazon Web Services-predefined documents and SSM documents you created in
410      * your account, you only need to specify the document name. For example,
411      * <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
412      */
WithName(Aws::String && value)413     inline UpdateAssociationRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
414 
415     /**
416      * <p>The name of the SSM Command document or Automation runbook that contains the
417      * configuration information for the instance.</p> <p>You can specify Amazon Web
418      * Services-predefined documents, documents you created, or a document that is
419      * shared with you from another account.</p> <p>For Systems Manager document (SSM
420      * document) that are shared with you from other Amazon Web Services accounts, you
421      * must specify the complete SSM document ARN, in the following format:</p> <p>
422      * <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i>
423      * </code> </p> <p>For example:</p> <p>
424      * <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p>
425      * <p>For Amazon Web Services-predefined documents and SSM documents you created in
426      * your account, you only need to specify the document name. For example,
427      * <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
428      */
WithName(const char * value)429     inline UpdateAssociationRequest& WithName(const char* value) { SetName(value); return *this;}
430 
431 
432     /**
433      * <p>The targets of the association.</p>
434      */
GetTargets()435     inline const Aws::Vector<Target>& GetTargets() const{ return m_targets; }
436 
437     /**
438      * <p>The targets of the association.</p>
439      */
TargetsHasBeenSet()440     inline bool TargetsHasBeenSet() const { return m_targetsHasBeenSet; }
441 
442     /**
443      * <p>The targets of the association.</p>
444      */
SetTargets(const Aws::Vector<Target> & value)445     inline void SetTargets(const Aws::Vector<Target>& value) { m_targetsHasBeenSet = true; m_targets = value; }
446 
447     /**
448      * <p>The targets of the association.</p>
449      */
SetTargets(Aws::Vector<Target> && value)450     inline void SetTargets(Aws::Vector<Target>&& value) { m_targetsHasBeenSet = true; m_targets = std::move(value); }
451 
452     /**
453      * <p>The targets of the association.</p>
454      */
WithTargets(const Aws::Vector<Target> & value)455     inline UpdateAssociationRequest& WithTargets(const Aws::Vector<Target>& value) { SetTargets(value); return *this;}
456 
457     /**
458      * <p>The targets of the association.</p>
459      */
WithTargets(Aws::Vector<Target> && value)460     inline UpdateAssociationRequest& WithTargets(Aws::Vector<Target>&& value) { SetTargets(std::move(value)); return *this;}
461 
462     /**
463      * <p>The targets of the association.</p>
464      */
AddTargets(const Target & value)465     inline UpdateAssociationRequest& AddTargets(const Target& value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; }
466 
467     /**
468      * <p>The targets of the association.</p>
469      */
AddTargets(Target && value)470     inline UpdateAssociationRequest& AddTargets(Target&& value) { m_targetsHasBeenSet = true; m_targets.push_back(std::move(value)); return *this; }
471 
472 
473     /**
474      * <p>The name of the association that you want to update.</p>
475      */
GetAssociationName()476     inline const Aws::String& GetAssociationName() const{ return m_associationName; }
477 
478     /**
479      * <p>The name of the association that you want to update.</p>
480      */
AssociationNameHasBeenSet()481     inline bool AssociationNameHasBeenSet() const { return m_associationNameHasBeenSet; }
482 
483     /**
484      * <p>The name of the association that you want to update.</p>
485      */
SetAssociationName(const Aws::String & value)486     inline void SetAssociationName(const Aws::String& value) { m_associationNameHasBeenSet = true; m_associationName = value; }
487 
488     /**
489      * <p>The name of the association that you want to update.</p>
490      */
SetAssociationName(Aws::String && value)491     inline void SetAssociationName(Aws::String&& value) { m_associationNameHasBeenSet = true; m_associationName = std::move(value); }
492 
493     /**
494      * <p>The name of the association that you want to update.</p>
495      */
SetAssociationName(const char * value)496     inline void SetAssociationName(const char* value) { m_associationNameHasBeenSet = true; m_associationName.assign(value); }
497 
498     /**
499      * <p>The name of the association that you want to update.</p>
500      */
WithAssociationName(const Aws::String & value)501     inline UpdateAssociationRequest& WithAssociationName(const Aws::String& value) { SetAssociationName(value); return *this;}
502 
503     /**
504      * <p>The name of the association that you want to update.</p>
505      */
WithAssociationName(Aws::String && value)506     inline UpdateAssociationRequest& WithAssociationName(Aws::String&& value) { SetAssociationName(std::move(value)); return *this;}
507 
508     /**
509      * <p>The name of the association that you want to update.</p>
510      */
WithAssociationName(const char * value)511     inline UpdateAssociationRequest& WithAssociationName(const char* value) { SetAssociationName(value); return *this;}
512 
513 
514     /**
515      * <p>This parameter is provided for concurrency control purposes. You must specify
516      * the latest association version in the service. If you want to ensure that this
517      * request succeeds, either specify <code>$LATEST</code>, or omit this
518      * parameter.</p>
519      */
GetAssociationVersion()520     inline const Aws::String& GetAssociationVersion() const{ return m_associationVersion; }
521 
522     /**
523      * <p>This parameter is provided for concurrency control purposes. You must specify
524      * the latest association version in the service. If you want to ensure that this
525      * request succeeds, either specify <code>$LATEST</code>, or omit this
526      * parameter.</p>
527      */
AssociationVersionHasBeenSet()528     inline bool AssociationVersionHasBeenSet() const { return m_associationVersionHasBeenSet; }
529 
530     /**
531      * <p>This parameter is provided for concurrency control purposes. You must specify
532      * the latest association version in the service. If you want to ensure that this
533      * request succeeds, either specify <code>$LATEST</code>, or omit this
534      * parameter.</p>
535      */
SetAssociationVersion(const Aws::String & value)536     inline void SetAssociationVersion(const Aws::String& value) { m_associationVersionHasBeenSet = true; m_associationVersion = value; }
537 
538     /**
539      * <p>This parameter is provided for concurrency control purposes. You must specify
540      * the latest association version in the service. If you want to ensure that this
541      * request succeeds, either specify <code>$LATEST</code>, or omit this
542      * parameter.</p>
543      */
SetAssociationVersion(Aws::String && value)544     inline void SetAssociationVersion(Aws::String&& value) { m_associationVersionHasBeenSet = true; m_associationVersion = std::move(value); }
545 
546     /**
547      * <p>This parameter is provided for concurrency control purposes. You must specify
548      * the latest association version in the service. If you want to ensure that this
549      * request succeeds, either specify <code>$LATEST</code>, or omit this
550      * parameter.</p>
551      */
SetAssociationVersion(const char * value)552     inline void SetAssociationVersion(const char* value) { m_associationVersionHasBeenSet = true; m_associationVersion.assign(value); }
553 
554     /**
555      * <p>This parameter is provided for concurrency control purposes. You must specify
556      * the latest association version in the service. If you want to ensure that this
557      * request succeeds, either specify <code>$LATEST</code>, or omit this
558      * parameter.</p>
559      */
WithAssociationVersion(const Aws::String & value)560     inline UpdateAssociationRequest& WithAssociationVersion(const Aws::String& value) { SetAssociationVersion(value); return *this;}
561 
562     /**
563      * <p>This parameter is provided for concurrency control purposes. You must specify
564      * the latest association version in the service. If you want to ensure that this
565      * request succeeds, either specify <code>$LATEST</code>, or omit this
566      * parameter.</p>
567      */
WithAssociationVersion(Aws::String && value)568     inline UpdateAssociationRequest& WithAssociationVersion(Aws::String&& value) { SetAssociationVersion(std::move(value)); return *this;}
569 
570     /**
571      * <p>This parameter is provided for concurrency control purposes. You must specify
572      * the latest association version in the service. If you want to ensure that this
573      * request succeeds, either specify <code>$LATEST</code>, or omit this
574      * parameter.</p>
575      */
WithAssociationVersion(const char * value)576     inline UpdateAssociationRequest& WithAssociationVersion(const char* value) { SetAssociationVersion(value); return *this;}
577 
578 
579     /**
580      * <p>Specify the target for the association. This target is required for
581      * associations that use an Automation runbook and target resources by using rate
582      * controls. Automation is a capability of Amazon Web Services Systems Manager.</p>
583      */
GetAutomationTargetParameterName()584     inline const Aws::String& GetAutomationTargetParameterName() const{ return m_automationTargetParameterName; }
585 
586     /**
587      * <p>Specify the target for the association. This target is required for
588      * associations that use an Automation runbook and target resources by using rate
589      * controls. Automation is a capability of Amazon Web Services Systems Manager.</p>
590      */
AutomationTargetParameterNameHasBeenSet()591     inline bool AutomationTargetParameterNameHasBeenSet() const { return m_automationTargetParameterNameHasBeenSet; }
592 
593     /**
594      * <p>Specify the target for the association. This target is required for
595      * associations that use an Automation runbook and target resources by using rate
596      * controls. Automation is a capability of Amazon Web Services Systems Manager.</p>
597      */
SetAutomationTargetParameterName(const Aws::String & value)598     inline void SetAutomationTargetParameterName(const Aws::String& value) { m_automationTargetParameterNameHasBeenSet = true; m_automationTargetParameterName = value; }
599 
600     /**
601      * <p>Specify the target for the association. This target is required for
602      * associations that use an Automation runbook and target resources by using rate
603      * controls. Automation is a capability of Amazon Web Services Systems Manager.</p>
604      */
SetAutomationTargetParameterName(Aws::String && value)605     inline void SetAutomationTargetParameterName(Aws::String&& value) { m_automationTargetParameterNameHasBeenSet = true; m_automationTargetParameterName = std::move(value); }
606 
607     /**
608      * <p>Specify the target for the association. This target is required for
609      * associations that use an Automation runbook and target resources by using rate
610      * controls. Automation is a capability of Amazon Web Services Systems Manager.</p>
611      */
SetAutomationTargetParameterName(const char * value)612     inline void SetAutomationTargetParameterName(const char* value) { m_automationTargetParameterNameHasBeenSet = true; m_automationTargetParameterName.assign(value); }
613 
614     /**
615      * <p>Specify the target for the association. This target is required for
616      * associations that use an Automation runbook and target resources by using rate
617      * controls. Automation is a capability of Amazon Web Services Systems Manager.</p>
618      */
WithAutomationTargetParameterName(const Aws::String & value)619     inline UpdateAssociationRequest& WithAutomationTargetParameterName(const Aws::String& value) { SetAutomationTargetParameterName(value); return *this;}
620 
621     /**
622      * <p>Specify the target for the association. This target is required for
623      * associations that use an Automation runbook and target resources by using rate
624      * controls. Automation is a capability of Amazon Web Services Systems Manager.</p>
625      */
WithAutomationTargetParameterName(Aws::String && value)626     inline UpdateAssociationRequest& WithAutomationTargetParameterName(Aws::String&& value) { SetAutomationTargetParameterName(std::move(value)); return *this;}
627 
628     /**
629      * <p>Specify the target for the association. This target is required for
630      * associations that use an Automation runbook and target resources by using rate
631      * controls. Automation is a capability of Amazon Web Services Systems Manager.</p>
632      */
WithAutomationTargetParameterName(const char * value)633     inline UpdateAssociationRequest& WithAutomationTargetParameterName(const char* value) { SetAutomationTargetParameterName(value); return *this;}
634 
635 
636     /**
637      * <p>The number of errors that are allowed before the system stops sending
638      * requests to run the association on additional targets. You can specify either an
639      * absolute number of errors, for example 10, or a percentage of the target set,
640      * for example 10%. If you specify 3, for example, the system stops sending
641      * requests when the fourth error is received. If you specify 0, then the system
642      * stops sending requests after the first error is returned. If you run an
643      * association on 50 instances and set <code>MaxError</code> to 10%, then the
644      * system stops sending the request when the sixth error is received.</p>
645      * <p>Executions that are already running an association when
646      * <code>MaxErrors</code> is reached are allowed to complete, but some of these
647      * executions may fail as well. If you need to ensure that there won't be more than
648      * max-errors failed executions, set <code>MaxConcurrency</code> to 1 so that
649      * executions proceed one at a time.</p>
650      */
GetMaxErrors()651     inline const Aws::String& GetMaxErrors() const{ return m_maxErrors; }
652 
653     /**
654      * <p>The number of errors that are allowed before the system stops sending
655      * requests to run the association on additional targets. You can specify either an
656      * absolute number of errors, for example 10, or a percentage of the target set,
657      * for example 10%. If you specify 3, for example, the system stops sending
658      * requests when the fourth error is received. If you specify 0, then the system
659      * stops sending requests after the first error is returned. If you run an
660      * association on 50 instances and set <code>MaxError</code> to 10%, then the
661      * system stops sending the request when the sixth error is received.</p>
662      * <p>Executions that are already running an association when
663      * <code>MaxErrors</code> is reached are allowed to complete, but some of these
664      * executions may fail as well. If you need to ensure that there won't be more than
665      * max-errors failed executions, set <code>MaxConcurrency</code> to 1 so that
666      * executions proceed one at a time.</p>
667      */
MaxErrorsHasBeenSet()668     inline bool MaxErrorsHasBeenSet() const { return m_maxErrorsHasBeenSet; }
669 
670     /**
671      * <p>The number of errors that are allowed before the system stops sending
672      * requests to run the association on additional targets. You can specify either an
673      * absolute number of errors, for example 10, or a percentage of the target set,
674      * for example 10%. If you specify 3, for example, the system stops sending
675      * requests when the fourth error is received. If you specify 0, then the system
676      * stops sending requests after the first error is returned. If you run an
677      * association on 50 instances and set <code>MaxError</code> to 10%, then the
678      * system stops sending the request when the sixth error is received.</p>
679      * <p>Executions that are already running an association when
680      * <code>MaxErrors</code> is reached are allowed to complete, but some of these
681      * executions may fail as well. If you need to ensure that there won't be more than
682      * max-errors failed executions, set <code>MaxConcurrency</code> to 1 so that
683      * executions proceed one at a time.</p>
684      */
SetMaxErrors(const Aws::String & value)685     inline void SetMaxErrors(const Aws::String& value) { m_maxErrorsHasBeenSet = true; m_maxErrors = value; }
686 
687     /**
688      * <p>The number of errors that are allowed before the system stops sending
689      * requests to run the association on additional targets. You can specify either an
690      * absolute number of errors, for example 10, or a percentage of the target set,
691      * for example 10%. If you specify 3, for example, the system stops sending
692      * requests when the fourth error is received. If you specify 0, then the system
693      * stops sending requests after the first error is returned. If you run an
694      * association on 50 instances and set <code>MaxError</code> to 10%, then the
695      * system stops sending the request when the sixth error is received.</p>
696      * <p>Executions that are already running an association when
697      * <code>MaxErrors</code> is reached are allowed to complete, but some of these
698      * executions may fail as well. If you need to ensure that there won't be more than
699      * max-errors failed executions, set <code>MaxConcurrency</code> to 1 so that
700      * executions proceed one at a time.</p>
701      */
SetMaxErrors(Aws::String && value)702     inline void SetMaxErrors(Aws::String&& value) { m_maxErrorsHasBeenSet = true; m_maxErrors = std::move(value); }
703 
704     /**
705      * <p>The number of errors that are allowed before the system stops sending
706      * requests to run the association on additional targets. You can specify either an
707      * absolute number of errors, for example 10, or a percentage of the target set,
708      * for example 10%. If you specify 3, for example, the system stops sending
709      * requests when the fourth error is received. If you specify 0, then the system
710      * stops sending requests after the first error is returned. If you run an
711      * association on 50 instances and set <code>MaxError</code> to 10%, then the
712      * system stops sending the request when the sixth error is received.</p>
713      * <p>Executions that are already running an association when
714      * <code>MaxErrors</code> is reached are allowed to complete, but some of these
715      * executions may fail as well. If you need to ensure that there won't be more than
716      * max-errors failed executions, set <code>MaxConcurrency</code> to 1 so that
717      * executions proceed one at a time.</p>
718      */
SetMaxErrors(const char * value)719     inline void SetMaxErrors(const char* value) { m_maxErrorsHasBeenSet = true; m_maxErrors.assign(value); }
720 
721     /**
722      * <p>The number of errors that are allowed before the system stops sending
723      * requests to run the association on additional targets. You can specify either an
724      * absolute number of errors, for example 10, or a percentage of the target set,
725      * for example 10%. If you specify 3, for example, the system stops sending
726      * requests when the fourth error is received. If you specify 0, then the system
727      * stops sending requests after the first error is returned. If you run an
728      * association on 50 instances and set <code>MaxError</code> to 10%, then the
729      * system stops sending the request when the sixth error is received.</p>
730      * <p>Executions that are already running an association when
731      * <code>MaxErrors</code> is reached are allowed to complete, but some of these
732      * executions may fail as well. If you need to ensure that there won't be more than
733      * max-errors failed executions, set <code>MaxConcurrency</code> to 1 so that
734      * executions proceed one at a time.</p>
735      */
WithMaxErrors(const Aws::String & value)736     inline UpdateAssociationRequest& WithMaxErrors(const Aws::String& value) { SetMaxErrors(value); return *this;}
737 
738     /**
739      * <p>The number of errors that are allowed before the system stops sending
740      * requests to run the association on additional targets. You can specify either an
741      * absolute number of errors, for example 10, or a percentage of the target set,
742      * for example 10%. If you specify 3, for example, the system stops sending
743      * requests when the fourth error is received. If you specify 0, then the system
744      * stops sending requests after the first error is returned. If you run an
745      * association on 50 instances and set <code>MaxError</code> to 10%, then the
746      * system stops sending the request when the sixth error is received.</p>
747      * <p>Executions that are already running an association when
748      * <code>MaxErrors</code> is reached are allowed to complete, but some of these
749      * executions may fail as well. If you need to ensure that there won't be more than
750      * max-errors failed executions, set <code>MaxConcurrency</code> to 1 so that
751      * executions proceed one at a time.</p>
752      */
WithMaxErrors(Aws::String && value)753     inline UpdateAssociationRequest& WithMaxErrors(Aws::String&& value) { SetMaxErrors(std::move(value)); return *this;}
754 
755     /**
756      * <p>The number of errors that are allowed before the system stops sending
757      * requests to run the association on additional targets. You can specify either an
758      * absolute number of errors, for example 10, or a percentage of the target set,
759      * for example 10%. If you specify 3, for example, the system stops sending
760      * requests when the fourth error is received. If you specify 0, then the system
761      * stops sending requests after the first error is returned. If you run an
762      * association on 50 instances and set <code>MaxError</code> to 10%, then the
763      * system stops sending the request when the sixth error is received.</p>
764      * <p>Executions that are already running an association when
765      * <code>MaxErrors</code> is reached are allowed to complete, but some of these
766      * executions may fail as well. If you need to ensure that there won't be more than
767      * max-errors failed executions, set <code>MaxConcurrency</code> to 1 so that
768      * executions proceed one at a time.</p>
769      */
WithMaxErrors(const char * value)770     inline UpdateAssociationRequest& WithMaxErrors(const char* value) { SetMaxErrors(value); return *this;}
771 
772 
773     /**
774      * <p>The maximum number of targets allowed to run the association at the same
775      * time. You can specify a number, for example 10, or a percentage of the target
776      * set, for example 10%. The default value is 100%, which means all targets run the
777      * association at the same time.</p> <p>If a new instance starts and attempts to
778      * run an association while Systems Manager is running <code>MaxConcurrency</code>
779      * associations, the association is allowed to run. During the next association
780      * interval, the new instance will process its association within the limit
781      * specified for <code>MaxConcurrency</code>.</p>
782      */
GetMaxConcurrency()783     inline const Aws::String& GetMaxConcurrency() const{ return m_maxConcurrency; }
784 
785     /**
786      * <p>The maximum number of targets allowed to run the association at the same
787      * time. You can specify a number, for example 10, or a percentage of the target
788      * set, for example 10%. The default value is 100%, which means all targets run the
789      * association at the same time.</p> <p>If a new instance starts and attempts to
790      * run an association while Systems Manager is running <code>MaxConcurrency</code>
791      * associations, the association is allowed to run. During the next association
792      * interval, the new instance will process its association within the limit
793      * specified for <code>MaxConcurrency</code>.</p>
794      */
MaxConcurrencyHasBeenSet()795     inline bool MaxConcurrencyHasBeenSet() const { return m_maxConcurrencyHasBeenSet; }
796 
797     /**
798      * <p>The maximum number of targets allowed to run the association at the same
799      * time. You can specify a number, for example 10, or a percentage of the target
800      * set, for example 10%. The default value is 100%, which means all targets run the
801      * association at the same time.</p> <p>If a new instance starts and attempts to
802      * run an association while Systems Manager is running <code>MaxConcurrency</code>
803      * associations, the association is allowed to run. During the next association
804      * interval, the new instance will process its association within the limit
805      * specified for <code>MaxConcurrency</code>.</p>
806      */
SetMaxConcurrency(const Aws::String & value)807     inline void SetMaxConcurrency(const Aws::String& value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency = value; }
808 
809     /**
810      * <p>The maximum number of targets allowed to run the association at the same
811      * time. You can specify a number, for example 10, or a percentage of the target
812      * set, for example 10%. The default value is 100%, which means all targets run the
813      * association at the same time.</p> <p>If a new instance starts and attempts to
814      * run an association while Systems Manager is running <code>MaxConcurrency</code>
815      * associations, the association is allowed to run. During the next association
816      * interval, the new instance will process its association within the limit
817      * specified for <code>MaxConcurrency</code>.</p>
818      */
SetMaxConcurrency(Aws::String && value)819     inline void SetMaxConcurrency(Aws::String&& value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency = std::move(value); }
820 
821     /**
822      * <p>The maximum number of targets allowed to run the association at the same
823      * time. You can specify a number, for example 10, or a percentage of the target
824      * set, for example 10%. The default value is 100%, which means all targets run the
825      * association at the same time.</p> <p>If a new instance starts and attempts to
826      * run an association while Systems Manager is running <code>MaxConcurrency</code>
827      * associations, the association is allowed to run. During the next association
828      * interval, the new instance will process its association within the limit
829      * specified for <code>MaxConcurrency</code>.</p>
830      */
SetMaxConcurrency(const char * value)831     inline void SetMaxConcurrency(const char* value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency.assign(value); }
832 
833     /**
834      * <p>The maximum number of targets allowed to run the association at the same
835      * time. You can specify a number, for example 10, or a percentage of the target
836      * set, for example 10%. The default value is 100%, which means all targets run the
837      * association at the same time.</p> <p>If a new instance starts and attempts to
838      * run an association while Systems Manager is running <code>MaxConcurrency</code>
839      * associations, the association is allowed to run. During the next association
840      * interval, the new instance will process its association within the limit
841      * specified for <code>MaxConcurrency</code>.</p>
842      */
WithMaxConcurrency(const Aws::String & value)843     inline UpdateAssociationRequest& WithMaxConcurrency(const Aws::String& value) { SetMaxConcurrency(value); return *this;}
844 
845     /**
846      * <p>The maximum number of targets allowed to run the association at the same
847      * time. You can specify a number, for example 10, or a percentage of the target
848      * set, for example 10%. The default value is 100%, which means all targets run the
849      * association at the same time.</p> <p>If a new instance starts and attempts to
850      * run an association while Systems Manager is running <code>MaxConcurrency</code>
851      * associations, the association is allowed to run. During the next association
852      * interval, the new instance will process its association within the limit
853      * specified for <code>MaxConcurrency</code>.</p>
854      */
WithMaxConcurrency(Aws::String && value)855     inline UpdateAssociationRequest& WithMaxConcurrency(Aws::String&& value) { SetMaxConcurrency(std::move(value)); return *this;}
856 
857     /**
858      * <p>The maximum number of targets allowed to run the association at the same
859      * time. You can specify a number, for example 10, or a percentage of the target
860      * set, for example 10%. The default value is 100%, which means all targets run the
861      * association at the same time.</p> <p>If a new instance starts and attempts to
862      * run an association while Systems Manager is running <code>MaxConcurrency</code>
863      * associations, the association is allowed to run. During the next association
864      * interval, the new instance will process its association within the limit
865      * specified for <code>MaxConcurrency</code>.</p>
866      */
WithMaxConcurrency(const char * value)867     inline UpdateAssociationRequest& WithMaxConcurrency(const char* value) { SetMaxConcurrency(value); return *this;}
868 
869 
870     /**
871      * <p>The severity level to assign to the association.</p>
872      */
GetComplianceSeverity()873     inline const AssociationComplianceSeverity& GetComplianceSeverity() const{ return m_complianceSeverity; }
874 
875     /**
876      * <p>The severity level to assign to the association.</p>
877      */
ComplianceSeverityHasBeenSet()878     inline bool ComplianceSeverityHasBeenSet() const { return m_complianceSeverityHasBeenSet; }
879 
880     /**
881      * <p>The severity level to assign to the association.</p>
882      */
SetComplianceSeverity(const AssociationComplianceSeverity & value)883     inline void SetComplianceSeverity(const AssociationComplianceSeverity& value) { m_complianceSeverityHasBeenSet = true; m_complianceSeverity = value; }
884 
885     /**
886      * <p>The severity level to assign to the association.</p>
887      */
SetComplianceSeverity(AssociationComplianceSeverity && value)888     inline void SetComplianceSeverity(AssociationComplianceSeverity&& value) { m_complianceSeverityHasBeenSet = true; m_complianceSeverity = std::move(value); }
889 
890     /**
891      * <p>The severity level to assign to the association.</p>
892      */
WithComplianceSeverity(const AssociationComplianceSeverity & value)893     inline UpdateAssociationRequest& WithComplianceSeverity(const AssociationComplianceSeverity& value) { SetComplianceSeverity(value); return *this;}
894 
895     /**
896      * <p>The severity level to assign to the association.</p>
897      */
WithComplianceSeverity(AssociationComplianceSeverity && value)898     inline UpdateAssociationRequest& WithComplianceSeverity(AssociationComplianceSeverity&& value) { SetComplianceSeverity(std::move(value)); return *this;}
899 
900 
901     /**
902      * <p>The mode for generating association compliance. You can specify
903      * <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system
904      * uses the status of the association execution to determine the compliance status.
905      * If the association execution runs successfully, then the association is
906      * <code>COMPLIANT</code>. If the association execution doesn't run successfully,
907      * the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code>
908      * mode, you must specify the <code>AssociationId</code> as a parameter for the
909      * <a>PutComplianceItems</a> API operation. In this case, compliance data isn't
910      * managed by State Manager, a capability of Amazon Web Services Systems Manager.
911      * It is managed by your direct call to the <a>PutComplianceItems</a> API
912      * operation.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
913      */
GetSyncCompliance()914     inline const AssociationSyncCompliance& GetSyncCompliance() const{ return m_syncCompliance; }
915 
916     /**
917      * <p>The mode for generating association compliance. You can specify
918      * <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system
919      * uses the status of the association execution to determine the compliance status.
920      * If the association execution runs successfully, then the association is
921      * <code>COMPLIANT</code>. If the association execution doesn't run successfully,
922      * the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code>
923      * mode, you must specify the <code>AssociationId</code> as a parameter for the
924      * <a>PutComplianceItems</a> API operation. In this case, compliance data isn't
925      * managed by State Manager, a capability of Amazon Web Services Systems Manager.
926      * It is managed by your direct call to the <a>PutComplianceItems</a> API
927      * operation.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
928      */
SyncComplianceHasBeenSet()929     inline bool SyncComplianceHasBeenSet() const { return m_syncComplianceHasBeenSet; }
930 
931     /**
932      * <p>The mode for generating association compliance. You can specify
933      * <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system
934      * uses the status of the association execution to determine the compliance status.
935      * If the association execution runs successfully, then the association is
936      * <code>COMPLIANT</code>. If the association execution doesn't run successfully,
937      * the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code>
938      * mode, you must specify the <code>AssociationId</code> as a parameter for the
939      * <a>PutComplianceItems</a> API operation. In this case, compliance data isn't
940      * managed by State Manager, a capability of Amazon Web Services Systems Manager.
941      * It is managed by your direct call to the <a>PutComplianceItems</a> API
942      * operation.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
943      */
SetSyncCompliance(const AssociationSyncCompliance & value)944     inline void SetSyncCompliance(const AssociationSyncCompliance& value) { m_syncComplianceHasBeenSet = true; m_syncCompliance = value; }
945 
946     /**
947      * <p>The mode for generating association compliance. You can specify
948      * <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system
949      * uses the status of the association execution to determine the compliance status.
950      * If the association execution runs successfully, then the association is
951      * <code>COMPLIANT</code>. If the association execution doesn't run successfully,
952      * the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code>
953      * mode, you must specify the <code>AssociationId</code> as a parameter for the
954      * <a>PutComplianceItems</a> API operation. In this case, compliance data isn't
955      * managed by State Manager, a capability of Amazon Web Services Systems Manager.
956      * It is managed by your direct call to the <a>PutComplianceItems</a> API
957      * operation.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
958      */
SetSyncCompliance(AssociationSyncCompliance && value)959     inline void SetSyncCompliance(AssociationSyncCompliance&& value) { m_syncComplianceHasBeenSet = true; m_syncCompliance = std::move(value); }
960 
961     /**
962      * <p>The mode for generating association compliance. You can specify
963      * <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system
964      * uses the status of the association execution to determine the compliance status.
965      * If the association execution runs successfully, then the association is
966      * <code>COMPLIANT</code>. If the association execution doesn't run successfully,
967      * the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code>
968      * mode, you must specify the <code>AssociationId</code> as a parameter for the
969      * <a>PutComplianceItems</a> API operation. In this case, compliance data isn't
970      * managed by State Manager, a capability of Amazon Web Services Systems Manager.
971      * It is managed by your direct call to the <a>PutComplianceItems</a> API
972      * operation.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
973      */
WithSyncCompliance(const AssociationSyncCompliance & value)974     inline UpdateAssociationRequest& WithSyncCompliance(const AssociationSyncCompliance& value) { SetSyncCompliance(value); return *this;}
975 
976     /**
977      * <p>The mode for generating association compliance. You can specify
978      * <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system
979      * uses the status of the association execution to determine the compliance status.
980      * If the association execution runs successfully, then the association is
981      * <code>COMPLIANT</code>. If the association execution doesn't run successfully,
982      * the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code>
983      * mode, you must specify the <code>AssociationId</code> as a parameter for the
984      * <a>PutComplianceItems</a> API operation. In this case, compliance data isn't
985      * managed by State Manager, a capability of Amazon Web Services Systems Manager.
986      * It is managed by your direct call to the <a>PutComplianceItems</a> API
987      * operation.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
988      */
WithSyncCompliance(AssociationSyncCompliance && value)989     inline UpdateAssociationRequest& WithSyncCompliance(AssociationSyncCompliance&& value) { SetSyncCompliance(std::move(value)); return *this;}
990 
991 
992     /**
993      * <p>By default, when you update an association, the system runs it immediately
994      * after it is updated and then according to the schedule you specified. Specify
995      * this option if you don't want an association to run immediately after you update
996      * it. This parameter isn't supported for rate expressions.</p> <p>Also, if you
997      * specified this option when you created the association, you can reset it. To do
998      * so, specify the <code>no-apply-only-at-cron-interval</code> parameter when you
999      * update the association from the command line. This parameter forces the
1000      * association to run immediately after updating it and according to the interval
1001      * specified.</p>
1002      */
GetApplyOnlyAtCronInterval()1003     inline bool GetApplyOnlyAtCronInterval() const{ return m_applyOnlyAtCronInterval; }
1004 
1005     /**
1006      * <p>By default, when you update an association, the system runs it immediately
1007      * after it is updated and then according to the schedule you specified. Specify
1008      * this option if you don't want an association to run immediately after you update
1009      * it. This parameter isn't supported for rate expressions.</p> <p>Also, if you
1010      * specified this option when you created the association, you can reset it. To do
1011      * so, specify the <code>no-apply-only-at-cron-interval</code> parameter when you
1012      * update the association from the command line. This parameter forces the
1013      * association to run immediately after updating it and according to the interval
1014      * specified.</p>
1015      */
ApplyOnlyAtCronIntervalHasBeenSet()1016     inline bool ApplyOnlyAtCronIntervalHasBeenSet() const { return m_applyOnlyAtCronIntervalHasBeenSet; }
1017 
1018     /**
1019      * <p>By default, when you update an association, the system runs it immediately
1020      * after it is updated and then according to the schedule you specified. Specify
1021      * this option if you don't want an association to run immediately after you update
1022      * it. This parameter isn't supported for rate expressions.</p> <p>Also, if you
1023      * specified this option when you created the association, you can reset it. To do
1024      * so, specify the <code>no-apply-only-at-cron-interval</code> parameter when you
1025      * update the association from the command line. This parameter forces the
1026      * association to run immediately after updating it and according to the interval
1027      * specified.</p>
1028      */
SetApplyOnlyAtCronInterval(bool value)1029     inline void SetApplyOnlyAtCronInterval(bool value) { m_applyOnlyAtCronIntervalHasBeenSet = true; m_applyOnlyAtCronInterval = value; }
1030 
1031     /**
1032      * <p>By default, when you update an association, the system runs it immediately
1033      * after it is updated and then according to the schedule you specified. Specify
1034      * this option if you don't want an association to run immediately after you update
1035      * it. This parameter isn't supported for rate expressions.</p> <p>Also, if you
1036      * specified this option when you created the association, you can reset it. To do
1037      * so, specify the <code>no-apply-only-at-cron-interval</code> parameter when you
1038      * update the association from the command line. This parameter forces the
1039      * association to run immediately after updating it and according to the interval
1040      * specified.</p>
1041      */
WithApplyOnlyAtCronInterval(bool value)1042     inline UpdateAssociationRequest& WithApplyOnlyAtCronInterval(bool value) { SetApplyOnlyAtCronInterval(value); return *this;}
1043 
1044 
1045     /**
1046      * <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
1047      * documents you want to gate your associations under. The associations only run
1048      * when that change calendar is open. For more information, see <a
1049      * href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
1050      * Web Services Systems Manager Change Calendar</a>.</p>
1051      */
GetCalendarNames()1052     inline const Aws::Vector<Aws::String>& GetCalendarNames() const{ return m_calendarNames; }
1053 
1054     /**
1055      * <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
1056      * documents you want to gate your associations under. The associations only run
1057      * when that change calendar is open. For more information, see <a
1058      * href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
1059      * Web Services Systems Manager Change Calendar</a>.</p>
1060      */
CalendarNamesHasBeenSet()1061     inline bool CalendarNamesHasBeenSet() const { return m_calendarNamesHasBeenSet; }
1062 
1063     /**
1064      * <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
1065      * documents you want to gate your associations under. The associations only run
1066      * when that change calendar is open. For more information, see <a
1067      * href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
1068      * Web Services Systems Manager Change Calendar</a>.</p>
1069      */
SetCalendarNames(const Aws::Vector<Aws::String> & value)1070     inline void SetCalendarNames(const Aws::Vector<Aws::String>& value) { m_calendarNamesHasBeenSet = true; m_calendarNames = value; }
1071 
1072     /**
1073      * <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
1074      * documents you want to gate your associations under. The associations only run
1075      * when that change calendar is open. For more information, see <a
1076      * href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
1077      * Web Services Systems Manager Change Calendar</a>.</p>
1078      */
SetCalendarNames(Aws::Vector<Aws::String> && value)1079     inline void SetCalendarNames(Aws::Vector<Aws::String>&& value) { m_calendarNamesHasBeenSet = true; m_calendarNames = std::move(value); }
1080 
1081     /**
1082      * <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
1083      * documents you want to gate your associations under. The associations only run
1084      * when that change calendar is open. For more information, see <a
1085      * href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
1086      * Web Services Systems Manager Change Calendar</a>.</p>
1087      */
WithCalendarNames(const Aws::Vector<Aws::String> & value)1088     inline UpdateAssociationRequest& WithCalendarNames(const Aws::Vector<Aws::String>& value) { SetCalendarNames(value); return *this;}
1089 
1090     /**
1091      * <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
1092      * documents you want to gate your associations under. The associations only run
1093      * when that change calendar is open. For more information, see <a
1094      * href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
1095      * Web Services Systems Manager Change Calendar</a>.</p>
1096      */
WithCalendarNames(Aws::Vector<Aws::String> && value)1097     inline UpdateAssociationRequest& WithCalendarNames(Aws::Vector<Aws::String>&& value) { SetCalendarNames(std::move(value)); return *this;}
1098 
1099     /**
1100      * <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
1101      * documents you want to gate your associations under. The associations only run
1102      * when that change calendar is open. For more information, see <a
1103      * href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
1104      * Web Services Systems Manager Change Calendar</a>.</p>
1105      */
AddCalendarNames(const Aws::String & value)1106     inline UpdateAssociationRequest& AddCalendarNames(const Aws::String& value) { m_calendarNamesHasBeenSet = true; m_calendarNames.push_back(value); return *this; }
1107 
1108     /**
1109      * <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
1110      * documents you want to gate your associations under. The associations only run
1111      * when that change calendar is open. For more information, see <a
1112      * href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
1113      * Web Services Systems Manager Change Calendar</a>.</p>
1114      */
AddCalendarNames(Aws::String && value)1115     inline UpdateAssociationRequest& AddCalendarNames(Aws::String&& value) { m_calendarNamesHasBeenSet = true; m_calendarNames.push_back(std::move(value)); return *this; }
1116 
1117     /**
1118      * <p>The names or Amazon Resource Names (ARNs) of the Change Calendar type
1119      * documents you want to gate your associations under. The associations only run
1120      * when that change calendar is open. For more information, see <a
1121      * href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">Amazon
1122      * Web Services Systems Manager Change Calendar</a>.</p>
1123      */
AddCalendarNames(const char * value)1124     inline UpdateAssociationRequest& AddCalendarNames(const char* value) { m_calendarNamesHasBeenSet = true; m_calendarNames.push_back(value); return *this; }
1125 
1126 
1127     /**
1128      * <p>A location is a combination of Amazon Web Services Regions and Amazon Web
1129      * Services accounts where you want to run the association. Use this action to
1130      * update an association in multiple Regions and multiple accounts.</p>
1131      */
GetTargetLocations()1132     inline const Aws::Vector<TargetLocation>& GetTargetLocations() const{ return m_targetLocations; }
1133 
1134     /**
1135      * <p>A location is a combination of Amazon Web Services Regions and Amazon Web
1136      * Services accounts where you want to run the association. Use this action to
1137      * update an association in multiple Regions and multiple accounts.</p>
1138      */
TargetLocationsHasBeenSet()1139     inline bool TargetLocationsHasBeenSet() const { return m_targetLocationsHasBeenSet; }
1140 
1141     /**
1142      * <p>A location is a combination of Amazon Web Services Regions and Amazon Web
1143      * Services accounts where you want to run the association. Use this action to
1144      * update an association in multiple Regions and multiple accounts.</p>
1145      */
SetTargetLocations(const Aws::Vector<TargetLocation> & value)1146     inline void SetTargetLocations(const Aws::Vector<TargetLocation>& value) { m_targetLocationsHasBeenSet = true; m_targetLocations = value; }
1147 
1148     /**
1149      * <p>A location is a combination of Amazon Web Services Regions and Amazon Web
1150      * Services accounts where you want to run the association. Use this action to
1151      * update an association in multiple Regions and multiple accounts.</p>
1152      */
SetTargetLocations(Aws::Vector<TargetLocation> && value)1153     inline void SetTargetLocations(Aws::Vector<TargetLocation>&& value) { m_targetLocationsHasBeenSet = true; m_targetLocations = std::move(value); }
1154 
1155     /**
1156      * <p>A location is a combination of Amazon Web Services Regions and Amazon Web
1157      * Services accounts where you want to run the association. Use this action to
1158      * update an association in multiple Regions and multiple accounts.</p>
1159      */
WithTargetLocations(const Aws::Vector<TargetLocation> & value)1160     inline UpdateAssociationRequest& WithTargetLocations(const Aws::Vector<TargetLocation>& value) { SetTargetLocations(value); return *this;}
1161 
1162     /**
1163      * <p>A location is a combination of Amazon Web Services Regions and Amazon Web
1164      * Services accounts where you want to run the association. Use this action to
1165      * update an association in multiple Regions and multiple accounts.</p>
1166      */
WithTargetLocations(Aws::Vector<TargetLocation> && value)1167     inline UpdateAssociationRequest& WithTargetLocations(Aws::Vector<TargetLocation>&& value) { SetTargetLocations(std::move(value)); return *this;}
1168 
1169     /**
1170      * <p>A location is a combination of Amazon Web Services Regions and Amazon Web
1171      * Services accounts where you want to run the association. Use this action to
1172      * update an association in multiple Regions and multiple accounts.</p>
1173      */
AddTargetLocations(const TargetLocation & value)1174     inline UpdateAssociationRequest& AddTargetLocations(const TargetLocation& value) { m_targetLocationsHasBeenSet = true; m_targetLocations.push_back(value); return *this; }
1175 
1176     /**
1177      * <p>A location is a combination of Amazon Web Services Regions and Amazon Web
1178      * Services accounts where you want to run the association. Use this action to
1179      * update an association in multiple Regions and multiple accounts.</p>
1180      */
AddTargetLocations(TargetLocation && value)1181     inline UpdateAssociationRequest& AddTargetLocations(TargetLocation&& value) { m_targetLocationsHasBeenSet = true; m_targetLocations.push_back(std::move(value)); return *this; }
1182 
1183   private:
1184 
1185     Aws::String m_associationId;
1186     bool m_associationIdHasBeenSet;
1187 
1188     Aws::Map<Aws::String, Aws::Vector<Aws::String>> m_parameters;
1189     bool m_parametersHasBeenSet;
1190 
1191     Aws::String m_documentVersion;
1192     bool m_documentVersionHasBeenSet;
1193 
1194     Aws::String m_scheduleExpression;
1195     bool m_scheduleExpressionHasBeenSet;
1196 
1197     InstanceAssociationOutputLocation m_outputLocation;
1198     bool m_outputLocationHasBeenSet;
1199 
1200     Aws::String m_name;
1201     bool m_nameHasBeenSet;
1202 
1203     Aws::Vector<Target> m_targets;
1204     bool m_targetsHasBeenSet;
1205 
1206     Aws::String m_associationName;
1207     bool m_associationNameHasBeenSet;
1208 
1209     Aws::String m_associationVersion;
1210     bool m_associationVersionHasBeenSet;
1211 
1212     Aws::String m_automationTargetParameterName;
1213     bool m_automationTargetParameterNameHasBeenSet;
1214 
1215     Aws::String m_maxErrors;
1216     bool m_maxErrorsHasBeenSet;
1217 
1218     Aws::String m_maxConcurrency;
1219     bool m_maxConcurrencyHasBeenSet;
1220 
1221     AssociationComplianceSeverity m_complianceSeverity;
1222     bool m_complianceSeverityHasBeenSet;
1223 
1224     AssociationSyncCompliance m_syncCompliance;
1225     bool m_syncComplianceHasBeenSet;
1226 
1227     bool m_applyOnlyAtCronInterval;
1228     bool m_applyOnlyAtCronIntervalHasBeenSet;
1229 
1230     Aws::Vector<Aws::String> m_calendarNames;
1231     bool m_calendarNamesHasBeenSet;
1232 
1233     Aws::Vector<TargetLocation> m_targetLocations;
1234     bool m_targetLocationsHasBeenSet;
1235   };
1236 
1237 } // namespace Model
1238 } // namespace SSM
1239 } // namespace Aws
1240