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/macie2/Macie2_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/macie2/model/IpCity.h>
10 #include <aws/macie2/model/IpCountry.h>
11 #include <aws/macie2/model/IpGeoLocation.h>
12 #include <aws/macie2/model/IpOwner.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace Macie2
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>Provides information about the IP address of the device that an entity used
32    * to perform an action on an affected resource.</p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/macie2-2020-01-01/IpAddressDetails">AWS
34    * API Reference</a></p>
35    */
36   class AWS_MACIE2_API IpAddressDetails
37   {
38   public:
39     IpAddressDetails();
40     IpAddressDetails(Aws::Utils::Json::JsonView jsonValue);
41     IpAddressDetails& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>The Internet Protocol version 4 (IPv4) address of the device.</p>
47      */
GetIpAddressV4()48     inline const Aws::String& GetIpAddressV4() const{ return m_ipAddressV4; }
49 
50     /**
51      * <p>The Internet Protocol version 4 (IPv4) address of the device.</p>
52      */
IpAddressV4HasBeenSet()53     inline bool IpAddressV4HasBeenSet() const { return m_ipAddressV4HasBeenSet; }
54 
55     /**
56      * <p>The Internet Protocol version 4 (IPv4) address of the device.</p>
57      */
SetIpAddressV4(const Aws::String & value)58     inline void SetIpAddressV4(const Aws::String& value) { m_ipAddressV4HasBeenSet = true; m_ipAddressV4 = value; }
59 
60     /**
61      * <p>The Internet Protocol version 4 (IPv4) address of the device.</p>
62      */
SetIpAddressV4(Aws::String && value)63     inline void SetIpAddressV4(Aws::String&& value) { m_ipAddressV4HasBeenSet = true; m_ipAddressV4 = std::move(value); }
64 
65     /**
66      * <p>The Internet Protocol version 4 (IPv4) address of the device.</p>
67      */
SetIpAddressV4(const char * value)68     inline void SetIpAddressV4(const char* value) { m_ipAddressV4HasBeenSet = true; m_ipAddressV4.assign(value); }
69 
70     /**
71      * <p>The Internet Protocol version 4 (IPv4) address of the device.</p>
72      */
WithIpAddressV4(const Aws::String & value)73     inline IpAddressDetails& WithIpAddressV4(const Aws::String& value) { SetIpAddressV4(value); return *this;}
74 
75     /**
76      * <p>The Internet Protocol version 4 (IPv4) address of the device.</p>
77      */
WithIpAddressV4(Aws::String && value)78     inline IpAddressDetails& WithIpAddressV4(Aws::String&& value) { SetIpAddressV4(std::move(value)); return *this;}
79 
80     /**
81      * <p>The Internet Protocol version 4 (IPv4) address of the device.</p>
82      */
WithIpAddressV4(const char * value)83     inline IpAddressDetails& WithIpAddressV4(const char* value) { SetIpAddressV4(value); return *this;}
84 
85 
86     /**
87      * <p>The city that the IP address originated from.</p>
88      */
GetIpCity()89     inline const IpCity& GetIpCity() const{ return m_ipCity; }
90 
91     /**
92      * <p>The city that the IP address originated from.</p>
93      */
IpCityHasBeenSet()94     inline bool IpCityHasBeenSet() const { return m_ipCityHasBeenSet; }
95 
96     /**
97      * <p>The city that the IP address originated from.</p>
98      */
SetIpCity(const IpCity & value)99     inline void SetIpCity(const IpCity& value) { m_ipCityHasBeenSet = true; m_ipCity = value; }
100 
101     /**
102      * <p>The city that the IP address originated from.</p>
103      */
SetIpCity(IpCity && value)104     inline void SetIpCity(IpCity&& value) { m_ipCityHasBeenSet = true; m_ipCity = std::move(value); }
105 
106     /**
107      * <p>The city that the IP address originated from.</p>
108      */
WithIpCity(const IpCity & value)109     inline IpAddressDetails& WithIpCity(const IpCity& value) { SetIpCity(value); return *this;}
110 
111     /**
112      * <p>The city that the IP address originated from.</p>
113      */
WithIpCity(IpCity && value)114     inline IpAddressDetails& WithIpCity(IpCity&& value) { SetIpCity(std::move(value)); return *this;}
115 
116 
117     /**
118      * <p>The country that the IP address originated from.</p>
119      */
GetIpCountry()120     inline const IpCountry& GetIpCountry() const{ return m_ipCountry; }
121 
122     /**
123      * <p>The country that the IP address originated from.</p>
124      */
IpCountryHasBeenSet()125     inline bool IpCountryHasBeenSet() const { return m_ipCountryHasBeenSet; }
126 
127     /**
128      * <p>The country that the IP address originated from.</p>
129      */
SetIpCountry(const IpCountry & value)130     inline void SetIpCountry(const IpCountry& value) { m_ipCountryHasBeenSet = true; m_ipCountry = value; }
131 
132     /**
133      * <p>The country that the IP address originated from.</p>
134      */
SetIpCountry(IpCountry && value)135     inline void SetIpCountry(IpCountry&& value) { m_ipCountryHasBeenSet = true; m_ipCountry = std::move(value); }
136 
137     /**
138      * <p>The country that the IP address originated from.</p>
139      */
WithIpCountry(const IpCountry & value)140     inline IpAddressDetails& WithIpCountry(const IpCountry& value) { SetIpCountry(value); return *this;}
141 
142     /**
143      * <p>The country that the IP address originated from.</p>
144      */
WithIpCountry(IpCountry && value)145     inline IpAddressDetails& WithIpCountry(IpCountry&& value) { SetIpCountry(std::move(value)); return *this;}
146 
147 
148     /**
149      * <p>The geographic coordinates of the location that the IP address originated
150      * from.</p>
151      */
GetIpGeoLocation()152     inline const IpGeoLocation& GetIpGeoLocation() const{ return m_ipGeoLocation; }
153 
154     /**
155      * <p>The geographic coordinates of the location that the IP address originated
156      * from.</p>
157      */
IpGeoLocationHasBeenSet()158     inline bool IpGeoLocationHasBeenSet() const { return m_ipGeoLocationHasBeenSet; }
159 
160     /**
161      * <p>The geographic coordinates of the location that the IP address originated
162      * from.</p>
163      */
SetIpGeoLocation(const IpGeoLocation & value)164     inline void SetIpGeoLocation(const IpGeoLocation& value) { m_ipGeoLocationHasBeenSet = true; m_ipGeoLocation = value; }
165 
166     /**
167      * <p>The geographic coordinates of the location that the IP address originated
168      * from.</p>
169      */
SetIpGeoLocation(IpGeoLocation && value)170     inline void SetIpGeoLocation(IpGeoLocation&& value) { m_ipGeoLocationHasBeenSet = true; m_ipGeoLocation = std::move(value); }
171 
172     /**
173      * <p>The geographic coordinates of the location that the IP address originated
174      * from.</p>
175      */
WithIpGeoLocation(const IpGeoLocation & value)176     inline IpAddressDetails& WithIpGeoLocation(const IpGeoLocation& value) { SetIpGeoLocation(value); return *this;}
177 
178     /**
179      * <p>The geographic coordinates of the location that the IP address originated
180      * from.</p>
181      */
WithIpGeoLocation(IpGeoLocation && value)182     inline IpAddressDetails& WithIpGeoLocation(IpGeoLocation&& value) { SetIpGeoLocation(std::move(value)); return *this;}
183 
184 
185     /**
186      * <p>The registered owner of the IP address.</p>
187      */
GetIpOwner()188     inline const IpOwner& GetIpOwner() const{ return m_ipOwner; }
189 
190     /**
191      * <p>The registered owner of the IP address.</p>
192      */
IpOwnerHasBeenSet()193     inline bool IpOwnerHasBeenSet() const { return m_ipOwnerHasBeenSet; }
194 
195     /**
196      * <p>The registered owner of the IP address.</p>
197      */
SetIpOwner(const IpOwner & value)198     inline void SetIpOwner(const IpOwner& value) { m_ipOwnerHasBeenSet = true; m_ipOwner = value; }
199 
200     /**
201      * <p>The registered owner of the IP address.</p>
202      */
SetIpOwner(IpOwner && value)203     inline void SetIpOwner(IpOwner&& value) { m_ipOwnerHasBeenSet = true; m_ipOwner = std::move(value); }
204 
205     /**
206      * <p>The registered owner of the IP address.</p>
207      */
WithIpOwner(const IpOwner & value)208     inline IpAddressDetails& WithIpOwner(const IpOwner& value) { SetIpOwner(value); return *this;}
209 
210     /**
211      * <p>The registered owner of the IP address.</p>
212      */
WithIpOwner(IpOwner && value)213     inline IpAddressDetails& WithIpOwner(IpOwner&& value) { SetIpOwner(std::move(value)); return *this;}
214 
215   private:
216 
217     Aws::String m_ipAddressV4;
218     bool m_ipAddressV4HasBeenSet;
219 
220     IpCity m_ipCity;
221     bool m_ipCityHasBeenSet;
222 
223     IpCountry m_ipCountry;
224     bool m_ipCountryHasBeenSet;
225 
226     IpGeoLocation m_ipGeoLocation;
227     bool m_ipGeoLocationHasBeenSet;
228 
229     IpOwner m_ipOwner;
230     bool m_ipOwnerHasBeenSet;
231   };
232 
233 } // namespace Model
234 } // namespace Macie2
235 } // namespace Aws
236