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/sms/SMS_EXPORTS.h>
8 #include <aws/sms/SMSRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/sms/model/LicenseType.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace SMS
17 {
18 namespace Model
19 {
20 
21   /**
22    */
23   class AWS_SMS_API UpdateReplicationJobRequest : public SMSRequest
24   {
25   public:
26     UpdateReplicationJobRequest();
27 
28     // Service request name is the Operation name which will send this request out,
29     // each operation should has unique request name, so that we can get operation's name from this request.
30     // Note: this is not true for response, multiple operations may have the same response name,
31     // so we can not get operation's name from response.
GetServiceRequestName()32     inline virtual const char* GetServiceRequestName() const override { return "UpdateReplicationJob"; }
33 
34     Aws::String SerializePayload() const override;
35 
36     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
37 
38 
39     /**
40      * <p>The ID of the replication job.</p>
41      */
GetReplicationJobId()42     inline const Aws::String& GetReplicationJobId() const{ return m_replicationJobId; }
43 
44     /**
45      * <p>The ID of the replication job.</p>
46      */
ReplicationJobIdHasBeenSet()47     inline bool ReplicationJobIdHasBeenSet() const { return m_replicationJobIdHasBeenSet; }
48 
49     /**
50      * <p>The ID of the replication job.</p>
51      */
SetReplicationJobId(const Aws::String & value)52     inline void SetReplicationJobId(const Aws::String& value) { m_replicationJobIdHasBeenSet = true; m_replicationJobId = value; }
53 
54     /**
55      * <p>The ID of the replication job.</p>
56      */
SetReplicationJobId(Aws::String && value)57     inline void SetReplicationJobId(Aws::String&& value) { m_replicationJobIdHasBeenSet = true; m_replicationJobId = std::move(value); }
58 
59     /**
60      * <p>The ID of the replication job.</p>
61      */
SetReplicationJobId(const char * value)62     inline void SetReplicationJobId(const char* value) { m_replicationJobIdHasBeenSet = true; m_replicationJobId.assign(value); }
63 
64     /**
65      * <p>The ID of the replication job.</p>
66      */
WithReplicationJobId(const Aws::String & value)67     inline UpdateReplicationJobRequest& WithReplicationJobId(const Aws::String& value) { SetReplicationJobId(value); return *this;}
68 
69     /**
70      * <p>The ID of the replication job.</p>
71      */
WithReplicationJobId(Aws::String && value)72     inline UpdateReplicationJobRequest& WithReplicationJobId(Aws::String&& value) { SetReplicationJobId(std::move(value)); return *this;}
73 
74     /**
75      * <p>The ID of the replication job.</p>
76      */
WithReplicationJobId(const char * value)77     inline UpdateReplicationJobRequest& WithReplicationJobId(const char* value) { SetReplicationJobId(value); return *this;}
78 
79 
80     /**
81      * <p>The time between consecutive replication runs, in hours.</p>
82      */
GetFrequency()83     inline int GetFrequency() const{ return m_frequency; }
84 
85     /**
86      * <p>The time between consecutive replication runs, in hours.</p>
87      */
FrequencyHasBeenSet()88     inline bool FrequencyHasBeenSet() const { return m_frequencyHasBeenSet; }
89 
90     /**
91      * <p>The time between consecutive replication runs, in hours.</p>
92      */
SetFrequency(int value)93     inline void SetFrequency(int value) { m_frequencyHasBeenSet = true; m_frequency = value; }
94 
95     /**
96      * <p>The time between consecutive replication runs, in hours.</p>
97      */
WithFrequency(int value)98     inline UpdateReplicationJobRequest& WithFrequency(int value) { SetFrequency(value); return *this;}
99 
100 
101     /**
102      * <p>The start time of the next replication run.</p>
103      */
GetNextReplicationRunStartTime()104     inline const Aws::Utils::DateTime& GetNextReplicationRunStartTime() const{ return m_nextReplicationRunStartTime; }
105 
106     /**
107      * <p>The start time of the next replication run.</p>
108      */
NextReplicationRunStartTimeHasBeenSet()109     inline bool NextReplicationRunStartTimeHasBeenSet() const { return m_nextReplicationRunStartTimeHasBeenSet; }
110 
111     /**
112      * <p>The start time of the next replication run.</p>
113      */
SetNextReplicationRunStartTime(const Aws::Utils::DateTime & value)114     inline void SetNextReplicationRunStartTime(const Aws::Utils::DateTime& value) { m_nextReplicationRunStartTimeHasBeenSet = true; m_nextReplicationRunStartTime = value; }
115 
116     /**
117      * <p>The start time of the next replication run.</p>
118      */
SetNextReplicationRunStartTime(Aws::Utils::DateTime && value)119     inline void SetNextReplicationRunStartTime(Aws::Utils::DateTime&& value) { m_nextReplicationRunStartTimeHasBeenSet = true; m_nextReplicationRunStartTime = std::move(value); }
120 
121     /**
122      * <p>The start time of the next replication run.</p>
123      */
WithNextReplicationRunStartTime(const Aws::Utils::DateTime & value)124     inline UpdateReplicationJobRequest& WithNextReplicationRunStartTime(const Aws::Utils::DateTime& value) { SetNextReplicationRunStartTime(value); return *this;}
125 
126     /**
127      * <p>The start time of the next replication run.</p>
128      */
WithNextReplicationRunStartTime(Aws::Utils::DateTime && value)129     inline UpdateReplicationJobRequest& WithNextReplicationRunStartTime(Aws::Utils::DateTime&& value) { SetNextReplicationRunStartTime(std::move(value)); return *this;}
130 
131 
132     /**
133      * <p>The license type to be used for the AMI created by a successful replication
134      * run.</p>
135      */
GetLicenseType()136     inline const LicenseType& GetLicenseType() const{ return m_licenseType; }
137 
138     /**
139      * <p>The license type to be used for the AMI created by a successful replication
140      * run.</p>
141      */
LicenseTypeHasBeenSet()142     inline bool LicenseTypeHasBeenSet() const { return m_licenseTypeHasBeenSet; }
143 
144     /**
145      * <p>The license type to be used for the AMI created by a successful replication
146      * run.</p>
147      */
SetLicenseType(const LicenseType & value)148     inline void SetLicenseType(const LicenseType& value) { m_licenseTypeHasBeenSet = true; m_licenseType = value; }
149 
150     /**
151      * <p>The license type to be used for the AMI created by a successful replication
152      * run.</p>
153      */
SetLicenseType(LicenseType && value)154     inline void SetLicenseType(LicenseType&& value) { m_licenseTypeHasBeenSet = true; m_licenseType = std::move(value); }
155 
156     /**
157      * <p>The license type to be used for the AMI created by a successful replication
158      * run.</p>
159      */
WithLicenseType(const LicenseType & value)160     inline UpdateReplicationJobRequest& WithLicenseType(const LicenseType& value) { SetLicenseType(value); return *this;}
161 
162     /**
163      * <p>The license type to be used for the AMI created by a successful replication
164      * run.</p>
165      */
WithLicenseType(LicenseType && value)166     inline UpdateReplicationJobRequest& WithLicenseType(LicenseType&& value) { SetLicenseType(std::move(value)); return *this;}
167 
168 
169     /**
170      * <p>The name of the IAM role to be used by AWS SMS.</p>
171      */
GetRoleName()172     inline const Aws::String& GetRoleName() const{ return m_roleName; }
173 
174     /**
175      * <p>The name of the IAM role to be used by AWS SMS.</p>
176      */
RoleNameHasBeenSet()177     inline bool RoleNameHasBeenSet() const { return m_roleNameHasBeenSet; }
178 
179     /**
180      * <p>The name of the IAM role to be used by AWS SMS.</p>
181      */
SetRoleName(const Aws::String & value)182     inline void SetRoleName(const Aws::String& value) { m_roleNameHasBeenSet = true; m_roleName = value; }
183 
184     /**
185      * <p>The name of the IAM role to be used by AWS SMS.</p>
186      */
SetRoleName(Aws::String && value)187     inline void SetRoleName(Aws::String&& value) { m_roleNameHasBeenSet = true; m_roleName = std::move(value); }
188 
189     /**
190      * <p>The name of the IAM role to be used by AWS SMS.</p>
191      */
SetRoleName(const char * value)192     inline void SetRoleName(const char* value) { m_roleNameHasBeenSet = true; m_roleName.assign(value); }
193 
194     /**
195      * <p>The name of the IAM role to be used by AWS SMS.</p>
196      */
WithRoleName(const Aws::String & value)197     inline UpdateReplicationJobRequest& WithRoleName(const Aws::String& value) { SetRoleName(value); return *this;}
198 
199     /**
200      * <p>The name of the IAM role to be used by AWS SMS.</p>
201      */
WithRoleName(Aws::String && value)202     inline UpdateReplicationJobRequest& WithRoleName(Aws::String&& value) { SetRoleName(std::move(value)); return *this;}
203 
204     /**
205      * <p>The name of the IAM role to be used by AWS SMS.</p>
206      */
WithRoleName(const char * value)207     inline UpdateReplicationJobRequest& WithRoleName(const char* value) { SetRoleName(value); return *this;}
208 
209 
210     /**
211      * <p>The description of the replication job.</p>
212      */
GetDescription()213     inline const Aws::String& GetDescription() const{ return m_description; }
214 
215     /**
216      * <p>The description of the replication job.</p>
217      */
DescriptionHasBeenSet()218     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
219 
220     /**
221      * <p>The description of the replication job.</p>
222      */
SetDescription(const Aws::String & value)223     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
224 
225     /**
226      * <p>The description of the replication job.</p>
227      */
SetDescription(Aws::String && value)228     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
229 
230     /**
231      * <p>The description of the replication job.</p>
232      */
SetDescription(const char * value)233     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
234 
235     /**
236      * <p>The description of the replication job.</p>
237      */
WithDescription(const Aws::String & value)238     inline UpdateReplicationJobRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
239 
240     /**
241      * <p>The description of the replication job.</p>
242      */
WithDescription(Aws::String && value)243     inline UpdateReplicationJobRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
244 
245     /**
246      * <p>The description of the replication job.</p>
247      */
WithDescription(const char * value)248     inline UpdateReplicationJobRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
249 
250 
251     /**
252      * <p>The maximum number of SMS-created AMIs to retain. The oldest is deleted after
253      * the maximum number is reached and a new AMI is created.</p>
254      */
GetNumberOfRecentAmisToKeep()255     inline int GetNumberOfRecentAmisToKeep() const{ return m_numberOfRecentAmisToKeep; }
256 
257     /**
258      * <p>The maximum number of SMS-created AMIs to retain. The oldest is deleted after
259      * the maximum number is reached and a new AMI is created.</p>
260      */
NumberOfRecentAmisToKeepHasBeenSet()261     inline bool NumberOfRecentAmisToKeepHasBeenSet() const { return m_numberOfRecentAmisToKeepHasBeenSet; }
262 
263     /**
264      * <p>The maximum number of SMS-created AMIs to retain. The oldest is deleted after
265      * the maximum number is reached and a new AMI is created.</p>
266      */
SetNumberOfRecentAmisToKeep(int value)267     inline void SetNumberOfRecentAmisToKeep(int value) { m_numberOfRecentAmisToKeepHasBeenSet = true; m_numberOfRecentAmisToKeep = value; }
268 
269     /**
270      * <p>The maximum number of SMS-created AMIs to retain. The oldest is deleted after
271      * the maximum number is reached and a new AMI is created.</p>
272      */
WithNumberOfRecentAmisToKeep(int value)273     inline UpdateReplicationJobRequest& WithNumberOfRecentAmisToKeep(int value) { SetNumberOfRecentAmisToKeep(value); return *this;}
274 
275 
276     /**
277      * <p>When true, the replication job produces encrypted AMIs. For more information,
278      * <code>KmsKeyId</code>.</p>
279      */
GetEncrypted()280     inline bool GetEncrypted() const{ return m_encrypted; }
281 
282     /**
283      * <p>When true, the replication job produces encrypted AMIs. For more information,
284      * <code>KmsKeyId</code>.</p>
285      */
EncryptedHasBeenSet()286     inline bool EncryptedHasBeenSet() const { return m_encryptedHasBeenSet; }
287 
288     /**
289      * <p>When true, the replication job produces encrypted AMIs. For more information,
290      * <code>KmsKeyId</code>.</p>
291      */
SetEncrypted(bool value)292     inline void SetEncrypted(bool value) { m_encryptedHasBeenSet = true; m_encrypted = value; }
293 
294     /**
295      * <p>When true, the replication job produces encrypted AMIs. For more information,
296      * <code>KmsKeyId</code>.</p>
297      */
WithEncrypted(bool value)298     inline UpdateReplicationJobRequest& WithEncrypted(bool value) { SetEncrypted(value); return *this;}
299 
300 
301     /**
302      * <p>The ID of the KMS key for replication jobs that produce encrypted AMIs. This
303      * value can be any of the following:</p> <ul> <li> <p>KMS key ID</p> </li> <li>
304      * <p>KMS key alias</p> </li> <li> <p>ARN referring to the KMS key ID</p> </li>
305      * <li> <p>ARN referring to the KMS key alias</p> </li> </ul> <p>If encrypted is
306      * enabled but a KMS key ID is not specified, the customer's default KMS key for
307      * Amazon EBS is used.</p>
308      */
GetKmsKeyId()309     inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; }
310 
311     /**
312      * <p>The ID of the KMS key for replication jobs that produce encrypted AMIs. This
313      * value can be any of the following:</p> <ul> <li> <p>KMS key ID</p> </li> <li>
314      * <p>KMS key alias</p> </li> <li> <p>ARN referring to the KMS key ID</p> </li>
315      * <li> <p>ARN referring to the KMS key alias</p> </li> </ul> <p>If encrypted is
316      * enabled but a KMS key ID is not specified, the customer's default KMS key for
317      * Amazon EBS is used.</p>
318      */
KmsKeyIdHasBeenSet()319     inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; }
320 
321     /**
322      * <p>The ID of the KMS key for replication jobs that produce encrypted AMIs. This
323      * value can be any of the following:</p> <ul> <li> <p>KMS key ID</p> </li> <li>
324      * <p>KMS key alias</p> </li> <li> <p>ARN referring to the KMS key ID</p> </li>
325      * <li> <p>ARN referring to the KMS key alias</p> </li> </ul> <p>If encrypted is
326      * enabled but a KMS key ID is not specified, the customer's default KMS key for
327      * Amazon EBS is used.</p>
328      */
SetKmsKeyId(const Aws::String & value)329     inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; }
330 
331     /**
332      * <p>The ID of the KMS key for replication jobs that produce encrypted AMIs. This
333      * value can be any of the following:</p> <ul> <li> <p>KMS key ID</p> </li> <li>
334      * <p>KMS key alias</p> </li> <li> <p>ARN referring to the KMS key ID</p> </li>
335      * <li> <p>ARN referring to the KMS key alias</p> </li> </ul> <p>If encrypted is
336      * enabled but a KMS key ID is not specified, the customer's default KMS key for
337      * Amazon EBS is used.</p>
338      */
SetKmsKeyId(Aws::String && value)339     inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); }
340 
341     /**
342      * <p>The ID of the KMS key for replication jobs that produce encrypted AMIs. This
343      * value can be any of the following:</p> <ul> <li> <p>KMS key ID</p> </li> <li>
344      * <p>KMS key alias</p> </li> <li> <p>ARN referring to the KMS key ID</p> </li>
345      * <li> <p>ARN referring to the KMS key alias</p> </li> </ul> <p>If encrypted is
346      * enabled but a KMS key ID is not specified, the customer's default KMS key for
347      * Amazon EBS is used.</p>
348      */
SetKmsKeyId(const char * value)349     inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); }
350 
351     /**
352      * <p>The ID of the KMS key for replication jobs that produce encrypted AMIs. This
353      * value can be any of the following:</p> <ul> <li> <p>KMS key ID</p> </li> <li>
354      * <p>KMS key alias</p> </li> <li> <p>ARN referring to the KMS key ID</p> </li>
355      * <li> <p>ARN referring to the KMS key alias</p> </li> </ul> <p>If encrypted is
356      * enabled but a KMS key ID is not specified, the customer's default KMS key for
357      * Amazon EBS is used.</p>
358      */
WithKmsKeyId(const Aws::String & value)359     inline UpdateReplicationJobRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;}
360 
361     /**
362      * <p>The ID of the KMS key for replication jobs that produce encrypted AMIs. This
363      * value can be any of the following:</p> <ul> <li> <p>KMS key ID</p> </li> <li>
364      * <p>KMS key alias</p> </li> <li> <p>ARN referring to the KMS key ID</p> </li>
365      * <li> <p>ARN referring to the KMS key alias</p> </li> </ul> <p>If encrypted is
366      * enabled but a KMS key ID is not specified, the customer's default KMS key for
367      * Amazon EBS is used.</p>
368      */
WithKmsKeyId(Aws::String && value)369     inline UpdateReplicationJobRequest& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;}
370 
371     /**
372      * <p>The ID of the KMS key for replication jobs that produce encrypted AMIs. This
373      * value can be any of the following:</p> <ul> <li> <p>KMS key ID</p> </li> <li>
374      * <p>KMS key alias</p> </li> <li> <p>ARN referring to the KMS key ID</p> </li>
375      * <li> <p>ARN referring to the KMS key alias</p> </li> </ul> <p>If encrypted is
376      * enabled but a KMS key ID is not specified, the customer's default KMS key for
377      * Amazon EBS is used.</p>
378      */
WithKmsKeyId(const char * value)379     inline UpdateReplicationJobRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;}
380 
381   private:
382 
383     Aws::String m_replicationJobId;
384     bool m_replicationJobIdHasBeenSet;
385 
386     int m_frequency;
387     bool m_frequencyHasBeenSet;
388 
389     Aws::Utils::DateTime m_nextReplicationRunStartTime;
390     bool m_nextReplicationRunStartTimeHasBeenSet;
391 
392     LicenseType m_licenseType;
393     bool m_licenseTypeHasBeenSet;
394 
395     Aws::String m_roleName;
396     bool m_roleNameHasBeenSet;
397 
398     Aws::String m_description;
399     bool m_descriptionHasBeenSet;
400 
401     int m_numberOfRecentAmisToKeep;
402     bool m_numberOfRecentAmisToKeepHasBeenSet;
403 
404     bool m_encrypted;
405     bool m_encryptedHasBeenSet;
406 
407     Aws::String m_kmsKeyId;
408     bool m_kmsKeyIdHasBeenSet;
409   };
410 
411 } // namespace Model
412 } // namespace SMS
413 } // namespace Aws
414