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/medialive/MediaLive_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/medialive/model/InputDeviceConnectionState.h>
10 #include <aws/medialive/model/DeviceSettingsSyncState.h>
11 #include <aws/medialive/model/DeviceUpdateStatus.h>
12 #include <aws/medialive/model/InputDeviceHdSettings.h>
13 #include <aws/medialive/model/InputDeviceNetworkSettings.h>
14 #include <aws/medialive/model/InputDeviceType.h>
15 #include <aws/medialive/model/InputDeviceUhdSettings.h>
16 #include <utility>
17 
18 namespace Aws
19 {
20 namespace Utils
21 {
22 namespace Json
23 {
24   class JsonValue;
25   class JsonView;
26 } // namespace Json
27 } // namespace Utils
28 namespace MediaLive
29 {
30 namespace Model
31 {
32 
33   /**
34    * Details of the input device.<p><h3>See Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/InputDeviceSummary">AWS
36    * API Reference</a></p>
37    */
38   class AWS_MEDIALIVE_API InputDeviceSummary
39   {
40   public:
41     InputDeviceSummary();
42     InputDeviceSummary(Aws::Utils::Json::JsonView jsonValue);
43     InputDeviceSummary& operator=(Aws::Utils::Json::JsonView jsonValue);
44     Aws::Utils::Json::JsonValue Jsonize() const;
45 
46 
47     /**
48      * The unique ARN of the input device.
49      */
GetArn()50     inline const Aws::String& GetArn() const{ return m_arn; }
51 
52     /**
53      * The unique ARN of the input device.
54      */
ArnHasBeenSet()55     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
56 
57     /**
58      * The unique ARN of the input device.
59      */
SetArn(const Aws::String & value)60     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
61 
62     /**
63      * The unique ARN of the input device.
64      */
SetArn(Aws::String && value)65     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
66 
67     /**
68      * The unique ARN of the input device.
69      */
SetArn(const char * value)70     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
71 
72     /**
73      * The unique ARN of the input device.
74      */
WithArn(const Aws::String & value)75     inline InputDeviceSummary& WithArn(const Aws::String& value) { SetArn(value); return *this;}
76 
77     /**
78      * The unique ARN of the input device.
79      */
WithArn(Aws::String && value)80     inline InputDeviceSummary& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
81 
82     /**
83      * The unique ARN of the input device.
84      */
WithArn(const char * value)85     inline InputDeviceSummary& WithArn(const char* value) { SetArn(value); return *this;}
86 
87 
88     /**
89      * The state of the connection between the input device and AWS.
90      */
GetConnectionState()91     inline const InputDeviceConnectionState& GetConnectionState() const{ return m_connectionState; }
92 
93     /**
94      * The state of the connection between the input device and AWS.
95      */
ConnectionStateHasBeenSet()96     inline bool ConnectionStateHasBeenSet() const { return m_connectionStateHasBeenSet; }
97 
98     /**
99      * The state of the connection between the input device and AWS.
100      */
SetConnectionState(const InputDeviceConnectionState & value)101     inline void SetConnectionState(const InputDeviceConnectionState& value) { m_connectionStateHasBeenSet = true; m_connectionState = value; }
102 
103     /**
104      * The state of the connection between the input device and AWS.
105      */
SetConnectionState(InputDeviceConnectionState && value)106     inline void SetConnectionState(InputDeviceConnectionState&& value) { m_connectionStateHasBeenSet = true; m_connectionState = std::move(value); }
107 
108     /**
109      * The state of the connection between the input device and AWS.
110      */
WithConnectionState(const InputDeviceConnectionState & value)111     inline InputDeviceSummary& WithConnectionState(const InputDeviceConnectionState& value) { SetConnectionState(value); return *this;}
112 
113     /**
114      * The state of the connection between the input device and AWS.
115      */
WithConnectionState(InputDeviceConnectionState && value)116     inline InputDeviceSummary& WithConnectionState(InputDeviceConnectionState&& value) { SetConnectionState(std::move(value)); return *this;}
117 
118 
119     /**
120      * The status of the action to synchronize the device configuration. If you change
121      * the configuration of the input device (for example, the maximum bitrate),
122      * MediaLive sends the new data to the device. The device might not update itself
123      * immediately. SYNCED means the device has updated its configuration. SYNCING
124      * means that it has not updated its configuration.
125      */
GetDeviceSettingsSyncState()126     inline const DeviceSettingsSyncState& GetDeviceSettingsSyncState() const{ return m_deviceSettingsSyncState; }
127 
128     /**
129      * The status of the action to synchronize the device configuration. If you change
130      * the configuration of the input device (for example, the maximum bitrate),
131      * MediaLive sends the new data to the device. The device might not update itself
132      * immediately. SYNCED means the device has updated its configuration. SYNCING
133      * means that it has not updated its configuration.
134      */
DeviceSettingsSyncStateHasBeenSet()135     inline bool DeviceSettingsSyncStateHasBeenSet() const { return m_deviceSettingsSyncStateHasBeenSet; }
136 
137     /**
138      * The status of the action to synchronize the device configuration. If you change
139      * the configuration of the input device (for example, the maximum bitrate),
140      * MediaLive sends the new data to the device. The device might not update itself
141      * immediately. SYNCED means the device has updated its configuration. SYNCING
142      * means that it has not updated its configuration.
143      */
SetDeviceSettingsSyncState(const DeviceSettingsSyncState & value)144     inline void SetDeviceSettingsSyncState(const DeviceSettingsSyncState& value) { m_deviceSettingsSyncStateHasBeenSet = true; m_deviceSettingsSyncState = value; }
145 
146     /**
147      * The status of the action to synchronize the device configuration. If you change
148      * the configuration of the input device (for example, the maximum bitrate),
149      * MediaLive sends the new data to the device. The device might not update itself
150      * immediately. SYNCED means the device has updated its configuration. SYNCING
151      * means that it has not updated its configuration.
152      */
SetDeviceSettingsSyncState(DeviceSettingsSyncState && value)153     inline void SetDeviceSettingsSyncState(DeviceSettingsSyncState&& value) { m_deviceSettingsSyncStateHasBeenSet = true; m_deviceSettingsSyncState = std::move(value); }
154 
155     /**
156      * The status of the action to synchronize the device configuration. If you change
157      * the configuration of the input device (for example, the maximum bitrate),
158      * MediaLive sends the new data to the device. The device might not update itself
159      * immediately. SYNCED means the device has updated its configuration. SYNCING
160      * means that it has not updated its configuration.
161      */
WithDeviceSettingsSyncState(const DeviceSettingsSyncState & value)162     inline InputDeviceSummary& WithDeviceSettingsSyncState(const DeviceSettingsSyncState& value) { SetDeviceSettingsSyncState(value); return *this;}
163 
164     /**
165      * The status of the action to synchronize the device configuration. If you change
166      * the configuration of the input device (for example, the maximum bitrate),
167      * MediaLive sends the new data to the device. The device might not update itself
168      * immediately. SYNCED means the device has updated its configuration. SYNCING
169      * means that it has not updated its configuration.
170      */
WithDeviceSettingsSyncState(DeviceSettingsSyncState && value)171     inline InputDeviceSummary& WithDeviceSettingsSyncState(DeviceSettingsSyncState&& value) { SetDeviceSettingsSyncState(std::move(value)); return *this;}
172 
173 
174     /**
175      * The status of software on the input device.
176      */
GetDeviceUpdateStatus()177     inline const DeviceUpdateStatus& GetDeviceUpdateStatus() const{ return m_deviceUpdateStatus; }
178 
179     /**
180      * The status of software on the input device.
181      */
DeviceUpdateStatusHasBeenSet()182     inline bool DeviceUpdateStatusHasBeenSet() const { return m_deviceUpdateStatusHasBeenSet; }
183 
184     /**
185      * The status of software on the input device.
186      */
SetDeviceUpdateStatus(const DeviceUpdateStatus & value)187     inline void SetDeviceUpdateStatus(const DeviceUpdateStatus& value) { m_deviceUpdateStatusHasBeenSet = true; m_deviceUpdateStatus = value; }
188 
189     /**
190      * The status of software on the input device.
191      */
SetDeviceUpdateStatus(DeviceUpdateStatus && value)192     inline void SetDeviceUpdateStatus(DeviceUpdateStatus&& value) { m_deviceUpdateStatusHasBeenSet = true; m_deviceUpdateStatus = std::move(value); }
193 
194     /**
195      * The status of software on the input device.
196      */
WithDeviceUpdateStatus(const DeviceUpdateStatus & value)197     inline InputDeviceSummary& WithDeviceUpdateStatus(const DeviceUpdateStatus& value) { SetDeviceUpdateStatus(value); return *this;}
198 
199     /**
200      * The status of software on the input device.
201      */
WithDeviceUpdateStatus(DeviceUpdateStatus && value)202     inline InputDeviceSummary& WithDeviceUpdateStatus(DeviceUpdateStatus&& value) { SetDeviceUpdateStatus(std::move(value)); return *this;}
203 
204 
205     /**
206      * Settings that describe an input device that is type HD.
207      */
GetHdDeviceSettings()208     inline const InputDeviceHdSettings& GetHdDeviceSettings() const{ return m_hdDeviceSettings; }
209 
210     /**
211      * Settings that describe an input device that is type HD.
212      */
HdDeviceSettingsHasBeenSet()213     inline bool HdDeviceSettingsHasBeenSet() const { return m_hdDeviceSettingsHasBeenSet; }
214 
215     /**
216      * Settings that describe an input device that is type HD.
217      */
SetHdDeviceSettings(const InputDeviceHdSettings & value)218     inline void SetHdDeviceSettings(const InputDeviceHdSettings& value) { m_hdDeviceSettingsHasBeenSet = true; m_hdDeviceSettings = value; }
219 
220     /**
221      * Settings that describe an input device that is type HD.
222      */
SetHdDeviceSettings(InputDeviceHdSettings && value)223     inline void SetHdDeviceSettings(InputDeviceHdSettings&& value) { m_hdDeviceSettingsHasBeenSet = true; m_hdDeviceSettings = std::move(value); }
224 
225     /**
226      * Settings that describe an input device that is type HD.
227      */
WithHdDeviceSettings(const InputDeviceHdSettings & value)228     inline InputDeviceSummary& WithHdDeviceSettings(const InputDeviceHdSettings& value) { SetHdDeviceSettings(value); return *this;}
229 
230     /**
231      * Settings that describe an input device that is type HD.
232      */
WithHdDeviceSettings(InputDeviceHdSettings && value)233     inline InputDeviceSummary& WithHdDeviceSettings(InputDeviceHdSettings&& value) { SetHdDeviceSettings(std::move(value)); return *this;}
234 
235 
236     /**
237      * The unique ID of the input device.
238      */
GetId()239     inline const Aws::String& GetId() const{ return m_id; }
240 
241     /**
242      * The unique ID of the input device.
243      */
IdHasBeenSet()244     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
245 
246     /**
247      * The unique ID of the input device.
248      */
SetId(const Aws::String & value)249     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
250 
251     /**
252      * The unique ID of the input device.
253      */
SetId(Aws::String && value)254     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
255 
256     /**
257      * The unique ID of the input device.
258      */
SetId(const char * value)259     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
260 
261     /**
262      * The unique ID of the input device.
263      */
WithId(const Aws::String & value)264     inline InputDeviceSummary& WithId(const Aws::String& value) { SetId(value); return *this;}
265 
266     /**
267      * The unique ID of the input device.
268      */
WithId(Aws::String && value)269     inline InputDeviceSummary& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
270 
271     /**
272      * The unique ID of the input device.
273      */
WithId(const char * value)274     inline InputDeviceSummary& WithId(const char* value) { SetId(value); return *this;}
275 
276 
277     /**
278      * The network MAC address of the input device.
279      */
GetMacAddress()280     inline const Aws::String& GetMacAddress() const{ return m_macAddress; }
281 
282     /**
283      * The network MAC address of the input device.
284      */
MacAddressHasBeenSet()285     inline bool MacAddressHasBeenSet() const { return m_macAddressHasBeenSet; }
286 
287     /**
288      * The network MAC address of the input device.
289      */
SetMacAddress(const Aws::String & value)290     inline void SetMacAddress(const Aws::String& value) { m_macAddressHasBeenSet = true; m_macAddress = value; }
291 
292     /**
293      * The network MAC address of the input device.
294      */
SetMacAddress(Aws::String && value)295     inline void SetMacAddress(Aws::String&& value) { m_macAddressHasBeenSet = true; m_macAddress = std::move(value); }
296 
297     /**
298      * The network MAC address of the input device.
299      */
SetMacAddress(const char * value)300     inline void SetMacAddress(const char* value) { m_macAddressHasBeenSet = true; m_macAddress.assign(value); }
301 
302     /**
303      * The network MAC address of the input device.
304      */
WithMacAddress(const Aws::String & value)305     inline InputDeviceSummary& WithMacAddress(const Aws::String& value) { SetMacAddress(value); return *this;}
306 
307     /**
308      * The network MAC address of the input device.
309      */
WithMacAddress(Aws::String && value)310     inline InputDeviceSummary& WithMacAddress(Aws::String&& value) { SetMacAddress(std::move(value)); return *this;}
311 
312     /**
313      * The network MAC address of the input device.
314      */
WithMacAddress(const char * value)315     inline InputDeviceSummary& WithMacAddress(const char* value) { SetMacAddress(value); return *this;}
316 
317 
318     /**
319      * A name that you specify for the input device.
320      */
GetName()321     inline const Aws::String& GetName() const{ return m_name; }
322 
323     /**
324      * A name that you specify for the input device.
325      */
NameHasBeenSet()326     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
327 
328     /**
329      * A name that you specify for the input device.
330      */
SetName(const Aws::String & value)331     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
332 
333     /**
334      * A name that you specify for the input device.
335      */
SetName(Aws::String && value)336     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
337 
338     /**
339      * A name that you specify for the input device.
340      */
SetName(const char * value)341     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
342 
343     /**
344      * A name that you specify for the input device.
345      */
WithName(const Aws::String & value)346     inline InputDeviceSummary& WithName(const Aws::String& value) { SetName(value); return *this;}
347 
348     /**
349      * A name that you specify for the input device.
350      */
WithName(Aws::String && value)351     inline InputDeviceSummary& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
352 
353     /**
354      * A name that you specify for the input device.
355      */
WithName(const char * value)356     inline InputDeviceSummary& WithName(const char* value) { SetName(value); return *this;}
357 
358 
359     /**
360      * Network settings for the input device.
361      */
GetNetworkSettings()362     inline const InputDeviceNetworkSettings& GetNetworkSettings() const{ return m_networkSettings; }
363 
364     /**
365      * Network settings for the input device.
366      */
NetworkSettingsHasBeenSet()367     inline bool NetworkSettingsHasBeenSet() const { return m_networkSettingsHasBeenSet; }
368 
369     /**
370      * Network settings for the input device.
371      */
SetNetworkSettings(const InputDeviceNetworkSettings & value)372     inline void SetNetworkSettings(const InputDeviceNetworkSettings& value) { m_networkSettingsHasBeenSet = true; m_networkSettings = value; }
373 
374     /**
375      * Network settings for the input device.
376      */
SetNetworkSettings(InputDeviceNetworkSettings && value)377     inline void SetNetworkSettings(InputDeviceNetworkSettings&& value) { m_networkSettingsHasBeenSet = true; m_networkSettings = std::move(value); }
378 
379     /**
380      * Network settings for the input device.
381      */
WithNetworkSettings(const InputDeviceNetworkSettings & value)382     inline InputDeviceSummary& WithNetworkSettings(const InputDeviceNetworkSettings& value) { SetNetworkSettings(value); return *this;}
383 
384     /**
385      * Network settings for the input device.
386      */
WithNetworkSettings(InputDeviceNetworkSettings && value)387     inline InputDeviceSummary& WithNetworkSettings(InputDeviceNetworkSettings&& value) { SetNetworkSettings(std::move(value)); return *this;}
388 
389 
390     /**
391      * The unique serial number of the input device.
392      */
GetSerialNumber()393     inline const Aws::String& GetSerialNumber() const{ return m_serialNumber; }
394 
395     /**
396      * The unique serial number of the input device.
397      */
SerialNumberHasBeenSet()398     inline bool SerialNumberHasBeenSet() const { return m_serialNumberHasBeenSet; }
399 
400     /**
401      * The unique serial number of the input device.
402      */
SetSerialNumber(const Aws::String & value)403     inline void SetSerialNumber(const Aws::String& value) { m_serialNumberHasBeenSet = true; m_serialNumber = value; }
404 
405     /**
406      * The unique serial number of the input device.
407      */
SetSerialNumber(Aws::String && value)408     inline void SetSerialNumber(Aws::String&& value) { m_serialNumberHasBeenSet = true; m_serialNumber = std::move(value); }
409 
410     /**
411      * The unique serial number of the input device.
412      */
SetSerialNumber(const char * value)413     inline void SetSerialNumber(const char* value) { m_serialNumberHasBeenSet = true; m_serialNumber.assign(value); }
414 
415     /**
416      * The unique serial number of the input device.
417      */
WithSerialNumber(const Aws::String & value)418     inline InputDeviceSummary& WithSerialNumber(const Aws::String& value) { SetSerialNumber(value); return *this;}
419 
420     /**
421      * The unique serial number of the input device.
422      */
WithSerialNumber(Aws::String && value)423     inline InputDeviceSummary& WithSerialNumber(Aws::String&& value) { SetSerialNumber(std::move(value)); return *this;}
424 
425     /**
426      * The unique serial number of the input device.
427      */
WithSerialNumber(const char * value)428     inline InputDeviceSummary& WithSerialNumber(const char* value) { SetSerialNumber(value); return *this;}
429 
430 
431     /**
432      * The type of the input device.
433      */
GetType()434     inline const InputDeviceType& GetType() const{ return m_type; }
435 
436     /**
437      * The type of the input device.
438      */
TypeHasBeenSet()439     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
440 
441     /**
442      * The type of the input device.
443      */
SetType(const InputDeviceType & value)444     inline void SetType(const InputDeviceType& value) { m_typeHasBeenSet = true; m_type = value; }
445 
446     /**
447      * The type of the input device.
448      */
SetType(InputDeviceType && value)449     inline void SetType(InputDeviceType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
450 
451     /**
452      * The type of the input device.
453      */
WithType(const InputDeviceType & value)454     inline InputDeviceSummary& WithType(const InputDeviceType& value) { SetType(value); return *this;}
455 
456     /**
457      * The type of the input device.
458      */
WithType(InputDeviceType && value)459     inline InputDeviceSummary& WithType(InputDeviceType&& value) { SetType(std::move(value)); return *this;}
460 
461 
462     /**
463      * Settings that describe an input device that is type UHD.
464      */
GetUhdDeviceSettings()465     inline const InputDeviceUhdSettings& GetUhdDeviceSettings() const{ return m_uhdDeviceSettings; }
466 
467     /**
468      * Settings that describe an input device that is type UHD.
469      */
UhdDeviceSettingsHasBeenSet()470     inline bool UhdDeviceSettingsHasBeenSet() const { return m_uhdDeviceSettingsHasBeenSet; }
471 
472     /**
473      * Settings that describe an input device that is type UHD.
474      */
SetUhdDeviceSettings(const InputDeviceUhdSettings & value)475     inline void SetUhdDeviceSettings(const InputDeviceUhdSettings& value) { m_uhdDeviceSettingsHasBeenSet = true; m_uhdDeviceSettings = value; }
476 
477     /**
478      * Settings that describe an input device that is type UHD.
479      */
SetUhdDeviceSettings(InputDeviceUhdSettings && value)480     inline void SetUhdDeviceSettings(InputDeviceUhdSettings&& value) { m_uhdDeviceSettingsHasBeenSet = true; m_uhdDeviceSettings = std::move(value); }
481 
482     /**
483      * Settings that describe an input device that is type UHD.
484      */
WithUhdDeviceSettings(const InputDeviceUhdSettings & value)485     inline InputDeviceSummary& WithUhdDeviceSettings(const InputDeviceUhdSettings& value) { SetUhdDeviceSettings(value); return *this;}
486 
487     /**
488      * Settings that describe an input device that is type UHD.
489      */
WithUhdDeviceSettings(InputDeviceUhdSettings && value)490     inline InputDeviceSummary& WithUhdDeviceSettings(InputDeviceUhdSettings&& value) { SetUhdDeviceSettings(std::move(value)); return *this;}
491 
492   private:
493 
494     Aws::String m_arn;
495     bool m_arnHasBeenSet;
496 
497     InputDeviceConnectionState m_connectionState;
498     bool m_connectionStateHasBeenSet;
499 
500     DeviceSettingsSyncState m_deviceSettingsSyncState;
501     bool m_deviceSettingsSyncStateHasBeenSet;
502 
503     DeviceUpdateStatus m_deviceUpdateStatus;
504     bool m_deviceUpdateStatusHasBeenSet;
505 
506     InputDeviceHdSettings m_hdDeviceSettings;
507     bool m_hdDeviceSettingsHasBeenSet;
508 
509     Aws::String m_id;
510     bool m_idHasBeenSet;
511 
512     Aws::String m_macAddress;
513     bool m_macAddressHasBeenSet;
514 
515     Aws::String m_name;
516     bool m_nameHasBeenSet;
517 
518     InputDeviceNetworkSettings m_networkSettings;
519     bool m_networkSettingsHasBeenSet;
520 
521     Aws::String m_serialNumber;
522     bool m_serialNumberHasBeenSet;
523 
524     InputDeviceType m_type;
525     bool m_typeHasBeenSet;
526 
527     InputDeviceUhdSettings m_uhdDeviceSettings;
528     bool m_uhdDeviceSettingsHasBeenSet;
529   };
530 
531 } // namespace Model
532 } // namespace MediaLive
533 } // namespace Aws
534