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/directconnect/DirectConnect_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/directconnect/model/DirectConnectGatewayState.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 DirectConnect
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Information about a Direct Connect gateway, which enables you to connect
29    * virtual interfaces and virtual private gateway or transit
30    * gateways.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DirectConnectGateway">AWS
32    * API Reference</a></p>
33    */
34   class AWS_DIRECTCONNECT_API DirectConnectGateway
35   {
36   public:
37     DirectConnectGateway();
38     DirectConnectGateway(Aws::Utils::Json::JsonView jsonValue);
39     DirectConnectGateway& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The ID of the Direct Connect gateway.</p>
45      */
GetDirectConnectGatewayId()46     inline const Aws::String& GetDirectConnectGatewayId() const{ return m_directConnectGatewayId; }
47 
48     /**
49      * <p>The ID of the Direct Connect gateway.</p>
50      */
DirectConnectGatewayIdHasBeenSet()51     inline bool DirectConnectGatewayIdHasBeenSet() const { return m_directConnectGatewayIdHasBeenSet; }
52 
53     /**
54      * <p>The ID of the Direct Connect gateway.</p>
55      */
SetDirectConnectGatewayId(const Aws::String & value)56     inline void SetDirectConnectGatewayId(const Aws::String& value) { m_directConnectGatewayIdHasBeenSet = true; m_directConnectGatewayId = value; }
57 
58     /**
59      * <p>The ID of the Direct Connect gateway.</p>
60      */
SetDirectConnectGatewayId(Aws::String && value)61     inline void SetDirectConnectGatewayId(Aws::String&& value) { m_directConnectGatewayIdHasBeenSet = true; m_directConnectGatewayId = std::move(value); }
62 
63     /**
64      * <p>The ID of the Direct Connect gateway.</p>
65      */
SetDirectConnectGatewayId(const char * value)66     inline void SetDirectConnectGatewayId(const char* value) { m_directConnectGatewayIdHasBeenSet = true; m_directConnectGatewayId.assign(value); }
67 
68     /**
69      * <p>The ID of the Direct Connect gateway.</p>
70      */
WithDirectConnectGatewayId(const Aws::String & value)71     inline DirectConnectGateway& WithDirectConnectGatewayId(const Aws::String& value) { SetDirectConnectGatewayId(value); return *this;}
72 
73     /**
74      * <p>The ID of the Direct Connect gateway.</p>
75      */
WithDirectConnectGatewayId(Aws::String && value)76     inline DirectConnectGateway& WithDirectConnectGatewayId(Aws::String&& value) { SetDirectConnectGatewayId(std::move(value)); return *this;}
77 
78     /**
79      * <p>The ID of the Direct Connect gateway.</p>
80      */
WithDirectConnectGatewayId(const char * value)81     inline DirectConnectGateway& WithDirectConnectGatewayId(const char* value) { SetDirectConnectGatewayId(value); return *this;}
82 
83 
84     /**
85      * <p>The name of the Direct Connect gateway.</p>
86      */
GetDirectConnectGatewayName()87     inline const Aws::String& GetDirectConnectGatewayName() const{ return m_directConnectGatewayName; }
88 
89     /**
90      * <p>The name of the Direct Connect gateway.</p>
91      */
DirectConnectGatewayNameHasBeenSet()92     inline bool DirectConnectGatewayNameHasBeenSet() const { return m_directConnectGatewayNameHasBeenSet; }
93 
94     /**
95      * <p>The name of the Direct Connect gateway.</p>
96      */
SetDirectConnectGatewayName(const Aws::String & value)97     inline void SetDirectConnectGatewayName(const Aws::String& value) { m_directConnectGatewayNameHasBeenSet = true; m_directConnectGatewayName = value; }
98 
99     /**
100      * <p>The name of the Direct Connect gateway.</p>
101      */
SetDirectConnectGatewayName(Aws::String && value)102     inline void SetDirectConnectGatewayName(Aws::String&& value) { m_directConnectGatewayNameHasBeenSet = true; m_directConnectGatewayName = std::move(value); }
103 
104     /**
105      * <p>The name of the Direct Connect gateway.</p>
106      */
SetDirectConnectGatewayName(const char * value)107     inline void SetDirectConnectGatewayName(const char* value) { m_directConnectGatewayNameHasBeenSet = true; m_directConnectGatewayName.assign(value); }
108 
109     /**
110      * <p>The name of the Direct Connect gateway.</p>
111      */
WithDirectConnectGatewayName(const Aws::String & value)112     inline DirectConnectGateway& WithDirectConnectGatewayName(const Aws::String& value) { SetDirectConnectGatewayName(value); return *this;}
113 
114     /**
115      * <p>The name of the Direct Connect gateway.</p>
116      */
WithDirectConnectGatewayName(Aws::String && value)117     inline DirectConnectGateway& WithDirectConnectGatewayName(Aws::String&& value) { SetDirectConnectGatewayName(std::move(value)); return *this;}
118 
119     /**
120      * <p>The name of the Direct Connect gateway.</p>
121      */
WithDirectConnectGatewayName(const char * value)122     inline DirectConnectGateway& WithDirectConnectGatewayName(const char* value) { SetDirectConnectGatewayName(value); return *this;}
123 
124 
125     /**
126      * <p>The autonomous system number (ASN) for the Amazon side of the connection.</p>
127      */
GetAmazonSideAsn()128     inline long long GetAmazonSideAsn() const{ return m_amazonSideAsn; }
129 
130     /**
131      * <p>The autonomous system number (ASN) for the Amazon side of the connection.</p>
132      */
AmazonSideAsnHasBeenSet()133     inline bool AmazonSideAsnHasBeenSet() const { return m_amazonSideAsnHasBeenSet; }
134 
135     /**
136      * <p>The autonomous system number (ASN) for the Amazon side of the connection.</p>
137      */
SetAmazonSideAsn(long long value)138     inline void SetAmazonSideAsn(long long value) { m_amazonSideAsnHasBeenSet = true; m_amazonSideAsn = value; }
139 
140     /**
141      * <p>The autonomous system number (ASN) for the Amazon side of the connection.</p>
142      */
WithAmazonSideAsn(long long value)143     inline DirectConnectGateway& WithAmazonSideAsn(long long value) { SetAmazonSideAsn(value); return *this;}
144 
145 
146     /**
147      * <p>The ID of the Amazon Web Services account that owns the Direct Connect
148      * gateway.</p>
149      */
GetOwnerAccount()150     inline const Aws::String& GetOwnerAccount() const{ return m_ownerAccount; }
151 
152     /**
153      * <p>The ID of the Amazon Web Services account that owns the Direct Connect
154      * gateway.</p>
155      */
OwnerAccountHasBeenSet()156     inline bool OwnerAccountHasBeenSet() const { return m_ownerAccountHasBeenSet; }
157 
158     /**
159      * <p>The ID of the Amazon Web Services account that owns the Direct Connect
160      * gateway.</p>
161      */
SetOwnerAccount(const Aws::String & value)162     inline void SetOwnerAccount(const Aws::String& value) { m_ownerAccountHasBeenSet = true; m_ownerAccount = value; }
163 
164     /**
165      * <p>The ID of the Amazon Web Services account that owns the Direct Connect
166      * gateway.</p>
167      */
SetOwnerAccount(Aws::String && value)168     inline void SetOwnerAccount(Aws::String&& value) { m_ownerAccountHasBeenSet = true; m_ownerAccount = std::move(value); }
169 
170     /**
171      * <p>The ID of the Amazon Web Services account that owns the Direct Connect
172      * gateway.</p>
173      */
SetOwnerAccount(const char * value)174     inline void SetOwnerAccount(const char* value) { m_ownerAccountHasBeenSet = true; m_ownerAccount.assign(value); }
175 
176     /**
177      * <p>The ID of the Amazon Web Services account that owns the Direct Connect
178      * gateway.</p>
179      */
WithOwnerAccount(const Aws::String & value)180     inline DirectConnectGateway& WithOwnerAccount(const Aws::String& value) { SetOwnerAccount(value); return *this;}
181 
182     /**
183      * <p>The ID of the Amazon Web Services account that owns the Direct Connect
184      * gateway.</p>
185      */
WithOwnerAccount(Aws::String && value)186     inline DirectConnectGateway& WithOwnerAccount(Aws::String&& value) { SetOwnerAccount(std::move(value)); return *this;}
187 
188     /**
189      * <p>The ID of the Amazon Web Services account that owns the Direct Connect
190      * gateway.</p>
191      */
WithOwnerAccount(const char * value)192     inline DirectConnectGateway& WithOwnerAccount(const char* value) { SetOwnerAccount(value); return *this;}
193 
194 
195     /**
196      * <p>The state of the Direct Connect gateway. The following are the possible
197      * values:</p> <ul> <li> <p> <code>pending</code>: The initial state after calling
198      * <a>CreateDirectConnectGateway</a>.</p> </li> <li> <p> <code>available</code>:
199      * The Direct Connect gateway is ready for use.</p> </li> <li> <p>
200      * <code>deleting</code>: The initial state after calling
201      * <a>DeleteDirectConnectGateway</a>.</p> </li> <li> <p> <code>deleted</code>: The
202      * Direct Connect gateway is deleted and cannot pass traffic.</p> </li> </ul>
203      */
GetDirectConnectGatewayState()204     inline const DirectConnectGatewayState& GetDirectConnectGatewayState() const{ return m_directConnectGatewayState; }
205 
206     /**
207      * <p>The state of the Direct Connect gateway. The following are the possible
208      * values:</p> <ul> <li> <p> <code>pending</code>: The initial state after calling
209      * <a>CreateDirectConnectGateway</a>.</p> </li> <li> <p> <code>available</code>:
210      * The Direct Connect gateway is ready for use.</p> </li> <li> <p>
211      * <code>deleting</code>: The initial state after calling
212      * <a>DeleteDirectConnectGateway</a>.</p> </li> <li> <p> <code>deleted</code>: The
213      * Direct Connect gateway is deleted and cannot pass traffic.</p> </li> </ul>
214      */
DirectConnectGatewayStateHasBeenSet()215     inline bool DirectConnectGatewayStateHasBeenSet() const { return m_directConnectGatewayStateHasBeenSet; }
216 
217     /**
218      * <p>The state of the Direct Connect gateway. The following are the possible
219      * values:</p> <ul> <li> <p> <code>pending</code>: The initial state after calling
220      * <a>CreateDirectConnectGateway</a>.</p> </li> <li> <p> <code>available</code>:
221      * The Direct Connect gateway is ready for use.</p> </li> <li> <p>
222      * <code>deleting</code>: The initial state after calling
223      * <a>DeleteDirectConnectGateway</a>.</p> </li> <li> <p> <code>deleted</code>: The
224      * Direct Connect gateway is deleted and cannot pass traffic.</p> </li> </ul>
225      */
SetDirectConnectGatewayState(const DirectConnectGatewayState & value)226     inline void SetDirectConnectGatewayState(const DirectConnectGatewayState& value) { m_directConnectGatewayStateHasBeenSet = true; m_directConnectGatewayState = value; }
227 
228     /**
229      * <p>The state of the Direct Connect gateway. The following are the possible
230      * values:</p> <ul> <li> <p> <code>pending</code>: The initial state after calling
231      * <a>CreateDirectConnectGateway</a>.</p> </li> <li> <p> <code>available</code>:
232      * The Direct Connect gateway is ready for use.</p> </li> <li> <p>
233      * <code>deleting</code>: The initial state after calling
234      * <a>DeleteDirectConnectGateway</a>.</p> </li> <li> <p> <code>deleted</code>: The
235      * Direct Connect gateway is deleted and cannot pass traffic.</p> </li> </ul>
236      */
SetDirectConnectGatewayState(DirectConnectGatewayState && value)237     inline void SetDirectConnectGatewayState(DirectConnectGatewayState&& value) { m_directConnectGatewayStateHasBeenSet = true; m_directConnectGatewayState = std::move(value); }
238 
239     /**
240      * <p>The state of the Direct Connect gateway. The following are the possible
241      * values:</p> <ul> <li> <p> <code>pending</code>: The initial state after calling
242      * <a>CreateDirectConnectGateway</a>.</p> </li> <li> <p> <code>available</code>:
243      * The Direct Connect gateway is ready for use.</p> </li> <li> <p>
244      * <code>deleting</code>: The initial state after calling
245      * <a>DeleteDirectConnectGateway</a>.</p> </li> <li> <p> <code>deleted</code>: The
246      * Direct Connect gateway is deleted and cannot pass traffic.</p> </li> </ul>
247      */
WithDirectConnectGatewayState(const DirectConnectGatewayState & value)248     inline DirectConnectGateway& WithDirectConnectGatewayState(const DirectConnectGatewayState& value) { SetDirectConnectGatewayState(value); return *this;}
249 
250     /**
251      * <p>The state of the Direct Connect gateway. The following are the possible
252      * values:</p> <ul> <li> <p> <code>pending</code>: The initial state after calling
253      * <a>CreateDirectConnectGateway</a>.</p> </li> <li> <p> <code>available</code>:
254      * The Direct Connect gateway is ready for use.</p> </li> <li> <p>
255      * <code>deleting</code>: The initial state after calling
256      * <a>DeleteDirectConnectGateway</a>.</p> </li> <li> <p> <code>deleted</code>: The
257      * Direct Connect gateway is deleted and cannot pass traffic.</p> </li> </ul>
258      */
WithDirectConnectGatewayState(DirectConnectGatewayState && value)259     inline DirectConnectGateway& WithDirectConnectGatewayState(DirectConnectGatewayState&& value) { SetDirectConnectGatewayState(std::move(value)); return *this;}
260 
261 
262     /**
263      * <p>The error message if the state of an object failed to advance.</p>
264      */
GetStateChangeError()265     inline const Aws::String& GetStateChangeError() const{ return m_stateChangeError; }
266 
267     /**
268      * <p>The error message if the state of an object failed to advance.</p>
269      */
StateChangeErrorHasBeenSet()270     inline bool StateChangeErrorHasBeenSet() const { return m_stateChangeErrorHasBeenSet; }
271 
272     /**
273      * <p>The error message if the state of an object failed to advance.</p>
274      */
SetStateChangeError(const Aws::String & value)275     inline void SetStateChangeError(const Aws::String& value) { m_stateChangeErrorHasBeenSet = true; m_stateChangeError = value; }
276 
277     /**
278      * <p>The error message if the state of an object failed to advance.</p>
279      */
SetStateChangeError(Aws::String && value)280     inline void SetStateChangeError(Aws::String&& value) { m_stateChangeErrorHasBeenSet = true; m_stateChangeError = std::move(value); }
281 
282     /**
283      * <p>The error message if the state of an object failed to advance.</p>
284      */
SetStateChangeError(const char * value)285     inline void SetStateChangeError(const char* value) { m_stateChangeErrorHasBeenSet = true; m_stateChangeError.assign(value); }
286 
287     /**
288      * <p>The error message if the state of an object failed to advance.</p>
289      */
WithStateChangeError(const Aws::String & value)290     inline DirectConnectGateway& WithStateChangeError(const Aws::String& value) { SetStateChangeError(value); return *this;}
291 
292     /**
293      * <p>The error message if the state of an object failed to advance.</p>
294      */
WithStateChangeError(Aws::String && value)295     inline DirectConnectGateway& WithStateChangeError(Aws::String&& value) { SetStateChangeError(std::move(value)); return *this;}
296 
297     /**
298      * <p>The error message if the state of an object failed to advance.</p>
299      */
WithStateChangeError(const char * value)300     inline DirectConnectGateway& WithStateChangeError(const char* value) { SetStateChangeError(value); return *this;}
301 
302   private:
303 
304     Aws::String m_directConnectGatewayId;
305     bool m_directConnectGatewayIdHasBeenSet;
306 
307     Aws::String m_directConnectGatewayName;
308     bool m_directConnectGatewayNameHasBeenSet;
309 
310     long long m_amazonSideAsn;
311     bool m_amazonSideAsnHasBeenSet;
312 
313     Aws::String m_ownerAccount;
314     bool m_ownerAccountHasBeenSet;
315 
316     DirectConnectGatewayState m_directConnectGatewayState;
317     bool m_directConnectGatewayStateHasBeenSet;
318 
319     Aws::String m_stateChangeError;
320     bool m_stateChangeErrorHasBeenSet;
321   };
322 
323 } // namespace Model
324 } // namespace DirectConnect
325 } // namespace Aws
326