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/GatewayType.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 the associated gateway.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AssociatedGateway">AWS
30    * API Reference</a></p>
31    */
32   class AWS_DIRECTCONNECT_API AssociatedGateway
33   {
34   public:
35     AssociatedGateway();
36     AssociatedGateway(Aws::Utils::Json::JsonView jsonValue);
37     AssociatedGateway& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The ID of the associated gateway.</p>
43      */
GetId()44     inline const Aws::String& GetId() const{ return m_id; }
45 
46     /**
47      * <p>The ID of the associated gateway.</p>
48      */
IdHasBeenSet()49     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
50 
51     /**
52      * <p>The ID of the associated gateway.</p>
53      */
SetId(const Aws::String & value)54     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
55 
56     /**
57      * <p>The ID of the associated gateway.</p>
58      */
SetId(Aws::String && value)59     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
60 
61     /**
62      * <p>The ID of the associated gateway.</p>
63      */
SetId(const char * value)64     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
65 
66     /**
67      * <p>The ID of the associated gateway.</p>
68      */
WithId(const Aws::String & value)69     inline AssociatedGateway& WithId(const Aws::String& value) { SetId(value); return *this;}
70 
71     /**
72      * <p>The ID of the associated gateway.</p>
73      */
WithId(Aws::String && value)74     inline AssociatedGateway& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
75 
76     /**
77      * <p>The ID of the associated gateway.</p>
78      */
WithId(const char * value)79     inline AssociatedGateway& WithId(const char* value) { SetId(value); return *this;}
80 
81 
82     /**
83      * <p>The type of associated gateway.</p>
84      */
GetType()85     inline const GatewayType& GetType() const{ return m_type; }
86 
87     /**
88      * <p>The type of associated gateway.</p>
89      */
TypeHasBeenSet()90     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
91 
92     /**
93      * <p>The type of associated gateway.</p>
94      */
SetType(const GatewayType & value)95     inline void SetType(const GatewayType& value) { m_typeHasBeenSet = true; m_type = value; }
96 
97     /**
98      * <p>The type of associated gateway.</p>
99      */
SetType(GatewayType && value)100     inline void SetType(GatewayType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
101 
102     /**
103      * <p>The type of associated gateway.</p>
104      */
WithType(const GatewayType & value)105     inline AssociatedGateway& WithType(const GatewayType& value) { SetType(value); return *this;}
106 
107     /**
108      * <p>The type of associated gateway.</p>
109      */
WithType(GatewayType && value)110     inline AssociatedGateway& WithType(GatewayType&& value) { SetType(std::move(value)); return *this;}
111 
112 
113     /**
114      * <p>The ID of the Amazon Web Services account that owns the associated virtual
115      * private gateway or transit gateway.</p>
116      */
GetOwnerAccount()117     inline const Aws::String& GetOwnerAccount() const{ return m_ownerAccount; }
118 
119     /**
120      * <p>The ID of the Amazon Web Services account that owns the associated virtual
121      * private gateway or transit gateway.</p>
122      */
OwnerAccountHasBeenSet()123     inline bool OwnerAccountHasBeenSet() const { return m_ownerAccountHasBeenSet; }
124 
125     /**
126      * <p>The ID of the Amazon Web Services account that owns the associated virtual
127      * private gateway or transit gateway.</p>
128      */
SetOwnerAccount(const Aws::String & value)129     inline void SetOwnerAccount(const Aws::String& value) { m_ownerAccountHasBeenSet = true; m_ownerAccount = value; }
130 
131     /**
132      * <p>The ID of the Amazon Web Services account that owns the associated virtual
133      * private gateway or transit gateway.</p>
134      */
SetOwnerAccount(Aws::String && value)135     inline void SetOwnerAccount(Aws::String&& value) { m_ownerAccountHasBeenSet = true; m_ownerAccount = std::move(value); }
136 
137     /**
138      * <p>The ID of the Amazon Web Services account that owns the associated virtual
139      * private gateway or transit gateway.</p>
140      */
SetOwnerAccount(const char * value)141     inline void SetOwnerAccount(const char* value) { m_ownerAccountHasBeenSet = true; m_ownerAccount.assign(value); }
142 
143     /**
144      * <p>The ID of the Amazon Web Services account that owns the associated virtual
145      * private gateway or transit gateway.</p>
146      */
WithOwnerAccount(const Aws::String & value)147     inline AssociatedGateway& WithOwnerAccount(const Aws::String& value) { SetOwnerAccount(value); return *this;}
148 
149     /**
150      * <p>The ID of the Amazon Web Services account that owns the associated virtual
151      * private gateway or transit gateway.</p>
152      */
WithOwnerAccount(Aws::String && value)153     inline AssociatedGateway& WithOwnerAccount(Aws::String&& value) { SetOwnerAccount(std::move(value)); return *this;}
154 
155     /**
156      * <p>The ID of the Amazon Web Services account that owns the associated virtual
157      * private gateway or transit gateway.</p>
158      */
WithOwnerAccount(const char * value)159     inline AssociatedGateway& WithOwnerAccount(const char* value) { SetOwnerAccount(value); return *this;}
160 
161 
162     /**
163      * <p>The Region where the associated gateway is located.</p>
164      */
GetRegion()165     inline const Aws::String& GetRegion() const{ return m_region; }
166 
167     /**
168      * <p>The Region where the associated gateway is located.</p>
169      */
RegionHasBeenSet()170     inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; }
171 
172     /**
173      * <p>The Region where the associated gateway is located.</p>
174      */
SetRegion(const Aws::String & value)175     inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; }
176 
177     /**
178      * <p>The Region where the associated gateway is located.</p>
179      */
SetRegion(Aws::String && value)180     inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); }
181 
182     /**
183      * <p>The Region where the associated gateway is located.</p>
184      */
SetRegion(const char * value)185     inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); }
186 
187     /**
188      * <p>The Region where the associated gateway is located.</p>
189      */
WithRegion(const Aws::String & value)190     inline AssociatedGateway& WithRegion(const Aws::String& value) { SetRegion(value); return *this;}
191 
192     /**
193      * <p>The Region where the associated gateway is located.</p>
194      */
WithRegion(Aws::String && value)195     inline AssociatedGateway& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;}
196 
197     /**
198      * <p>The Region where the associated gateway is located.</p>
199      */
WithRegion(const char * value)200     inline AssociatedGateway& WithRegion(const char* value) { SetRegion(value); return *this;}
201 
202   private:
203 
204     Aws::String m_id;
205     bool m_idHasBeenSet;
206 
207     GatewayType m_type;
208     bool m_typeHasBeenSet;
209 
210     Aws::String m_ownerAccount;
211     bool m_ownerAccountHasBeenSet;
212 
213     Aws::String m_region;
214     bool m_regionHasBeenSet;
215   };
216 
217 } // namespace Model
218 } // namespace DirectConnect
219 } // namespace Aws
220