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/pinpoint/model/SetDimension.h>
9 #include <aws/pinpoint/model/GPSPointDimension.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace Pinpoint
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Specifies geographical dimension settings for a segment.</p><p><h3>See
29    * Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentLocation">AWS
31    * API Reference</a></p>
32    */
33   class AWS_PINPOINT_API SegmentLocation
34   {
35   public:
36     SegmentLocation();
37     SegmentLocation(Aws::Utils::Json::JsonView jsonValue);
38     SegmentLocation& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The country or region code, in ISO 3166-1 alpha-2 format, for the
44      * segment.</p>
45      */
GetCountry()46     inline const SetDimension& GetCountry() const{ return m_country; }
47 
48     /**
49      * <p>The country or region code, in ISO 3166-1 alpha-2 format, for the
50      * segment.</p>
51      */
CountryHasBeenSet()52     inline bool CountryHasBeenSet() const { return m_countryHasBeenSet; }
53 
54     /**
55      * <p>The country or region code, in ISO 3166-1 alpha-2 format, for the
56      * segment.</p>
57      */
SetCountry(const SetDimension & value)58     inline void SetCountry(const SetDimension& value) { m_countryHasBeenSet = true; m_country = value; }
59 
60     /**
61      * <p>The country or region code, in ISO 3166-1 alpha-2 format, for the
62      * segment.</p>
63      */
SetCountry(SetDimension && value)64     inline void SetCountry(SetDimension&& value) { m_countryHasBeenSet = true; m_country = std::move(value); }
65 
66     /**
67      * <p>The country or region code, in ISO 3166-1 alpha-2 format, for the
68      * segment.</p>
69      */
WithCountry(const SetDimension & value)70     inline SegmentLocation& WithCountry(const SetDimension& value) { SetCountry(value); return *this;}
71 
72     /**
73      * <p>The country or region code, in ISO 3166-1 alpha-2 format, for the
74      * segment.</p>
75      */
WithCountry(SetDimension && value)76     inline SegmentLocation& WithCountry(SetDimension&& value) { SetCountry(std::move(value)); return *this;}
77 
78 
79     /**
80      * <p>The GPS location and range for the segment.</p>
81      */
GetGPSPoint()82     inline const GPSPointDimension& GetGPSPoint() const{ return m_gPSPoint; }
83 
84     /**
85      * <p>The GPS location and range for the segment.</p>
86      */
GPSPointHasBeenSet()87     inline bool GPSPointHasBeenSet() const { return m_gPSPointHasBeenSet; }
88 
89     /**
90      * <p>The GPS location and range for the segment.</p>
91      */
SetGPSPoint(const GPSPointDimension & value)92     inline void SetGPSPoint(const GPSPointDimension& value) { m_gPSPointHasBeenSet = true; m_gPSPoint = value; }
93 
94     /**
95      * <p>The GPS location and range for the segment.</p>
96      */
SetGPSPoint(GPSPointDimension && value)97     inline void SetGPSPoint(GPSPointDimension&& value) { m_gPSPointHasBeenSet = true; m_gPSPoint = std::move(value); }
98 
99     /**
100      * <p>The GPS location and range for the segment.</p>
101      */
WithGPSPoint(const GPSPointDimension & value)102     inline SegmentLocation& WithGPSPoint(const GPSPointDimension& value) { SetGPSPoint(value); return *this;}
103 
104     /**
105      * <p>The GPS location and range for the segment.</p>
106      */
WithGPSPoint(GPSPointDimension && value)107     inline SegmentLocation& WithGPSPoint(GPSPointDimension&& value) { SetGPSPoint(std::move(value)); return *this;}
108 
109   private:
110 
111     SetDimension m_country;
112     bool m_countryHasBeenSet;
113 
114     GPSPointDimension m_gPSPoint;
115     bool m_gPSPointHasBeenSet;
116   };
117 
118 } // namespace Model
119 } // namespace Pinpoint
120 } // namespace Aws
121