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/networkmanager/NetworkManager_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/networkmanager/model/CustomerGatewayAssociationState.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 NetworkManager
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Describes the association between a customer gateway, a device, and a
29    * link.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/networkmanager-2019-07-05/CustomerGatewayAssociation">AWS
31    * API Reference</a></p>
32    */
33   class AWS_NETWORKMANAGER_API CustomerGatewayAssociation
34   {
35   public:
36     CustomerGatewayAssociation();
37     CustomerGatewayAssociation(Aws::Utils::Json::JsonView jsonValue);
38     CustomerGatewayAssociation& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The Amazon Resource Name (ARN) of the customer gateway.</p>
44      */
GetCustomerGatewayArn()45     inline const Aws::String& GetCustomerGatewayArn() const{ return m_customerGatewayArn; }
46 
47     /**
48      * <p>The Amazon Resource Name (ARN) of the customer gateway.</p>
49      */
CustomerGatewayArnHasBeenSet()50     inline bool CustomerGatewayArnHasBeenSet() const { return m_customerGatewayArnHasBeenSet; }
51 
52     /**
53      * <p>The Amazon Resource Name (ARN) of the customer gateway.</p>
54      */
SetCustomerGatewayArn(const Aws::String & value)55     inline void SetCustomerGatewayArn(const Aws::String& value) { m_customerGatewayArnHasBeenSet = true; m_customerGatewayArn = value; }
56 
57     /**
58      * <p>The Amazon Resource Name (ARN) of the customer gateway.</p>
59      */
SetCustomerGatewayArn(Aws::String && value)60     inline void SetCustomerGatewayArn(Aws::String&& value) { m_customerGatewayArnHasBeenSet = true; m_customerGatewayArn = std::move(value); }
61 
62     /**
63      * <p>The Amazon Resource Name (ARN) of the customer gateway.</p>
64      */
SetCustomerGatewayArn(const char * value)65     inline void SetCustomerGatewayArn(const char* value) { m_customerGatewayArnHasBeenSet = true; m_customerGatewayArn.assign(value); }
66 
67     /**
68      * <p>The Amazon Resource Name (ARN) of the customer gateway.</p>
69      */
WithCustomerGatewayArn(const Aws::String & value)70     inline CustomerGatewayAssociation& WithCustomerGatewayArn(const Aws::String& value) { SetCustomerGatewayArn(value); return *this;}
71 
72     /**
73      * <p>The Amazon Resource Name (ARN) of the customer gateway.</p>
74      */
WithCustomerGatewayArn(Aws::String && value)75     inline CustomerGatewayAssociation& WithCustomerGatewayArn(Aws::String&& value) { SetCustomerGatewayArn(std::move(value)); return *this;}
76 
77     /**
78      * <p>The Amazon Resource Name (ARN) of the customer gateway.</p>
79      */
WithCustomerGatewayArn(const char * value)80     inline CustomerGatewayAssociation& WithCustomerGatewayArn(const char* value) { SetCustomerGatewayArn(value); return *this;}
81 
82 
83     /**
84      * <p>The ID of the global network.</p>
85      */
GetGlobalNetworkId()86     inline const Aws::String& GetGlobalNetworkId() const{ return m_globalNetworkId; }
87 
88     /**
89      * <p>The ID of the global network.</p>
90      */
GlobalNetworkIdHasBeenSet()91     inline bool GlobalNetworkIdHasBeenSet() const { return m_globalNetworkIdHasBeenSet; }
92 
93     /**
94      * <p>The ID of the global network.</p>
95      */
SetGlobalNetworkId(const Aws::String & value)96     inline void SetGlobalNetworkId(const Aws::String& value) { m_globalNetworkIdHasBeenSet = true; m_globalNetworkId = value; }
97 
98     /**
99      * <p>The ID of the global network.</p>
100      */
SetGlobalNetworkId(Aws::String && value)101     inline void SetGlobalNetworkId(Aws::String&& value) { m_globalNetworkIdHasBeenSet = true; m_globalNetworkId = std::move(value); }
102 
103     /**
104      * <p>The ID of the global network.</p>
105      */
SetGlobalNetworkId(const char * value)106     inline void SetGlobalNetworkId(const char* value) { m_globalNetworkIdHasBeenSet = true; m_globalNetworkId.assign(value); }
107 
108     /**
109      * <p>The ID of the global network.</p>
110      */
WithGlobalNetworkId(const Aws::String & value)111     inline CustomerGatewayAssociation& WithGlobalNetworkId(const Aws::String& value) { SetGlobalNetworkId(value); return *this;}
112 
113     /**
114      * <p>The ID of the global network.</p>
115      */
WithGlobalNetworkId(Aws::String && value)116     inline CustomerGatewayAssociation& WithGlobalNetworkId(Aws::String&& value) { SetGlobalNetworkId(std::move(value)); return *this;}
117 
118     /**
119      * <p>The ID of the global network.</p>
120      */
WithGlobalNetworkId(const char * value)121     inline CustomerGatewayAssociation& WithGlobalNetworkId(const char* value) { SetGlobalNetworkId(value); return *this;}
122 
123 
124     /**
125      * <p>The ID of the device.</p>
126      */
GetDeviceId()127     inline const Aws::String& GetDeviceId() const{ return m_deviceId; }
128 
129     /**
130      * <p>The ID of the device.</p>
131      */
DeviceIdHasBeenSet()132     inline bool DeviceIdHasBeenSet() const { return m_deviceIdHasBeenSet; }
133 
134     /**
135      * <p>The ID of the device.</p>
136      */
SetDeviceId(const Aws::String & value)137     inline void SetDeviceId(const Aws::String& value) { m_deviceIdHasBeenSet = true; m_deviceId = value; }
138 
139     /**
140      * <p>The ID of the device.</p>
141      */
SetDeviceId(Aws::String && value)142     inline void SetDeviceId(Aws::String&& value) { m_deviceIdHasBeenSet = true; m_deviceId = std::move(value); }
143 
144     /**
145      * <p>The ID of the device.</p>
146      */
SetDeviceId(const char * value)147     inline void SetDeviceId(const char* value) { m_deviceIdHasBeenSet = true; m_deviceId.assign(value); }
148 
149     /**
150      * <p>The ID of the device.</p>
151      */
WithDeviceId(const Aws::String & value)152     inline CustomerGatewayAssociation& WithDeviceId(const Aws::String& value) { SetDeviceId(value); return *this;}
153 
154     /**
155      * <p>The ID of the device.</p>
156      */
WithDeviceId(Aws::String && value)157     inline CustomerGatewayAssociation& WithDeviceId(Aws::String&& value) { SetDeviceId(std::move(value)); return *this;}
158 
159     /**
160      * <p>The ID of the device.</p>
161      */
WithDeviceId(const char * value)162     inline CustomerGatewayAssociation& WithDeviceId(const char* value) { SetDeviceId(value); return *this;}
163 
164 
165     /**
166      * <p>The ID of the link.</p>
167      */
GetLinkId()168     inline const Aws::String& GetLinkId() const{ return m_linkId; }
169 
170     /**
171      * <p>The ID of the link.</p>
172      */
LinkIdHasBeenSet()173     inline bool LinkIdHasBeenSet() const { return m_linkIdHasBeenSet; }
174 
175     /**
176      * <p>The ID of the link.</p>
177      */
SetLinkId(const Aws::String & value)178     inline void SetLinkId(const Aws::String& value) { m_linkIdHasBeenSet = true; m_linkId = value; }
179 
180     /**
181      * <p>The ID of the link.</p>
182      */
SetLinkId(Aws::String && value)183     inline void SetLinkId(Aws::String&& value) { m_linkIdHasBeenSet = true; m_linkId = std::move(value); }
184 
185     /**
186      * <p>The ID of the link.</p>
187      */
SetLinkId(const char * value)188     inline void SetLinkId(const char* value) { m_linkIdHasBeenSet = true; m_linkId.assign(value); }
189 
190     /**
191      * <p>The ID of the link.</p>
192      */
WithLinkId(const Aws::String & value)193     inline CustomerGatewayAssociation& WithLinkId(const Aws::String& value) { SetLinkId(value); return *this;}
194 
195     /**
196      * <p>The ID of the link.</p>
197      */
WithLinkId(Aws::String && value)198     inline CustomerGatewayAssociation& WithLinkId(Aws::String&& value) { SetLinkId(std::move(value)); return *this;}
199 
200     /**
201      * <p>The ID of the link.</p>
202      */
WithLinkId(const char * value)203     inline CustomerGatewayAssociation& WithLinkId(const char* value) { SetLinkId(value); return *this;}
204 
205 
206     /**
207      * <p>The association state.</p>
208      */
GetState()209     inline const CustomerGatewayAssociationState& GetState() const{ return m_state; }
210 
211     /**
212      * <p>The association state.</p>
213      */
StateHasBeenSet()214     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
215 
216     /**
217      * <p>The association state.</p>
218      */
SetState(const CustomerGatewayAssociationState & value)219     inline void SetState(const CustomerGatewayAssociationState& value) { m_stateHasBeenSet = true; m_state = value; }
220 
221     /**
222      * <p>The association state.</p>
223      */
SetState(CustomerGatewayAssociationState && value)224     inline void SetState(CustomerGatewayAssociationState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
225 
226     /**
227      * <p>The association state.</p>
228      */
WithState(const CustomerGatewayAssociationState & value)229     inline CustomerGatewayAssociation& WithState(const CustomerGatewayAssociationState& value) { SetState(value); return *this;}
230 
231     /**
232      * <p>The association state.</p>
233      */
WithState(CustomerGatewayAssociationState && value)234     inline CustomerGatewayAssociation& WithState(CustomerGatewayAssociationState&& value) { SetState(std::move(value)); return *this;}
235 
236   private:
237 
238     Aws::String m_customerGatewayArn;
239     bool m_customerGatewayArnHasBeenSet;
240 
241     Aws::String m_globalNetworkId;
242     bool m_globalNetworkIdHasBeenSet;
243 
244     Aws::String m_deviceId;
245     bool m_deviceIdHasBeenSet;
246 
247     Aws::String m_linkId;
248     bool m_linkIdHasBeenSet;
249 
250     CustomerGatewayAssociationState m_state;
251     bool m_stateHasBeenSet;
252   };
253 
254 } // namespace Model
255 } // namespace NetworkManager
256 } // namespace Aws
257