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/location/LocationService_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace LocationService
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Contains the tracker resource details.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/location-2020-11-19/ListDevicePositionsResponseEntry">AWS
31    * API Reference</a></p>
32    */
33   class AWS_LOCATIONSERVICE_API ListDevicePositionsResponseEntry
34   {
35   public:
36     ListDevicePositionsResponseEntry();
37     ListDevicePositionsResponseEntry(Aws::Utils::Json::JsonView jsonValue);
38     ListDevicePositionsResponseEntry& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The ID of the device for this position.</p>
44      */
GetDeviceId()45     inline const Aws::String& GetDeviceId() const{ return m_deviceId; }
46 
47     /**
48      * <p>The ID of the device for this position.</p>
49      */
DeviceIdHasBeenSet()50     inline bool DeviceIdHasBeenSet() const { return m_deviceIdHasBeenSet; }
51 
52     /**
53      * <p>The ID of the device for this position.</p>
54      */
SetDeviceId(const Aws::String & value)55     inline void SetDeviceId(const Aws::String& value) { m_deviceIdHasBeenSet = true; m_deviceId = value; }
56 
57     /**
58      * <p>The ID of the device for this position.</p>
59      */
SetDeviceId(Aws::String && value)60     inline void SetDeviceId(Aws::String&& value) { m_deviceIdHasBeenSet = true; m_deviceId = std::move(value); }
61 
62     /**
63      * <p>The ID of the device for this position.</p>
64      */
SetDeviceId(const char * value)65     inline void SetDeviceId(const char* value) { m_deviceIdHasBeenSet = true; m_deviceId.assign(value); }
66 
67     /**
68      * <p>The ID of the device for this position.</p>
69      */
WithDeviceId(const Aws::String & value)70     inline ListDevicePositionsResponseEntry& WithDeviceId(const Aws::String& value) { SetDeviceId(value); return *this;}
71 
72     /**
73      * <p>The ID of the device for this position.</p>
74      */
WithDeviceId(Aws::String && value)75     inline ListDevicePositionsResponseEntry& WithDeviceId(Aws::String&& value) { SetDeviceId(std::move(value)); return *this;}
76 
77     /**
78      * <p>The ID of the device for this position.</p>
79      */
WithDeviceId(const char * value)80     inline ListDevicePositionsResponseEntry& WithDeviceId(const char* value) { SetDeviceId(value); return *this;}
81 
82 
83     /**
84      * <p>The last known device position. Empty if no positions currently stored.</p>
85      */
GetPosition()86     inline const Aws::Vector<double>& GetPosition() const{ return m_position; }
87 
88     /**
89      * <p>The last known device position. Empty if no positions currently stored.</p>
90      */
PositionHasBeenSet()91     inline bool PositionHasBeenSet() const { return m_positionHasBeenSet; }
92 
93     /**
94      * <p>The last known device position. Empty if no positions currently stored.</p>
95      */
SetPosition(const Aws::Vector<double> & value)96     inline void SetPosition(const Aws::Vector<double>& value) { m_positionHasBeenSet = true; m_position = value; }
97 
98     /**
99      * <p>The last known device position. Empty if no positions currently stored.</p>
100      */
SetPosition(Aws::Vector<double> && value)101     inline void SetPosition(Aws::Vector<double>&& value) { m_positionHasBeenSet = true; m_position = std::move(value); }
102 
103     /**
104      * <p>The last known device position. Empty if no positions currently stored.</p>
105      */
WithPosition(const Aws::Vector<double> & value)106     inline ListDevicePositionsResponseEntry& WithPosition(const Aws::Vector<double>& value) { SetPosition(value); return *this;}
107 
108     /**
109      * <p>The last known device position. Empty if no positions currently stored.</p>
110      */
WithPosition(Aws::Vector<double> && value)111     inline ListDevicePositionsResponseEntry& WithPosition(Aws::Vector<double>&& value) { SetPosition(std::move(value)); return *this;}
112 
113     /**
114      * <p>The last known device position. Empty if no positions currently stored.</p>
115      */
AddPosition(double value)116     inline ListDevicePositionsResponseEntry& AddPosition(double value) { m_positionHasBeenSet = true; m_position.push_back(value); return *this; }
117 
118 
119     /**
120      * <p>The timestamp at which the device position was determined. Uses <a
121      * href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a>
122      * format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>
123      */
GetSampleTime()124     inline const Aws::Utils::DateTime& GetSampleTime() const{ return m_sampleTime; }
125 
126     /**
127      * <p>The timestamp at which the device position was determined. Uses <a
128      * href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a>
129      * format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>
130      */
SampleTimeHasBeenSet()131     inline bool SampleTimeHasBeenSet() const { return m_sampleTimeHasBeenSet; }
132 
133     /**
134      * <p>The timestamp at which the device position was determined. Uses <a
135      * href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a>
136      * format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>
137      */
SetSampleTime(const Aws::Utils::DateTime & value)138     inline void SetSampleTime(const Aws::Utils::DateTime& value) { m_sampleTimeHasBeenSet = true; m_sampleTime = value; }
139 
140     /**
141      * <p>The timestamp at which the device position was determined. Uses <a
142      * href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a>
143      * format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>
144      */
SetSampleTime(Aws::Utils::DateTime && value)145     inline void SetSampleTime(Aws::Utils::DateTime&& value) { m_sampleTimeHasBeenSet = true; m_sampleTime = std::move(value); }
146 
147     /**
148      * <p>The timestamp at which the device position was determined. Uses <a
149      * href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a>
150      * format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>
151      */
WithSampleTime(const Aws::Utils::DateTime & value)152     inline ListDevicePositionsResponseEntry& WithSampleTime(const Aws::Utils::DateTime& value) { SetSampleTime(value); return *this;}
153 
154     /**
155      * <p>The timestamp at which the device position was determined. Uses <a
156      * href="https://www.iso.org/iso-8601-date-and-time-format.html"> ISO 8601</a>
157      * format: <code>YYYY-MM-DDThh:mm:ss.sssZ</code>.</p>
158      */
WithSampleTime(Aws::Utils::DateTime && value)159     inline ListDevicePositionsResponseEntry& WithSampleTime(Aws::Utils::DateTime&& value) { SetSampleTime(std::move(value)); return *this;}
160 
161   private:
162 
163     Aws::String m_deviceId;
164     bool m_deviceIdHasBeenSet;
165 
166     Aws::Vector<double> m_position;
167     bool m_positionHasBeenSet;
168 
169     Aws::Utils::DateTime m_sampleTime;
170     bool m_sampleTimeHasBeenSet;
171   };
172 
173 } // namespace Model
174 } // namespace LocationService
175 } // namespace Aws
176