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/snow-device-management/SnowDeviceManagement_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/snow-device-management/model/CpuOptions.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <aws/snow-device-management/model/InstanceState.h>
13 #include <aws/snow-device-management/model/InstanceBlockDeviceMapping.h>
14 #include <aws/snow-device-management/model/SecurityGroupIdentifier.h>
15 #include <utility>
16 
17 namespace Aws
18 {
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24   class JsonView;
25 } // namespace Json
26 } // namespace Utils
27 namespace SnowDeviceManagement
28 {
29 namespace Model
30 {
31 
32   /**
33    * <p>The description of an instance. Currently, Amazon EC2 instances are the only
34    * supported instance type.</p><p><h3>See Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/snow-device-management-2021-08-04/Instance">AWS
36    * API Reference</a></p>
37    */
38   class AWS_SNOWDEVICEMANAGEMENT_API Instance
39   {
40   public:
41     Instance();
42     Instance(Aws::Utils::Json::JsonView jsonValue);
43     Instance& operator=(Aws::Utils::Json::JsonView jsonValue);
44     Aws::Utils::Json::JsonValue Jsonize() const;
45 
46 
47     /**
48      * <p>The Amazon Machine Image (AMI) launch index, which you can use to find this
49      * instance in the launch group. </p>
50      */
GetAmiLaunchIndex()51     inline int GetAmiLaunchIndex() const{ return m_amiLaunchIndex; }
52 
53     /**
54      * <p>The Amazon Machine Image (AMI) launch index, which you can use to find this
55      * instance in the launch group. </p>
56      */
AmiLaunchIndexHasBeenSet()57     inline bool AmiLaunchIndexHasBeenSet() const { return m_amiLaunchIndexHasBeenSet; }
58 
59     /**
60      * <p>The Amazon Machine Image (AMI) launch index, which you can use to find this
61      * instance in the launch group. </p>
62      */
SetAmiLaunchIndex(int value)63     inline void SetAmiLaunchIndex(int value) { m_amiLaunchIndexHasBeenSet = true; m_amiLaunchIndex = value; }
64 
65     /**
66      * <p>The Amazon Machine Image (AMI) launch index, which you can use to find this
67      * instance in the launch group. </p>
68      */
WithAmiLaunchIndex(int value)69     inline Instance& WithAmiLaunchIndex(int value) { SetAmiLaunchIndex(value); return *this;}
70 
71 
72     /**
73      * <p>Any block device mapping entries for the instance.</p>
74      */
GetBlockDeviceMappings()75     inline const Aws::Vector<InstanceBlockDeviceMapping>& GetBlockDeviceMappings() const{ return m_blockDeviceMappings; }
76 
77     /**
78      * <p>Any block device mapping entries for the instance.</p>
79      */
BlockDeviceMappingsHasBeenSet()80     inline bool BlockDeviceMappingsHasBeenSet() const { return m_blockDeviceMappingsHasBeenSet; }
81 
82     /**
83      * <p>Any block device mapping entries for the instance.</p>
84      */
SetBlockDeviceMappings(const Aws::Vector<InstanceBlockDeviceMapping> & value)85     inline void SetBlockDeviceMappings(const Aws::Vector<InstanceBlockDeviceMapping>& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = value; }
86 
87     /**
88      * <p>Any block device mapping entries for the instance.</p>
89      */
SetBlockDeviceMappings(Aws::Vector<InstanceBlockDeviceMapping> && value)90     inline void SetBlockDeviceMappings(Aws::Vector<InstanceBlockDeviceMapping>&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings = std::move(value); }
91 
92     /**
93      * <p>Any block device mapping entries for the instance.</p>
94      */
WithBlockDeviceMappings(const Aws::Vector<InstanceBlockDeviceMapping> & value)95     inline Instance& WithBlockDeviceMappings(const Aws::Vector<InstanceBlockDeviceMapping>& value) { SetBlockDeviceMappings(value); return *this;}
96 
97     /**
98      * <p>Any block device mapping entries for the instance.</p>
99      */
WithBlockDeviceMappings(Aws::Vector<InstanceBlockDeviceMapping> && value)100     inline Instance& WithBlockDeviceMappings(Aws::Vector<InstanceBlockDeviceMapping>&& value) { SetBlockDeviceMappings(std::move(value)); return *this;}
101 
102     /**
103      * <p>Any block device mapping entries for the instance.</p>
104      */
AddBlockDeviceMappings(const InstanceBlockDeviceMapping & value)105     inline Instance& AddBlockDeviceMappings(const InstanceBlockDeviceMapping& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(value); return *this; }
106 
107     /**
108      * <p>Any block device mapping entries for the instance.</p>
109      */
AddBlockDeviceMappings(InstanceBlockDeviceMapping && value)110     inline Instance& AddBlockDeviceMappings(InstanceBlockDeviceMapping&& value) { m_blockDeviceMappingsHasBeenSet = true; m_blockDeviceMappings.push_back(std::move(value)); return *this; }
111 
112 
113     /**
114      * <p>The CPU options for the instance.</p>
115      */
GetCpuOptions()116     inline const CpuOptions& GetCpuOptions() const{ return m_cpuOptions; }
117 
118     /**
119      * <p>The CPU options for the instance.</p>
120      */
CpuOptionsHasBeenSet()121     inline bool CpuOptionsHasBeenSet() const { return m_cpuOptionsHasBeenSet; }
122 
123     /**
124      * <p>The CPU options for the instance.</p>
125      */
SetCpuOptions(const CpuOptions & value)126     inline void SetCpuOptions(const CpuOptions& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = value; }
127 
128     /**
129      * <p>The CPU options for the instance.</p>
130      */
SetCpuOptions(CpuOptions && value)131     inline void SetCpuOptions(CpuOptions&& value) { m_cpuOptionsHasBeenSet = true; m_cpuOptions = std::move(value); }
132 
133     /**
134      * <p>The CPU options for the instance.</p>
135      */
WithCpuOptions(const CpuOptions & value)136     inline Instance& WithCpuOptions(const CpuOptions& value) { SetCpuOptions(value); return *this;}
137 
138     /**
139      * <p>The CPU options for the instance.</p>
140      */
WithCpuOptions(CpuOptions && value)141     inline Instance& WithCpuOptions(CpuOptions&& value) { SetCpuOptions(std::move(value)); return *this;}
142 
143 
144     /**
145      * <p>When the instance was created.</p>
146      */
GetCreatedAt()147     inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; }
148 
149     /**
150      * <p>When the instance was created.</p>
151      */
CreatedAtHasBeenSet()152     inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; }
153 
154     /**
155      * <p>When the instance was created.</p>
156      */
SetCreatedAt(const Aws::Utils::DateTime & value)157     inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; }
158 
159     /**
160      * <p>When the instance was created.</p>
161      */
SetCreatedAt(Aws::Utils::DateTime && value)162     inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); }
163 
164     /**
165      * <p>When the instance was created.</p>
166      */
WithCreatedAt(const Aws::Utils::DateTime & value)167     inline Instance& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;}
168 
169     /**
170      * <p>When the instance was created.</p>
171      */
WithCreatedAt(Aws::Utils::DateTime && value)172     inline Instance& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;}
173 
174 
175     /**
176      * <p>The ID of the AMI used to launch the instance.</p>
177      */
GetImageId()178     inline const Aws::String& GetImageId() const{ return m_imageId; }
179 
180     /**
181      * <p>The ID of the AMI used to launch the instance.</p>
182      */
ImageIdHasBeenSet()183     inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; }
184 
185     /**
186      * <p>The ID of the AMI used to launch the instance.</p>
187      */
SetImageId(const Aws::String & value)188     inline void SetImageId(const Aws::String& value) { m_imageIdHasBeenSet = true; m_imageId = value; }
189 
190     /**
191      * <p>The ID of the AMI used to launch the instance.</p>
192      */
SetImageId(Aws::String && value)193     inline void SetImageId(Aws::String&& value) { m_imageIdHasBeenSet = true; m_imageId = std::move(value); }
194 
195     /**
196      * <p>The ID of the AMI used to launch the instance.</p>
197      */
SetImageId(const char * value)198     inline void SetImageId(const char* value) { m_imageIdHasBeenSet = true; m_imageId.assign(value); }
199 
200     /**
201      * <p>The ID of the AMI used to launch the instance.</p>
202      */
WithImageId(const Aws::String & value)203     inline Instance& WithImageId(const Aws::String& value) { SetImageId(value); return *this;}
204 
205     /**
206      * <p>The ID of the AMI used to launch the instance.</p>
207      */
WithImageId(Aws::String && value)208     inline Instance& WithImageId(Aws::String&& value) { SetImageId(std::move(value)); return *this;}
209 
210     /**
211      * <p>The ID of the AMI used to launch the instance.</p>
212      */
WithImageId(const char * value)213     inline Instance& WithImageId(const char* value) { SetImageId(value); return *this;}
214 
215 
216     /**
217      * <p>The ID of the instance.</p>
218      */
GetInstanceId()219     inline const Aws::String& GetInstanceId() const{ return m_instanceId; }
220 
221     /**
222      * <p>The ID of the instance.</p>
223      */
InstanceIdHasBeenSet()224     inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; }
225 
226     /**
227      * <p>The ID of the instance.</p>
228      */
SetInstanceId(const Aws::String & value)229     inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; }
230 
231     /**
232      * <p>The ID of the instance.</p>
233      */
SetInstanceId(Aws::String && value)234     inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); }
235 
236     /**
237      * <p>The ID of the instance.</p>
238      */
SetInstanceId(const char * value)239     inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); }
240 
241     /**
242      * <p>The ID of the instance.</p>
243      */
WithInstanceId(const Aws::String & value)244     inline Instance& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;}
245 
246     /**
247      * <p>The ID of the instance.</p>
248      */
WithInstanceId(Aws::String && value)249     inline Instance& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;}
250 
251     /**
252      * <p>The ID of the instance.</p>
253      */
WithInstanceId(const char * value)254     inline Instance& WithInstanceId(const char* value) { SetInstanceId(value); return *this;}
255 
256 
257     /**
258      * <p>The instance type.</p>
259      */
GetInstanceType()260     inline const Aws::String& GetInstanceType() const{ return m_instanceType; }
261 
262     /**
263      * <p>The instance type.</p>
264      */
InstanceTypeHasBeenSet()265     inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
266 
267     /**
268      * <p>The instance type.</p>
269      */
SetInstanceType(const Aws::String & value)270     inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
271 
272     /**
273      * <p>The instance type.</p>
274      */
SetInstanceType(Aws::String && value)275     inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); }
276 
277     /**
278      * <p>The instance type.</p>
279      */
SetInstanceType(const char * value)280     inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); }
281 
282     /**
283      * <p>The instance type.</p>
284      */
WithInstanceType(const Aws::String & value)285     inline Instance& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;}
286 
287     /**
288      * <p>The instance type.</p>
289      */
WithInstanceType(Aws::String && value)290     inline Instance& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;}
291 
292     /**
293      * <p>The instance type.</p>
294      */
WithInstanceType(const char * value)295     inline Instance& WithInstanceType(const char* value) { SetInstanceType(value); return *this;}
296 
297 
298     /**
299      * <p>The private IPv4 address assigned to the instance.</p>
300      */
GetPrivateIpAddress()301     inline const Aws::String& GetPrivateIpAddress() const{ return m_privateIpAddress; }
302 
303     /**
304      * <p>The private IPv4 address assigned to the instance.</p>
305      */
PrivateIpAddressHasBeenSet()306     inline bool PrivateIpAddressHasBeenSet() const { return m_privateIpAddressHasBeenSet; }
307 
308     /**
309      * <p>The private IPv4 address assigned to the instance.</p>
310      */
SetPrivateIpAddress(const Aws::String & value)311     inline void SetPrivateIpAddress(const Aws::String& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = value; }
312 
313     /**
314      * <p>The private IPv4 address assigned to the instance.</p>
315      */
SetPrivateIpAddress(Aws::String && value)316     inline void SetPrivateIpAddress(Aws::String&& value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress = std::move(value); }
317 
318     /**
319      * <p>The private IPv4 address assigned to the instance.</p>
320      */
SetPrivateIpAddress(const char * value)321     inline void SetPrivateIpAddress(const char* value) { m_privateIpAddressHasBeenSet = true; m_privateIpAddress.assign(value); }
322 
323     /**
324      * <p>The private IPv4 address assigned to the instance.</p>
325      */
WithPrivateIpAddress(const Aws::String & value)326     inline Instance& WithPrivateIpAddress(const Aws::String& value) { SetPrivateIpAddress(value); return *this;}
327 
328     /**
329      * <p>The private IPv4 address assigned to the instance.</p>
330      */
WithPrivateIpAddress(Aws::String && value)331     inline Instance& WithPrivateIpAddress(Aws::String&& value) { SetPrivateIpAddress(std::move(value)); return *this;}
332 
333     /**
334      * <p>The private IPv4 address assigned to the instance.</p>
335      */
WithPrivateIpAddress(const char * value)336     inline Instance& WithPrivateIpAddress(const char* value) { SetPrivateIpAddress(value); return *this;}
337 
338 
339     /**
340      * <p>The public IPv4 address assigned to the instance.</p>
341      */
GetPublicIpAddress()342     inline const Aws::String& GetPublicIpAddress() const{ return m_publicIpAddress; }
343 
344     /**
345      * <p>The public IPv4 address assigned to the instance.</p>
346      */
PublicIpAddressHasBeenSet()347     inline bool PublicIpAddressHasBeenSet() const { return m_publicIpAddressHasBeenSet; }
348 
349     /**
350      * <p>The public IPv4 address assigned to the instance.</p>
351      */
SetPublicIpAddress(const Aws::String & value)352     inline void SetPublicIpAddress(const Aws::String& value) { m_publicIpAddressHasBeenSet = true; m_publicIpAddress = value; }
353 
354     /**
355      * <p>The public IPv4 address assigned to the instance.</p>
356      */
SetPublicIpAddress(Aws::String && value)357     inline void SetPublicIpAddress(Aws::String&& value) { m_publicIpAddressHasBeenSet = true; m_publicIpAddress = std::move(value); }
358 
359     /**
360      * <p>The public IPv4 address assigned to the instance.</p>
361      */
SetPublicIpAddress(const char * value)362     inline void SetPublicIpAddress(const char* value) { m_publicIpAddressHasBeenSet = true; m_publicIpAddress.assign(value); }
363 
364     /**
365      * <p>The public IPv4 address assigned to the instance.</p>
366      */
WithPublicIpAddress(const Aws::String & value)367     inline Instance& WithPublicIpAddress(const Aws::String& value) { SetPublicIpAddress(value); return *this;}
368 
369     /**
370      * <p>The public IPv4 address assigned to the instance.</p>
371      */
WithPublicIpAddress(Aws::String && value)372     inline Instance& WithPublicIpAddress(Aws::String&& value) { SetPublicIpAddress(std::move(value)); return *this;}
373 
374     /**
375      * <p>The public IPv4 address assigned to the instance.</p>
376      */
WithPublicIpAddress(const char * value)377     inline Instance& WithPublicIpAddress(const char* value) { SetPublicIpAddress(value); return *this;}
378 
379 
380     /**
381      * <p>The device name of the root device volume (for example,
382      * <code>/dev/sda1</code>). </p>
383      */
GetRootDeviceName()384     inline const Aws::String& GetRootDeviceName() const{ return m_rootDeviceName; }
385 
386     /**
387      * <p>The device name of the root device volume (for example,
388      * <code>/dev/sda1</code>). </p>
389      */
RootDeviceNameHasBeenSet()390     inline bool RootDeviceNameHasBeenSet() const { return m_rootDeviceNameHasBeenSet; }
391 
392     /**
393      * <p>The device name of the root device volume (for example,
394      * <code>/dev/sda1</code>). </p>
395      */
SetRootDeviceName(const Aws::String & value)396     inline void SetRootDeviceName(const Aws::String& value) { m_rootDeviceNameHasBeenSet = true; m_rootDeviceName = value; }
397 
398     /**
399      * <p>The device name of the root device volume (for example,
400      * <code>/dev/sda1</code>). </p>
401      */
SetRootDeviceName(Aws::String && value)402     inline void SetRootDeviceName(Aws::String&& value) { m_rootDeviceNameHasBeenSet = true; m_rootDeviceName = std::move(value); }
403 
404     /**
405      * <p>The device name of the root device volume (for example,
406      * <code>/dev/sda1</code>). </p>
407      */
SetRootDeviceName(const char * value)408     inline void SetRootDeviceName(const char* value) { m_rootDeviceNameHasBeenSet = true; m_rootDeviceName.assign(value); }
409 
410     /**
411      * <p>The device name of the root device volume (for example,
412      * <code>/dev/sda1</code>). </p>
413      */
WithRootDeviceName(const Aws::String & value)414     inline Instance& WithRootDeviceName(const Aws::String& value) { SetRootDeviceName(value); return *this;}
415 
416     /**
417      * <p>The device name of the root device volume (for example,
418      * <code>/dev/sda1</code>). </p>
419      */
WithRootDeviceName(Aws::String && value)420     inline Instance& WithRootDeviceName(Aws::String&& value) { SetRootDeviceName(std::move(value)); return *this;}
421 
422     /**
423      * <p>The device name of the root device volume (for example,
424      * <code>/dev/sda1</code>). </p>
425      */
WithRootDeviceName(const char * value)426     inline Instance& WithRootDeviceName(const char* value) { SetRootDeviceName(value); return *this;}
427 
428 
429     /**
430      * <p>The security groups for the instance.</p>
431      */
GetSecurityGroups()432     inline const Aws::Vector<SecurityGroupIdentifier>& GetSecurityGroups() const{ return m_securityGroups; }
433 
434     /**
435      * <p>The security groups for the instance.</p>
436      */
SecurityGroupsHasBeenSet()437     inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; }
438 
439     /**
440      * <p>The security groups for the instance.</p>
441      */
SetSecurityGroups(const Aws::Vector<SecurityGroupIdentifier> & value)442     inline void SetSecurityGroups(const Aws::Vector<SecurityGroupIdentifier>& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = value; }
443 
444     /**
445      * <p>The security groups for the instance.</p>
446      */
SetSecurityGroups(Aws::Vector<SecurityGroupIdentifier> && value)447     inline void SetSecurityGroups(Aws::Vector<SecurityGroupIdentifier>&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::move(value); }
448 
449     /**
450      * <p>The security groups for the instance.</p>
451      */
WithSecurityGroups(const Aws::Vector<SecurityGroupIdentifier> & value)452     inline Instance& WithSecurityGroups(const Aws::Vector<SecurityGroupIdentifier>& value) { SetSecurityGroups(value); return *this;}
453 
454     /**
455      * <p>The security groups for the instance.</p>
456      */
WithSecurityGroups(Aws::Vector<SecurityGroupIdentifier> && value)457     inline Instance& WithSecurityGroups(Aws::Vector<SecurityGroupIdentifier>&& value) { SetSecurityGroups(std::move(value)); return *this;}
458 
459     /**
460      * <p>The security groups for the instance.</p>
461      */
AddSecurityGroups(const SecurityGroupIdentifier & value)462     inline Instance& AddSecurityGroups(const SecurityGroupIdentifier& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; }
463 
464     /**
465      * <p>The security groups for the instance.</p>
466      */
AddSecurityGroups(SecurityGroupIdentifier && value)467     inline Instance& AddSecurityGroups(SecurityGroupIdentifier&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; }
468 
469 
470 
GetState()471     inline const InstanceState& GetState() const{ return m_state; }
472 
473 
StateHasBeenSet()474     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
475 
476 
SetState(const InstanceState & value)477     inline void SetState(const InstanceState& value) { m_stateHasBeenSet = true; m_state = value; }
478 
479 
SetState(InstanceState && value)480     inline void SetState(InstanceState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
481 
482 
WithState(const InstanceState & value)483     inline Instance& WithState(const InstanceState& value) { SetState(value); return *this;}
484 
485 
WithState(InstanceState && value)486     inline Instance& WithState(InstanceState&& value) { SetState(std::move(value)); return *this;}
487 
488 
489     /**
490      * <p>When the instance was last updated.</p>
491      */
GetUpdatedAt()492     inline const Aws::Utils::DateTime& GetUpdatedAt() const{ return m_updatedAt; }
493 
494     /**
495      * <p>When the instance was last updated.</p>
496      */
UpdatedAtHasBeenSet()497     inline bool UpdatedAtHasBeenSet() const { return m_updatedAtHasBeenSet; }
498 
499     /**
500      * <p>When the instance was last updated.</p>
501      */
SetUpdatedAt(const Aws::Utils::DateTime & value)502     inline void SetUpdatedAt(const Aws::Utils::DateTime& value) { m_updatedAtHasBeenSet = true; m_updatedAt = value; }
503 
504     /**
505      * <p>When the instance was last updated.</p>
506      */
SetUpdatedAt(Aws::Utils::DateTime && value)507     inline void SetUpdatedAt(Aws::Utils::DateTime&& value) { m_updatedAtHasBeenSet = true; m_updatedAt = std::move(value); }
508 
509     /**
510      * <p>When the instance was last updated.</p>
511      */
WithUpdatedAt(const Aws::Utils::DateTime & value)512     inline Instance& WithUpdatedAt(const Aws::Utils::DateTime& value) { SetUpdatedAt(value); return *this;}
513 
514     /**
515      * <p>When the instance was last updated.</p>
516      */
WithUpdatedAt(Aws::Utils::DateTime && value)517     inline Instance& WithUpdatedAt(Aws::Utils::DateTime&& value) { SetUpdatedAt(std::move(value)); return *this;}
518 
519   private:
520 
521     int m_amiLaunchIndex;
522     bool m_amiLaunchIndexHasBeenSet;
523 
524     Aws::Vector<InstanceBlockDeviceMapping> m_blockDeviceMappings;
525     bool m_blockDeviceMappingsHasBeenSet;
526 
527     CpuOptions m_cpuOptions;
528     bool m_cpuOptionsHasBeenSet;
529 
530     Aws::Utils::DateTime m_createdAt;
531     bool m_createdAtHasBeenSet;
532 
533     Aws::String m_imageId;
534     bool m_imageIdHasBeenSet;
535 
536     Aws::String m_instanceId;
537     bool m_instanceIdHasBeenSet;
538 
539     Aws::String m_instanceType;
540     bool m_instanceTypeHasBeenSet;
541 
542     Aws::String m_privateIpAddress;
543     bool m_privateIpAddressHasBeenSet;
544 
545     Aws::String m_publicIpAddress;
546     bool m_publicIpAddressHasBeenSet;
547 
548     Aws::String m_rootDeviceName;
549     bool m_rootDeviceNameHasBeenSet;
550 
551     Aws::Vector<SecurityGroupIdentifier> m_securityGroups;
552     bool m_securityGroupsHasBeenSet;
553 
554     InstanceState m_state;
555     bool m_stateHasBeenSet;
556 
557     Aws::Utils::DateTime m_updatedAt;
558     bool m_updatedAtHasBeenSet;
559   };
560 
561 } // namespace Model
562 } // namespace SnowDeviceManagement
563 } // namespace Aws
564