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/pinpoint/Pinpoint_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace Pinpoint
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Specifies demographic information about an endpoint, such as the applicable
28    * time zone and platform.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EndpointDemographic">AWS
30    * API Reference</a></p>
31    */
32   class AWS_PINPOINT_API EndpointDemographic
33   {
34   public:
35     EndpointDemographic();
36     EndpointDemographic(Aws::Utils::Json::JsonView jsonValue);
37     EndpointDemographic& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The version of the app that's associated with the endpoint.</p>
43      */
GetAppVersion()44     inline const Aws::String& GetAppVersion() const{ return m_appVersion; }
45 
46     /**
47      * <p>The version of the app that's associated with the endpoint.</p>
48      */
AppVersionHasBeenSet()49     inline bool AppVersionHasBeenSet() const { return m_appVersionHasBeenSet; }
50 
51     /**
52      * <p>The version of the app that's associated with the endpoint.</p>
53      */
SetAppVersion(const Aws::String & value)54     inline void SetAppVersion(const Aws::String& value) { m_appVersionHasBeenSet = true; m_appVersion = value; }
55 
56     /**
57      * <p>The version of the app that's associated with the endpoint.</p>
58      */
SetAppVersion(Aws::String && value)59     inline void SetAppVersion(Aws::String&& value) { m_appVersionHasBeenSet = true; m_appVersion = std::move(value); }
60 
61     /**
62      * <p>The version of the app that's associated with the endpoint.</p>
63      */
SetAppVersion(const char * value)64     inline void SetAppVersion(const char* value) { m_appVersionHasBeenSet = true; m_appVersion.assign(value); }
65 
66     /**
67      * <p>The version of the app that's associated with the endpoint.</p>
68      */
WithAppVersion(const Aws::String & value)69     inline EndpointDemographic& WithAppVersion(const Aws::String& value) { SetAppVersion(value); return *this;}
70 
71     /**
72      * <p>The version of the app that's associated with the endpoint.</p>
73      */
WithAppVersion(Aws::String && value)74     inline EndpointDemographic& WithAppVersion(Aws::String&& value) { SetAppVersion(std::move(value)); return *this;}
75 
76     /**
77      * <p>The version of the app that's associated with the endpoint.</p>
78      */
WithAppVersion(const char * value)79     inline EndpointDemographic& WithAppVersion(const char* value) { SetAppVersion(value); return *this;}
80 
81 
82     /**
83      * <p>The locale of the endpoint, in the following format: the ISO 639-1 alpha-2
84      * code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2
85      * value.</p>
86      */
GetLocale()87     inline const Aws::String& GetLocale() const{ return m_locale; }
88 
89     /**
90      * <p>The locale of the endpoint, in the following format: the ISO 639-1 alpha-2
91      * code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2
92      * value.</p>
93      */
LocaleHasBeenSet()94     inline bool LocaleHasBeenSet() const { return m_localeHasBeenSet; }
95 
96     /**
97      * <p>The locale of the endpoint, in the following format: the ISO 639-1 alpha-2
98      * code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2
99      * value.</p>
100      */
SetLocale(const Aws::String & value)101     inline void SetLocale(const Aws::String& value) { m_localeHasBeenSet = true; m_locale = value; }
102 
103     /**
104      * <p>The locale of the endpoint, in the following format: the ISO 639-1 alpha-2
105      * code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2
106      * value.</p>
107      */
SetLocale(Aws::String && value)108     inline void SetLocale(Aws::String&& value) { m_localeHasBeenSet = true; m_locale = std::move(value); }
109 
110     /**
111      * <p>The locale of the endpoint, in the following format: the ISO 639-1 alpha-2
112      * code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2
113      * value.</p>
114      */
SetLocale(const char * value)115     inline void SetLocale(const char* value) { m_localeHasBeenSet = true; m_locale.assign(value); }
116 
117     /**
118      * <p>The locale of the endpoint, in the following format: the ISO 639-1 alpha-2
119      * code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2
120      * value.</p>
121      */
WithLocale(const Aws::String & value)122     inline EndpointDemographic& WithLocale(const Aws::String& value) { SetLocale(value); return *this;}
123 
124     /**
125      * <p>The locale of the endpoint, in the following format: the ISO 639-1 alpha-2
126      * code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2
127      * value.</p>
128      */
WithLocale(Aws::String && value)129     inline EndpointDemographic& WithLocale(Aws::String&& value) { SetLocale(std::move(value)); return *this;}
130 
131     /**
132      * <p>The locale of the endpoint, in the following format: the ISO 639-1 alpha-2
133      * code, followed by an underscore (_), followed by an ISO 3166-1 alpha-2
134      * value.</p>
135      */
WithLocale(const char * value)136     inline EndpointDemographic& WithLocale(const char* value) { SetLocale(value); return *this;}
137 
138 
139     /**
140      * <p>The manufacturer of the endpoint device, such as apple or samsung.</p>
141      */
GetMake()142     inline const Aws::String& GetMake() const{ return m_make; }
143 
144     /**
145      * <p>The manufacturer of the endpoint device, such as apple or samsung.</p>
146      */
MakeHasBeenSet()147     inline bool MakeHasBeenSet() const { return m_makeHasBeenSet; }
148 
149     /**
150      * <p>The manufacturer of the endpoint device, such as apple or samsung.</p>
151      */
SetMake(const Aws::String & value)152     inline void SetMake(const Aws::String& value) { m_makeHasBeenSet = true; m_make = value; }
153 
154     /**
155      * <p>The manufacturer of the endpoint device, such as apple or samsung.</p>
156      */
SetMake(Aws::String && value)157     inline void SetMake(Aws::String&& value) { m_makeHasBeenSet = true; m_make = std::move(value); }
158 
159     /**
160      * <p>The manufacturer of the endpoint device, such as apple or samsung.</p>
161      */
SetMake(const char * value)162     inline void SetMake(const char* value) { m_makeHasBeenSet = true; m_make.assign(value); }
163 
164     /**
165      * <p>The manufacturer of the endpoint device, such as apple or samsung.</p>
166      */
WithMake(const Aws::String & value)167     inline EndpointDemographic& WithMake(const Aws::String& value) { SetMake(value); return *this;}
168 
169     /**
170      * <p>The manufacturer of the endpoint device, such as apple or samsung.</p>
171      */
WithMake(Aws::String && value)172     inline EndpointDemographic& WithMake(Aws::String&& value) { SetMake(std::move(value)); return *this;}
173 
174     /**
175      * <p>The manufacturer of the endpoint device, such as apple or samsung.</p>
176      */
WithMake(const char * value)177     inline EndpointDemographic& WithMake(const char* value) { SetMake(value); return *this;}
178 
179 
180     /**
181      * <p>The model name or number of the endpoint device, such as iPhone or
182      * SM-G900F.</p>
183      */
GetModel()184     inline const Aws::String& GetModel() const{ return m_model; }
185 
186     /**
187      * <p>The model name or number of the endpoint device, such as iPhone or
188      * SM-G900F.</p>
189      */
ModelHasBeenSet()190     inline bool ModelHasBeenSet() const { return m_modelHasBeenSet; }
191 
192     /**
193      * <p>The model name or number of the endpoint device, such as iPhone or
194      * SM-G900F.</p>
195      */
SetModel(const Aws::String & value)196     inline void SetModel(const Aws::String& value) { m_modelHasBeenSet = true; m_model = value; }
197 
198     /**
199      * <p>The model name or number of the endpoint device, such as iPhone or
200      * SM-G900F.</p>
201      */
SetModel(Aws::String && value)202     inline void SetModel(Aws::String&& value) { m_modelHasBeenSet = true; m_model = std::move(value); }
203 
204     /**
205      * <p>The model name or number of the endpoint device, such as iPhone or
206      * SM-G900F.</p>
207      */
SetModel(const char * value)208     inline void SetModel(const char* value) { m_modelHasBeenSet = true; m_model.assign(value); }
209 
210     /**
211      * <p>The model name or number of the endpoint device, such as iPhone or
212      * SM-G900F.</p>
213      */
WithModel(const Aws::String & value)214     inline EndpointDemographic& WithModel(const Aws::String& value) { SetModel(value); return *this;}
215 
216     /**
217      * <p>The model name or number of the endpoint device, such as iPhone or
218      * SM-G900F.</p>
219      */
WithModel(Aws::String && value)220     inline EndpointDemographic& WithModel(Aws::String&& value) { SetModel(std::move(value)); return *this;}
221 
222     /**
223      * <p>The model name or number of the endpoint device, such as iPhone or
224      * SM-G900F.</p>
225      */
WithModel(const char * value)226     inline EndpointDemographic& WithModel(const char* value) { SetModel(value); return *this;}
227 
228 
229     /**
230      * <p>The model version of the endpoint device.</p>
231      */
GetModelVersion()232     inline const Aws::String& GetModelVersion() const{ return m_modelVersion; }
233 
234     /**
235      * <p>The model version of the endpoint device.</p>
236      */
ModelVersionHasBeenSet()237     inline bool ModelVersionHasBeenSet() const { return m_modelVersionHasBeenSet; }
238 
239     /**
240      * <p>The model version of the endpoint device.</p>
241      */
SetModelVersion(const Aws::String & value)242     inline void SetModelVersion(const Aws::String& value) { m_modelVersionHasBeenSet = true; m_modelVersion = value; }
243 
244     /**
245      * <p>The model version of the endpoint device.</p>
246      */
SetModelVersion(Aws::String && value)247     inline void SetModelVersion(Aws::String&& value) { m_modelVersionHasBeenSet = true; m_modelVersion = std::move(value); }
248 
249     /**
250      * <p>The model version of the endpoint device.</p>
251      */
SetModelVersion(const char * value)252     inline void SetModelVersion(const char* value) { m_modelVersionHasBeenSet = true; m_modelVersion.assign(value); }
253 
254     /**
255      * <p>The model version of the endpoint device.</p>
256      */
WithModelVersion(const Aws::String & value)257     inline EndpointDemographic& WithModelVersion(const Aws::String& value) { SetModelVersion(value); return *this;}
258 
259     /**
260      * <p>The model version of the endpoint device.</p>
261      */
WithModelVersion(Aws::String && value)262     inline EndpointDemographic& WithModelVersion(Aws::String&& value) { SetModelVersion(std::move(value)); return *this;}
263 
264     /**
265      * <p>The model version of the endpoint device.</p>
266      */
WithModelVersion(const char * value)267     inline EndpointDemographic& WithModelVersion(const char* value) { SetModelVersion(value); return *this;}
268 
269 
270     /**
271      * <p>The platform of the endpoint device, such as ios.</p>
272      */
GetPlatform()273     inline const Aws::String& GetPlatform() const{ return m_platform; }
274 
275     /**
276      * <p>The platform of the endpoint device, such as ios.</p>
277      */
PlatformHasBeenSet()278     inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; }
279 
280     /**
281      * <p>The platform of the endpoint device, such as ios.</p>
282      */
SetPlatform(const Aws::String & value)283     inline void SetPlatform(const Aws::String& value) { m_platformHasBeenSet = true; m_platform = value; }
284 
285     /**
286      * <p>The platform of the endpoint device, such as ios.</p>
287      */
SetPlatform(Aws::String && value)288     inline void SetPlatform(Aws::String&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); }
289 
290     /**
291      * <p>The platform of the endpoint device, such as ios.</p>
292      */
SetPlatform(const char * value)293     inline void SetPlatform(const char* value) { m_platformHasBeenSet = true; m_platform.assign(value); }
294 
295     /**
296      * <p>The platform of the endpoint device, such as ios.</p>
297      */
WithPlatform(const Aws::String & value)298     inline EndpointDemographic& WithPlatform(const Aws::String& value) { SetPlatform(value); return *this;}
299 
300     /**
301      * <p>The platform of the endpoint device, such as ios.</p>
302      */
WithPlatform(Aws::String && value)303     inline EndpointDemographic& WithPlatform(Aws::String&& value) { SetPlatform(std::move(value)); return *this;}
304 
305     /**
306      * <p>The platform of the endpoint device, such as ios.</p>
307      */
WithPlatform(const char * value)308     inline EndpointDemographic& WithPlatform(const char* value) { SetPlatform(value); return *this;}
309 
310 
311     /**
312      * <p>The platform version of the endpoint device.</p>
313      */
GetPlatformVersion()314     inline const Aws::String& GetPlatformVersion() const{ return m_platformVersion; }
315 
316     /**
317      * <p>The platform version of the endpoint device.</p>
318      */
PlatformVersionHasBeenSet()319     inline bool PlatformVersionHasBeenSet() const { return m_platformVersionHasBeenSet; }
320 
321     /**
322      * <p>The platform version of the endpoint device.</p>
323      */
SetPlatformVersion(const Aws::String & value)324     inline void SetPlatformVersion(const Aws::String& value) { m_platformVersionHasBeenSet = true; m_platformVersion = value; }
325 
326     /**
327      * <p>The platform version of the endpoint device.</p>
328      */
SetPlatformVersion(Aws::String && value)329     inline void SetPlatformVersion(Aws::String&& value) { m_platformVersionHasBeenSet = true; m_platformVersion = std::move(value); }
330 
331     /**
332      * <p>The platform version of the endpoint device.</p>
333      */
SetPlatformVersion(const char * value)334     inline void SetPlatformVersion(const char* value) { m_platformVersionHasBeenSet = true; m_platformVersion.assign(value); }
335 
336     /**
337      * <p>The platform version of the endpoint device.</p>
338      */
WithPlatformVersion(const Aws::String & value)339     inline EndpointDemographic& WithPlatformVersion(const Aws::String& value) { SetPlatformVersion(value); return *this;}
340 
341     /**
342      * <p>The platform version of the endpoint device.</p>
343      */
WithPlatformVersion(Aws::String && value)344     inline EndpointDemographic& WithPlatformVersion(Aws::String&& value) { SetPlatformVersion(std::move(value)); return *this;}
345 
346     /**
347      * <p>The platform version of the endpoint device.</p>
348      */
WithPlatformVersion(const char * value)349     inline EndpointDemographic& WithPlatformVersion(const char* value) { SetPlatformVersion(value); return *this;}
350 
351 
352     /**
353      * <p>The time zone of the endpoint, specified as a tz database name value, such as
354      * America/Los_Angeles.</p>
355      */
GetTimezone()356     inline const Aws::String& GetTimezone() const{ return m_timezone; }
357 
358     /**
359      * <p>The time zone of the endpoint, specified as a tz database name value, such as
360      * America/Los_Angeles.</p>
361      */
TimezoneHasBeenSet()362     inline bool TimezoneHasBeenSet() const { return m_timezoneHasBeenSet; }
363 
364     /**
365      * <p>The time zone of the endpoint, specified as a tz database name value, such as
366      * America/Los_Angeles.</p>
367      */
SetTimezone(const Aws::String & value)368     inline void SetTimezone(const Aws::String& value) { m_timezoneHasBeenSet = true; m_timezone = value; }
369 
370     /**
371      * <p>The time zone of the endpoint, specified as a tz database name value, such as
372      * America/Los_Angeles.</p>
373      */
SetTimezone(Aws::String && value)374     inline void SetTimezone(Aws::String&& value) { m_timezoneHasBeenSet = true; m_timezone = std::move(value); }
375 
376     /**
377      * <p>The time zone of the endpoint, specified as a tz database name value, such as
378      * America/Los_Angeles.</p>
379      */
SetTimezone(const char * value)380     inline void SetTimezone(const char* value) { m_timezoneHasBeenSet = true; m_timezone.assign(value); }
381 
382     /**
383      * <p>The time zone of the endpoint, specified as a tz database name value, such as
384      * America/Los_Angeles.</p>
385      */
WithTimezone(const Aws::String & value)386     inline EndpointDemographic& WithTimezone(const Aws::String& value) { SetTimezone(value); return *this;}
387 
388     /**
389      * <p>The time zone of the endpoint, specified as a tz database name value, such as
390      * America/Los_Angeles.</p>
391      */
WithTimezone(Aws::String && value)392     inline EndpointDemographic& WithTimezone(Aws::String&& value) { SetTimezone(std::move(value)); return *this;}
393 
394     /**
395      * <p>The time zone of the endpoint, specified as a tz database name value, such as
396      * America/Los_Angeles.</p>
397      */
WithTimezone(const char * value)398     inline EndpointDemographic& WithTimezone(const char* value) { SetTimezone(value); return *this;}
399 
400   private:
401 
402     Aws::String m_appVersion;
403     bool m_appVersionHasBeenSet;
404 
405     Aws::String m_locale;
406     bool m_localeHasBeenSet;
407 
408     Aws::String m_make;
409     bool m_makeHasBeenSet;
410 
411     Aws::String m_model;
412     bool m_modelHasBeenSet;
413 
414     Aws::String m_modelVersion;
415     bool m_modelVersionHasBeenSet;
416 
417     Aws::String m_platform;
418     bool m_platformHasBeenSet;
419 
420     Aws::String m_platformVersion;
421     bool m_platformVersionHasBeenSet;
422 
423     Aws::String m_timezone;
424     bool m_timezoneHasBeenSet;
425   };
426 
427 } // namespace Model
428 } // namespace Pinpoint
429 } // namespace Aws
430