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/alexaforbusiness/AlexaForBusiness_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/alexaforbusiness/model/ConnectionStatus.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/alexaforbusiness/model/DeviceStatusDetail.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace AlexaForBusiness
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Detailed information about a device's status.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/alexaforbusiness-2017-11-09/DeviceStatusInfo">AWS
32    * API Reference</a></p>
33    */
34   class AWS_ALEXAFORBUSINESS_API DeviceStatusInfo
35   {
36   public:
37     DeviceStatusInfo();
38     DeviceStatusInfo(Aws::Utils::Json::JsonView jsonValue);
39     DeviceStatusInfo& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>One or more device status detail descriptions.</p>
45      */
GetDeviceStatusDetails()46     inline const Aws::Vector<DeviceStatusDetail>& GetDeviceStatusDetails() const{ return m_deviceStatusDetails; }
47 
48     /**
49      * <p>One or more device status detail descriptions.</p>
50      */
DeviceStatusDetailsHasBeenSet()51     inline bool DeviceStatusDetailsHasBeenSet() const { return m_deviceStatusDetailsHasBeenSet; }
52 
53     /**
54      * <p>One or more device status detail descriptions.</p>
55      */
SetDeviceStatusDetails(const Aws::Vector<DeviceStatusDetail> & value)56     inline void SetDeviceStatusDetails(const Aws::Vector<DeviceStatusDetail>& value) { m_deviceStatusDetailsHasBeenSet = true; m_deviceStatusDetails = value; }
57 
58     /**
59      * <p>One or more device status detail descriptions.</p>
60      */
SetDeviceStatusDetails(Aws::Vector<DeviceStatusDetail> && value)61     inline void SetDeviceStatusDetails(Aws::Vector<DeviceStatusDetail>&& value) { m_deviceStatusDetailsHasBeenSet = true; m_deviceStatusDetails = std::move(value); }
62 
63     /**
64      * <p>One or more device status detail descriptions.</p>
65      */
WithDeviceStatusDetails(const Aws::Vector<DeviceStatusDetail> & value)66     inline DeviceStatusInfo& WithDeviceStatusDetails(const Aws::Vector<DeviceStatusDetail>& value) { SetDeviceStatusDetails(value); return *this;}
67 
68     /**
69      * <p>One or more device status detail descriptions.</p>
70      */
WithDeviceStatusDetails(Aws::Vector<DeviceStatusDetail> && value)71     inline DeviceStatusInfo& WithDeviceStatusDetails(Aws::Vector<DeviceStatusDetail>&& value) { SetDeviceStatusDetails(std::move(value)); return *this;}
72 
73     /**
74      * <p>One or more device status detail descriptions.</p>
75      */
AddDeviceStatusDetails(const DeviceStatusDetail & value)76     inline DeviceStatusInfo& AddDeviceStatusDetails(const DeviceStatusDetail& value) { m_deviceStatusDetailsHasBeenSet = true; m_deviceStatusDetails.push_back(value); return *this; }
77 
78     /**
79      * <p>One or more device status detail descriptions.</p>
80      */
AddDeviceStatusDetails(DeviceStatusDetail && value)81     inline DeviceStatusInfo& AddDeviceStatusDetails(DeviceStatusDetail&& value) { m_deviceStatusDetailsHasBeenSet = true; m_deviceStatusDetails.push_back(std::move(value)); return *this; }
82 
83 
84     /**
85      * <p>The latest available information about the connection status of a device.
86      * </p>
87      */
GetConnectionStatus()88     inline const ConnectionStatus& GetConnectionStatus() const{ return m_connectionStatus; }
89 
90     /**
91      * <p>The latest available information about the connection status of a device.
92      * </p>
93      */
ConnectionStatusHasBeenSet()94     inline bool ConnectionStatusHasBeenSet() const { return m_connectionStatusHasBeenSet; }
95 
96     /**
97      * <p>The latest available information about the connection status of a device.
98      * </p>
99      */
SetConnectionStatus(const ConnectionStatus & value)100     inline void SetConnectionStatus(const ConnectionStatus& value) { m_connectionStatusHasBeenSet = true; m_connectionStatus = value; }
101 
102     /**
103      * <p>The latest available information about the connection status of a device.
104      * </p>
105      */
SetConnectionStatus(ConnectionStatus && value)106     inline void SetConnectionStatus(ConnectionStatus&& value) { m_connectionStatusHasBeenSet = true; m_connectionStatus = std::move(value); }
107 
108     /**
109      * <p>The latest available information about the connection status of a device.
110      * </p>
111      */
WithConnectionStatus(const ConnectionStatus & value)112     inline DeviceStatusInfo& WithConnectionStatus(const ConnectionStatus& value) { SetConnectionStatus(value); return *this;}
113 
114     /**
115      * <p>The latest available information about the connection status of a device.
116      * </p>
117      */
WithConnectionStatus(ConnectionStatus && value)118     inline DeviceStatusInfo& WithConnectionStatus(ConnectionStatus&& value) { SetConnectionStatus(std::move(value)); return *this;}
119 
120 
121     /**
122      * <p>The time (in epoch) when the device connection status changed.</p>
123      */
GetConnectionStatusUpdatedTime()124     inline const Aws::Utils::DateTime& GetConnectionStatusUpdatedTime() const{ return m_connectionStatusUpdatedTime; }
125 
126     /**
127      * <p>The time (in epoch) when the device connection status changed.</p>
128      */
ConnectionStatusUpdatedTimeHasBeenSet()129     inline bool ConnectionStatusUpdatedTimeHasBeenSet() const { return m_connectionStatusUpdatedTimeHasBeenSet; }
130 
131     /**
132      * <p>The time (in epoch) when the device connection status changed.</p>
133      */
SetConnectionStatusUpdatedTime(const Aws::Utils::DateTime & value)134     inline void SetConnectionStatusUpdatedTime(const Aws::Utils::DateTime& value) { m_connectionStatusUpdatedTimeHasBeenSet = true; m_connectionStatusUpdatedTime = value; }
135 
136     /**
137      * <p>The time (in epoch) when the device connection status changed.</p>
138      */
SetConnectionStatusUpdatedTime(Aws::Utils::DateTime && value)139     inline void SetConnectionStatusUpdatedTime(Aws::Utils::DateTime&& value) { m_connectionStatusUpdatedTimeHasBeenSet = true; m_connectionStatusUpdatedTime = std::move(value); }
140 
141     /**
142      * <p>The time (in epoch) when the device connection status changed.</p>
143      */
WithConnectionStatusUpdatedTime(const Aws::Utils::DateTime & value)144     inline DeviceStatusInfo& WithConnectionStatusUpdatedTime(const Aws::Utils::DateTime& value) { SetConnectionStatusUpdatedTime(value); return *this;}
145 
146     /**
147      * <p>The time (in epoch) when the device connection status changed.</p>
148      */
WithConnectionStatusUpdatedTime(Aws::Utils::DateTime && value)149     inline DeviceStatusInfo& WithConnectionStatusUpdatedTime(Aws::Utils::DateTime&& value) { SetConnectionStatusUpdatedTime(std::move(value)); return *this;}
150 
151   private:
152 
153     Aws::Vector<DeviceStatusDetail> m_deviceStatusDetails;
154     bool m_deviceStatusDetailsHasBeenSet;
155 
156     ConnectionStatus m_connectionStatus;
157     bool m_connectionStatusHasBeenSet;
158 
159     Aws::Utils::DateTime m_connectionStatusUpdatedTime;
160     bool m_connectionStatusUpdatedTimeHasBeenSet;
161   };
162 
163 } // namespace Model
164 } // namespace AlexaForBusiness
165 } // namespace Aws
166