1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/ssm/SSM_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/ssm/model/ResourceDataSyncSourceWithState.h>
10 #include <aws/ssm/model/ResourceDataSyncS3Destination.h>
11 #include <aws/core/utils/DateTime.h>
12 #include <aws/ssm/model/LastResourceDataSyncStatus.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace SSM
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>Information about a resource data sync configuration, including its current
32    * status and last successful sync.</p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResourceDataSyncItem">AWS
34    * API Reference</a></p>
35    */
36   class AWS_SSM_API ResourceDataSyncItem
37   {
38   public:
39     ResourceDataSyncItem();
40     ResourceDataSyncItem(Aws::Utils::Json::JsonView jsonValue);
41     ResourceDataSyncItem& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>The name of the resource data sync.</p>
47      */
GetSyncName()48     inline const Aws::String& GetSyncName() const{ return m_syncName; }
49 
50     /**
51      * <p>The name of the resource data sync.</p>
52      */
SyncNameHasBeenSet()53     inline bool SyncNameHasBeenSet() const { return m_syncNameHasBeenSet; }
54 
55     /**
56      * <p>The name of the resource data sync.</p>
57      */
SetSyncName(const Aws::String & value)58     inline void SetSyncName(const Aws::String& value) { m_syncNameHasBeenSet = true; m_syncName = value; }
59 
60     /**
61      * <p>The name of the resource data sync.</p>
62      */
SetSyncName(Aws::String && value)63     inline void SetSyncName(Aws::String&& value) { m_syncNameHasBeenSet = true; m_syncName = std::move(value); }
64 
65     /**
66      * <p>The name of the resource data sync.</p>
67      */
SetSyncName(const char * value)68     inline void SetSyncName(const char* value) { m_syncNameHasBeenSet = true; m_syncName.assign(value); }
69 
70     /**
71      * <p>The name of the resource data sync.</p>
72      */
WithSyncName(const Aws::String & value)73     inline ResourceDataSyncItem& WithSyncName(const Aws::String& value) { SetSyncName(value); return *this;}
74 
75     /**
76      * <p>The name of the resource data sync.</p>
77      */
WithSyncName(Aws::String && value)78     inline ResourceDataSyncItem& WithSyncName(Aws::String&& value) { SetSyncName(std::move(value)); return *this;}
79 
80     /**
81      * <p>The name of the resource data sync.</p>
82      */
WithSyncName(const char * value)83     inline ResourceDataSyncItem& WithSyncName(const char* value) { SetSyncName(value); return *this;}
84 
85 
86     /**
87      * <p>The type of resource data sync. If <code>SyncType</code> is
88      * <code>SyncToDestination</code>, then the resource data sync synchronizes data to
89      * an S3 bucket. If the <code>SyncType</code> is <code>SyncFromSource</code> then
90      * the resource data sync synchronizes data from Organizations or from multiple
91      * Amazon Web Services Regions.</p>
92      */
GetSyncType()93     inline const Aws::String& GetSyncType() const{ return m_syncType; }
94 
95     /**
96      * <p>The type of resource data sync. If <code>SyncType</code> is
97      * <code>SyncToDestination</code>, then the resource data sync synchronizes data to
98      * an S3 bucket. If the <code>SyncType</code> is <code>SyncFromSource</code> then
99      * the resource data sync synchronizes data from Organizations or from multiple
100      * Amazon Web Services Regions.</p>
101      */
SyncTypeHasBeenSet()102     inline bool SyncTypeHasBeenSet() const { return m_syncTypeHasBeenSet; }
103 
104     /**
105      * <p>The type of resource data sync. If <code>SyncType</code> is
106      * <code>SyncToDestination</code>, then the resource data sync synchronizes data to
107      * an S3 bucket. If the <code>SyncType</code> is <code>SyncFromSource</code> then
108      * the resource data sync synchronizes data from Organizations or from multiple
109      * Amazon Web Services Regions.</p>
110      */
SetSyncType(const Aws::String & value)111     inline void SetSyncType(const Aws::String& value) { m_syncTypeHasBeenSet = true; m_syncType = value; }
112 
113     /**
114      * <p>The type of resource data sync. If <code>SyncType</code> is
115      * <code>SyncToDestination</code>, then the resource data sync synchronizes data to
116      * an S3 bucket. If the <code>SyncType</code> is <code>SyncFromSource</code> then
117      * the resource data sync synchronizes data from Organizations or from multiple
118      * Amazon Web Services Regions.</p>
119      */
SetSyncType(Aws::String && value)120     inline void SetSyncType(Aws::String&& value) { m_syncTypeHasBeenSet = true; m_syncType = std::move(value); }
121 
122     /**
123      * <p>The type of resource data sync. If <code>SyncType</code> is
124      * <code>SyncToDestination</code>, then the resource data sync synchronizes data to
125      * an S3 bucket. If the <code>SyncType</code> is <code>SyncFromSource</code> then
126      * the resource data sync synchronizes data from Organizations or from multiple
127      * Amazon Web Services Regions.</p>
128      */
SetSyncType(const char * value)129     inline void SetSyncType(const char* value) { m_syncTypeHasBeenSet = true; m_syncType.assign(value); }
130 
131     /**
132      * <p>The type of resource data sync. If <code>SyncType</code> is
133      * <code>SyncToDestination</code>, then the resource data sync synchronizes data to
134      * an S3 bucket. If the <code>SyncType</code> is <code>SyncFromSource</code> then
135      * the resource data sync synchronizes data from Organizations or from multiple
136      * Amazon Web Services Regions.</p>
137      */
WithSyncType(const Aws::String & value)138     inline ResourceDataSyncItem& WithSyncType(const Aws::String& value) { SetSyncType(value); return *this;}
139 
140     /**
141      * <p>The type of resource data sync. If <code>SyncType</code> is
142      * <code>SyncToDestination</code>, then the resource data sync synchronizes data to
143      * an S3 bucket. If the <code>SyncType</code> is <code>SyncFromSource</code> then
144      * the resource data sync synchronizes data from Organizations or from multiple
145      * Amazon Web Services Regions.</p>
146      */
WithSyncType(Aws::String && value)147     inline ResourceDataSyncItem& WithSyncType(Aws::String&& value) { SetSyncType(std::move(value)); return *this;}
148 
149     /**
150      * <p>The type of resource data sync. If <code>SyncType</code> is
151      * <code>SyncToDestination</code>, then the resource data sync synchronizes data to
152      * an S3 bucket. If the <code>SyncType</code> is <code>SyncFromSource</code> then
153      * the resource data sync synchronizes data from Organizations or from multiple
154      * Amazon Web Services Regions.</p>
155      */
WithSyncType(const char * value)156     inline ResourceDataSyncItem& WithSyncType(const char* value) { SetSyncType(value); return *this;}
157 
158 
159     /**
160      * <p>Information about the source where the data was synchronized. </p>
161      */
GetSyncSource()162     inline const ResourceDataSyncSourceWithState& GetSyncSource() const{ return m_syncSource; }
163 
164     /**
165      * <p>Information about the source where the data was synchronized. </p>
166      */
SyncSourceHasBeenSet()167     inline bool SyncSourceHasBeenSet() const { return m_syncSourceHasBeenSet; }
168 
169     /**
170      * <p>Information about the source where the data was synchronized. </p>
171      */
SetSyncSource(const ResourceDataSyncSourceWithState & value)172     inline void SetSyncSource(const ResourceDataSyncSourceWithState& value) { m_syncSourceHasBeenSet = true; m_syncSource = value; }
173 
174     /**
175      * <p>Information about the source where the data was synchronized. </p>
176      */
SetSyncSource(ResourceDataSyncSourceWithState && value)177     inline void SetSyncSource(ResourceDataSyncSourceWithState&& value) { m_syncSourceHasBeenSet = true; m_syncSource = std::move(value); }
178 
179     /**
180      * <p>Information about the source where the data was synchronized. </p>
181      */
WithSyncSource(const ResourceDataSyncSourceWithState & value)182     inline ResourceDataSyncItem& WithSyncSource(const ResourceDataSyncSourceWithState& value) { SetSyncSource(value); return *this;}
183 
184     /**
185      * <p>Information about the source where the data was synchronized. </p>
186      */
WithSyncSource(ResourceDataSyncSourceWithState && value)187     inline ResourceDataSyncItem& WithSyncSource(ResourceDataSyncSourceWithState&& value) { SetSyncSource(std::move(value)); return *this;}
188 
189 
190     /**
191      * <p>Configuration information for the target S3 bucket.</p>
192      */
GetS3Destination()193     inline const ResourceDataSyncS3Destination& GetS3Destination() const{ return m_s3Destination; }
194 
195     /**
196      * <p>Configuration information for the target S3 bucket.</p>
197      */
S3DestinationHasBeenSet()198     inline bool S3DestinationHasBeenSet() const { return m_s3DestinationHasBeenSet; }
199 
200     /**
201      * <p>Configuration information for the target S3 bucket.</p>
202      */
SetS3Destination(const ResourceDataSyncS3Destination & value)203     inline void SetS3Destination(const ResourceDataSyncS3Destination& value) { m_s3DestinationHasBeenSet = true; m_s3Destination = value; }
204 
205     /**
206      * <p>Configuration information for the target S3 bucket.</p>
207      */
SetS3Destination(ResourceDataSyncS3Destination && value)208     inline void SetS3Destination(ResourceDataSyncS3Destination&& value) { m_s3DestinationHasBeenSet = true; m_s3Destination = std::move(value); }
209 
210     /**
211      * <p>Configuration information for the target S3 bucket.</p>
212      */
WithS3Destination(const ResourceDataSyncS3Destination & value)213     inline ResourceDataSyncItem& WithS3Destination(const ResourceDataSyncS3Destination& value) { SetS3Destination(value); return *this;}
214 
215     /**
216      * <p>Configuration information for the target S3 bucket.</p>
217      */
WithS3Destination(ResourceDataSyncS3Destination && value)218     inline ResourceDataSyncItem& WithS3Destination(ResourceDataSyncS3Destination&& value) { SetS3Destination(std::move(value)); return *this;}
219 
220 
221     /**
222      * <p>The last time the configuration attempted to sync (UTC).</p>
223      */
GetLastSyncTime()224     inline const Aws::Utils::DateTime& GetLastSyncTime() const{ return m_lastSyncTime; }
225 
226     /**
227      * <p>The last time the configuration attempted to sync (UTC).</p>
228      */
LastSyncTimeHasBeenSet()229     inline bool LastSyncTimeHasBeenSet() const { return m_lastSyncTimeHasBeenSet; }
230 
231     /**
232      * <p>The last time the configuration attempted to sync (UTC).</p>
233      */
SetLastSyncTime(const Aws::Utils::DateTime & value)234     inline void SetLastSyncTime(const Aws::Utils::DateTime& value) { m_lastSyncTimeHasBeenSet = true; m_lastSyncTime = value; }
235 
236     /**
237      * <p>The last time the configuration attempted to sync (UTC).</p>
238      */
SetLastSyncTime(Aws::Utils::DateTime && value)239     inline void SetLastSyncTime(Aws::Utils::DateTime&& value) { m_lastSyncTimeHasBeenSet = true; m_lastSyncTime = std::move(value); }
240 
241     /**
242      * <p>The last time the configuration attempted to sync (UTC).</p>
243      */
WithLastSyncTime(const Aws::Utils::DateTime & value)244     inline ResourceDataSyncItem& WithLastSyncTime(const Aws::Utils::DateTime& value) { SetLastSyncTime(value); return *this;}
245 
246     /**
247      * <p>The last time the configuration attempted to sync (UTC).</p>
248      */
WithLastSyncTime(Aws::Utils::DateTime && value)249     inline ResourceDataSyncItem& WithLastSyncTime(Aws::Utils::DateTime&& value) { SetLastSyncTime(std::move(value)); return *this;}
250 
251 
252     /**
253      * <p>The last time the sync operations returned a status of
254      * <code>SUCCESSFUL</code> (UTC).</p>
255      */
GetLastSuccessfulSyncTime()256     inline const Aws::Utils::DateTime& GetLastSuccessfulSyncTime() const{ return m_lastSuccessfulSyncTime; }
257 
258     /**
259      * <p>The last time the sync operations returned a status of
260      * <code>SUCCESSFUL</code> (UTC).</p>
261      */
LastSuccessfulSyncTimeHasBeenSet()262     inline bool LastSuccessfulSyncTimeHasBeenSet() const { return m_lastSuccessfulSyncTimeHasBeenSet; }
263 
264     /**
265      * <p>The last time the sync operations returned a status of
266      * <code>SUCCESSFUL</code> (UTC).</p>
267      */
SetLastSuccessfulSyncTime(const Aws::Utils::DateTime & value)268     inline void SetLastSuccessfulSyncTime(const Aws::Utils::DateTime& value) { m_lastSuccessfulSyncTimeHasBeenSet = true; m_lastSuccessfulSyncTime = value; }
269 
270     /**
271      * <p>The last time the sync operations returned a status of
272      * <code>SUCCESSFUL</code> (UTC).</p>
273      */
SetLastSuccessfulSyncTime(Aws::Utils::DateTime && value)274     inline void SetLastSuccessfulSyncTime(Aws::Utils::DateTime&& value) { m_lastSuccessfulSyncTimeHasBeenSet = true; m_lastSuccessfulSyncTime = std::move(value); }
275 
276     /**
277      * <p>The last time the sync operations returned a status of
278      * <code>SUCCESSFUL</code> (UTC).</p>
279      */
WithLastSuccessfulSyncTime(const Aws::Utils::DateTime & value)280     inline ResourceDataSyncItem& WithLastSuccessfulSyncTime(const Aws::Utils::DateTime& value) { SetLastSuccessfulSyncTime(value); return *this;}
281 
282     /**
283      * <p>The last time the sync operations returned a status of
284      * <code>SUCCESSFUL</code> (UTC).</p>
285      */
WithLastSuccessfulSyncTime(Aws::Utils::DateTime && value)286     inline ResourceDataSyncItem& WithLastSuccessfulSyncTime(Aws::Utils::DateTime&& value) { SetLastSuccessfulSyncTime(std::move(value)); return *this;}
287 
288 
289     /**
290      * <p>The date and time the resource data sync was changed. </p>
291      */
GetSyncLastModifiedTime()292     inline const Aws::Utils::DateTime& GetSyncLastModifiedTime() const{ return m_syncLastModifiedTime; }
293 
294     /**
295      * <p>The date and time the resource data sync was changed. </p>
296      */
SyncLastModifiedTimeHasBeenSet()297     inline bool SyncLastModifiedTimeHasBeenSet() const { return m_syncLastModifiedTimeHasBeenSet; }
298 
299     /**
300      * <p>The date and time the resource data sync was changed. </p>
301      */
SetSyncLastModifiedTime(const Aws::Utils::DateTime & value)302     inline void SetSyncLastModifiedTime(const Aws::Utils::DateTime& value) { m_syncLastModifiedTimeHasBeenSet = true; m_syncLastModifiedTime = value; }
303 
304     /**
305      * <p>The date and time the resource data sync was changed. </p>
306      */
SetSyncLastModifiedTime(Aws::Utils::DateTime && value)307     inline void SetSyncLastModifiedTime(Aws::Utils::DateTime&& value) { m_syncLastModifiedTimeHasBeenSet = true; m_syncLastModifiedTime = std::move(value); }
308 
309     /**
310      * <p>The date and time the resource data sync was changed. </p>
311      */
WithSyncLastModifiedTime(const Aws::Utils::DateTime & value)312     inline ResourceDataSyncItem& WithSyncLastModifiedTime(const Aws::Utils::DateTime& value) { SetSyncLastModifiedTime(value); return *this;}
313 
314     /**
315      * <p>The date and time the resource data sync was changed. </p>
316      */
WithSyncLastModifiedTime(Aws::Utils::DateTime && value)317     inline ResourceDataSyncItem& WithSyncLastModifiedTime(Aws::Utils::DateTime&& value) { SetSyncLastModifiedTime(std::move(value)); return *this;}
318 
319 
320     /**
321      * <p>The status reported by the last sync.</p>
322      */
GetLastStatus()323     inline const LastResourceDataSyncStatus& GetLastStatus() const{ return m_lastStatus; }
324 
325     /**
326      * <p>The status reported by the last sync.</p>
327      */
LastStatusHasBeenSet()328     inline bool LastStatusHasBeenSet() const { return m_lastStatusHasBeenSet; }
329 
330     /**
331      * <p>The status reported by the last sync.</p>
332      */
SetLastStatus(const LastResourceDataSyncStatus & value)333     inline void SetLastStatus(const LastResourceDataSyncStatus& value) { m_lastStatusHasBeenSet = true; m_lastStatus = value; }
334 
335     /**
336      * <p>The status reported by the last sync.</p>
337      */
SetLastStatus(LastResourceDataSyncStatus && value)338     inline void SetLastStatus(LastResourceDataSyncStatus&& value) { m_lastStatusHasBeenSet = true; m_lastStatus = std::move(value); }
339 
340     /**
341      * <p>The status reported by the last sync.</p>
342      */
WithLastStatus(const LastResourceDataSyncStatus & value)343     inline ResourceDataSyncItem& WithLastStatus(const LastResourceDataSyncStatus& value) { SetLastStatus(value); return *this;}
344 
345     /**
346      * <p>The status reported by the last sync.</p>
347      */
WithLastStatus(LastResourceDataSyncStatus && value)348     inline ResourceDataSyncItem& WithLastStatus(LastResourceDataSyncStatus&& value) { SetLastStatus(std::move(value)); return *this;}
349 
350 
351     /**
352      * <p>The date and time the configuration was created (UTC).</p>
353      */
GetSyncCreatedTime()354     inline const Aws::Utils::DateTime& GetSyncCreatedTime() const{ return m_syncCreatedTime; }
355 
356     /**
357      * <p>The date and time the configuration was created (UTC).</p>
358      */
SyncCreatedTimeHasBeenSet()359     inline bool SyncCreatedTimeHasBeenSet() const { return m_syncCreatedTimeHasBeenSet; }
360 
361     /**
362      * <p>The date and time the configuration was created (UTC).</p>
363      */
SetSyncCreatedTime(const Aws::Utils::DateTime & value)364     inline void SetSyncCreatedTime(const Aws::Utils::DateTime& value) { m_syncCreatedTimeHasBeenSet = true; m_syncCreatedTime = value; }
365 
366     /**
367      * <p>The date and time the configuration was created (UTC).</p>
368      */
SetSyncCreatedTime(Aws::Utils::DateTime && value)369     inline void SetSyncCreatedTime(Aws::Utils::DateTime&& value) { m_syncCreatedTimeHasBeenSet = true; m_syncCreatedTime = std::move(value); }
370 
371     /**
372      * <p>The date and time the configuration was created (UTC).</p>
373      */
WithSyncCreatedTime(const Aws::Utils::DateTime & value)374     inline ResourceDataSyncItem& WithSyncCreatedTime(const Aws::Utils::DateTime& value) { SetSyncCreatedTime(value); return *this;}
375 
376     /**
377      * <p>The date and time the configuration was created (UTC).</p>
378      */
WithSyncCreatedTime(Aws::Utils::DateTime && value)379     inline ResourceDataSyncItem& WithSyncCreatedTime(Aws::Utils::DateTime&& value) { SetSyncCreatedTime(std::move(value)); return *this;}
380 
381 
382     /**
383      * <p>The status message details reported by the last sync.</p>
384      */
GetLastSyncStatusMessage()385     inline const Aws::String& GetLastSyncStatusMessage() const{ return m_lastSyncStatusMessage; }
386 
387     /**
388      * <p>The status message details reported by the last sync.</p>
389      */
LastSyncStatusMessageHasBeenSet()390     inline bool LastSyncStatusMessageHasBeenSet() const { return m_lastSyncStatusMessageHasBeenSet; }
391 
392     /**
393      * <p>The status message details reported by the last sync.</p>
394      */
SetLastSyncStatusMessage(const Aws::String & value)395     inline void SetLastSyncStatusMessage(const Aws::String& value) { m_lastSyncStatusMessageHasBeenSet = true; m_lastSyncStatusMessage = value; }
396 
397     /**
398      * <p>The status message details reported by the last sync.</p>
399      */
SetLastSyncStatusMessage(Aws::String && value)400     inline void SetLastSyncStatusMessage(Aws::String&& value) { m_lastSyncStatusMessageHasBeenSet = true; m_lastSyncStatusMessage = std::move(value); }
401 
402     /**
403      * <p>The status message details reported by the last sync.</p>
404      */
SetLastSyncStatusMessage(const char * value)405     inline void SetLastSyncStatusMessage(const char* value) { m_lastSyncStatusMessageHasBeenSet = true; m_lastSyncStatusMessage.assign(value); }
406 
407     /**
408      * <p>The status message details reported by the last sync.</p>
409      */
WithLastSyncStatusMessage(const Aws::String & value)410     inline ResourceDataSyncItem& WithLastSyncStatusMessage(const Aws::String& value) { SetLastSyncStatusMessage(value); return *this;}
411 
412     /**
413      * <p>The status message details reported by the last sync.</p>
414      */
WithLastSyncStatusMessage(Aws::String && value)415     inline ResourceDataSyncItem& WithLastSyncStatusMessage(Aws::String&& value) { SetLastSyncStatusMessage(std::move(value)); return *this;}
416 
417     /**
418      * <p>The status message details reported by the last sync.</p>
419      */
WithLastSyncStatusMessage(const char * value)420     inline ResourceDataSyncItem& WithLastSyncStatusMessage(const char* value) { SetLastSyncStatusMessage(value); return *this;}
421 
422   private:
423 
424     Aws::String m_syncName;
425     bool m_syncNameHasBeenSet;
426 
427     Aws::String m_syncType;
428     bool m_syncTypeHasBeenSet;
429 
430     ResourceDataSyncSourceWithState m_syncSource;
431     bool m_syncSourceHasBeenSet;
432 
433     ResourceDataSyncS3Destination m_s3Destination;
434     bool m_s3DestinationHasBeenSet;
435 
436     Aws::Utils::DateTime m_lastSyncTime;
437     bool m_lastSyncTimeHasBeenSet;
438 
439     Aws::Utils::DateTime m_lastSuccessfulSyncTime;
440     bool m_lastSuccessfulSyncTimeHasBeenSet;
441 
442     Aws::Utils::DateTime m_syncLastModifiedTime;
443     bool m_syncLastModifiedTimeHasBeenSet;
444 
445     LastResourceDataSyncStatus m_lastStatus;
446     bool m_lastStatusHasBeenSet;
447 
448     Aws::Utils::DateTime m_syncCreatedTime;
449     bool m_syncCreatedTimeHasBeenSet;
450 
451     Aws::String m_lastSyncStatusMessage;
452     bool m_lastSyncStatusMessageHasBeenSet;
453   };
454 
455 } // namespace Model
456 } // namespace SSM
457 } // namespace Aws
458