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/elasticloadbalancingv2/ElasticLoadBalancingv2_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Xml
17 {
18   class XmlNode;
19 } // namespace Xml
20 } // namespace Utils
21 namespace ElasticLoadBalancingv2
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Information about an Elastic Load Balancing resource limit for your Amazon
28    * Web Services account.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Limit">AWS
30    * API Reference</a></p>
31    */
32   class AWS_ELASTICLOADBALANCINGV2_API Limit
33   {
34   public:
35     Limit();
36     Limit(const Aws::Utils::Xml::XmlNode& xmlNode);
37     Limit& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
38 
39     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
40     void OutputToStream(Aws::OStream& oStream, const char* location) const;
41 
42 
43     /**
44      * <p>The name of the limit. The possible values are:</p> <ul> <li>
45      * <p>application-load-balancers</p> </li> <li>
46      * <p>condition-values-per-alb-rule</p> </li> <li>
47      * <p>condition-wildcards-per-alb-rule</p> </li> <li> <p>gateway-load-balancers</p>
48      * </li> <li> <p>gateway-load-balancers-per-vpc</p> </li> <li>
49      * <p>geneve-target-groups</p> </li> <li>
50      * <p>listeners-per-application-load-balancer</p> </li> <li>
51      * <p>listeners-per-network-load-balancer</p> </li> <li>
52      * <p>network-load-balancers</p> </li> <li>
53      * <p>rules-per-application-load-balancer</p> </li> <li> <p>target-groups</p> </li>
54      * <li> <p>target-groups-per-action-on-application-load-balancer</p> </li> <li>
55      * <p>target-groups-per-action-on-network-load-balancer</p> </li> <li>
56      * <p>target-groups-per-application-load-balancer</p> </li> <li>
57      * <p>targets-per-application-load-balancer</p> </li> <li>
58      * <p>targets-per-availability-zone-per-gateway-load-balancer</p> </li> <li>
59      * <p>targets-per-availability-zone-per-network-load-balancer</p> </li> <li>
60      * <p>targets-per-network-load-balancer</p> </li> </ul>
61      */
GetName()62     inline const Aws::String& GetName() const{ return m_name; }
63 
64     /**
65      * <p>The name of the limit. The possible values are:</p> <ul> <li>
66      * <p>application-load-balancers</p> </li> <li>
67      * <p>condition-values-per-alb-rule</p> </li> <li>
68      * <p>condition-wildcards-per-alb-rule</p> </li> <li> <p>gateway-load-balancers</p>
69      * </li> <li> <p>gateway-load-balancers-per-vpc</p> </li> <li>
70      * <p>geneve-target-groups</p> </li> <li>
71      * <p>listeners-per-application-load-balancer</p> </li> <li>
72      * <p>listeners-per-network-load-balancer</p> </li> <li>
73      * <p>network-load-balancers</p> </li> <li>
74      * <p>rules-per-application-load-balancer</p> </li> <li> <p>target-groups</p> </li>
75      * <li> <p>target-groups-per-action-on-application-load-balancer</p> </li> <li>
76      * <p>target-groups-per-action-on-network-load-balancer</p> </li> <li>
77      * <p>target-groups-per-application-load-balancer</p> </li> <li>
78      * <p>targets-per-application-load-balancer</p> </li> <li>
79      * <p>targets-per-availability-zone-per-gateway-load-balancer</p> </li> <li>
80      * <p>targets-per-availability-zone-per-network-load-balancer</p> </li> <li>
81      * <p>targets-per-network-load-balancer</p> </li> </ul>
82      */
NameHasBeenSet()83     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
84 
85     /**
86      * <p>The name of the limit. The possible values are:</p> <ul> <li>
87      * <p>application-load-balancers</p> </li> <li>
88      * <p>condition-values-per-alb-rule</p> </li> <li>
89      * <p>condition-wildcards-per-alb-rule</p> </li> <li> <p>gateway-load-balancers</p>
90      * </li> <li> <p>gateway-load-balancers-per-vpc</p> </li> <li>
91      * <p>geneve-target-groups</p> </li> <li>
92      * <p>listeners-per-application-load-balancer</p> </li> <li>
93      * <p>listeners-per-network-load-balancer</p> </li> <li>
94      * <p>network-load-balancers</p> </li> <li>
95      * <p>rules-per-application-load-balancer</p> </li> <li> <p>target-groups</p> </li>
96      * <li> <p>target-groups-per-action-on-application-load-balancer</p> </li> <li>
97      * <p>target-groups-per-action-on-network-load-balancer</p> </li> <li>
98      * <p>target-groups-per-application-load-balancer</p> </li> <li>
99      * <p>targets-per-application-load-balancer</p> </li> <li>
100      * <p>targets-per-availability-zone-per-gateway-load-balancer</p> </li> <li>
101      * <p>targets-per-availability-zone-per-network-load-balancer</p> </li> <li>
102      * <p>targets-per-network-load-balancer</p> </li> </ul>
103      */
SetName(const Aws::String & value)104     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
105 
106     /**
107      * <p>The name of the limit. The possible values are:</p> <ul> <li>
108      * <p>application-load-balancers</p> </li> <li>
109      * <p>condition-values-per-alb-rule</p> </li> <li>
110      * <p>condition-wildcards-per-alb-rule</p> </li> <li> <p>gateway-load-balancers</p>
111      * </li> <li> <p>gateway-load-balancers-per-vpc</p> </li> <li>
112      * <p>geneve-target-groups</p> </li> <li>
113      * <p>listeners-per-application-load-balancer</p> </li> <li>
114      * <p>listeners-per-network-load-balancer</p> </li> <li>
115      * <p>network-load-balancers</p> </li> <li>
116      * <p>rules-per-application-load-balancer</p> </li> <li> <p>target-groups</p> </li>
117      * <li> <p>target-groups-per-action-on-application-load-balancer</p> </li> <li>
118      * <p>target-groups-per-action-on-network-load-balancer</p> </li> <li>
119      * <p>target-groups-per-application-load-balancer</p> </li> <li>
120      * <p>targets-per-application-load-balancer</p> </li> <li>
121      * <p>targets-per-availability-zone-per-gateway-load-balancer</p> </li> <li>
122      * <p>targets-per-availability-zone-per-network-load-balancer</p> </li> <li>
123      * <p>targets-per-network-load-balancer</p> </li> </ul>
124      */
SetName(Aws::String && value)125     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
126 
127     /**
128      * <p>The name of the limit. The possible values are:</p> <ul> <li>
129      * <p>application-load-balancers</p> </li> <li>
130      * <p>condition-values-per-alb-rule</p> </li> <li>
131      * <p>condition-wildcards-per-alb-rule</p> </li> <li> <p>gateway-load-balancers</p>
132      * </li> <li> <p>gateway-load-balancers-per-vpc</p> </li> <li>
133      * <p>geneve-target-groups</p> </li> <li>
134      * <p>listeners-per-application-load-balancer</p> </li> <li>
135      * <p>listeners-per-network-load-balancer</p> </li> <li>
136      * <p>network-load-balancers</p> </li> <li>
137      * <p>rules-per-application-load-balancer</p> </li> <li> <p>target-groups</p> </li>
138      * <li> <p>target-groups-per-action-on-application-load-balancer</p> </li> <li>
139      * <p>target-groups-per-action-on-network-load-balancer</p> </li> <li>
140      * <p>target-groups-per-application-load-balancer</p> </li> <li>
141      * <p>targets-per-application-load-balancer</p> </li> <li>
142      * <p>targets-per-availability-zone-per-gateway-load-balancer</p> </li> <li>
143      * <p>targets-per-availability-zone-per-network-load-balancer</p> </li> <li>
144      * <p>targets-per-network-load-balancer</p> </li> </ul>
145      */
SetName(const char * value)146     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
147 
148     /**
149      * <p>The name of the limit. The possible values are:</p> <ul> <li>
150      * <p>application-load-balancers</p> </li> <li>
151      * <p>condition-values-per-alb-rule</p> </li> <li>
152      * <p>condition-wildcards-per-alb-rule</p> </li> <li> <p>gateway-load-balancers</p>
153      * </li> <li> <p>gateway-load-balancers-per-vpc</p> </li> <li>
154      * <p>geneve-target-groups</p> </li> <li>
155      * <p>listeners-per-application-load-balancer</p> </li> <li>
156      * <p>listeners-per-network-load-balancer</p> </li> <li>
157      * <p>network-load-balancers</p> </li> <li>
158      * <p>rules-per-application-load-balancer</p> </li> <li> <p>target-groups</p> </li>
159      * <li> <p>target-groups-per-action-on-application-load-balancer</p> </li> <li>
160      * <p>target-groups-per-action-on-network-load-balancer</p> </li> <li>
161      * <p>target-groups-per-application-load-balancer</p> </li> <li>
162      * <p>targets-per-application-load-balancer</p> </li> <li>
163      * <p>targets-per-availability-zone-per-gateway-load-balancer</p> </li> <li>
164      * <p>targets-per-availability-zone-per-network-load-balancer</p> </li> <li>
165      * <p>targets-per-network-load-balancer</p> </li> </ul>
166      */
WithName(const Aws::String & value)167     inline Limit& WithName(const Aws::String& value) { SetName(value); return *this;}
168 
169     /**
170      * <p>The name of the limit. The possible values are:</p> <ul> <li>
171      * <p>application-load-balancers</p> </li> <li>
172      * <p>condition-values-per-alb-rule</p> </li> <li>
173      * <p>condition-wildcards-per-alb-rule</p> </li> <li> <p>gateway-load-balancers</p>
174      * </li> <li> <p>gateway-load-balancers-per-vpc</p> </li> <li>
175      * <p>geneve-target-groups</p> </li> <li>
176      * <p>listeners-per-application-load-balancer</p> </li> <li>
177      * <p>listeners-per-network-load-balancer</p> </li> <li>
178      * <p>network-load-balancers</p> </li> <li>
179      * <p>rules-per-application-load-balancer</p> </li> <li> <p>target-groups</p> </li>
180      * <li> <p>target-groups-per-action-on-application-load-balancer</p> </li> <li>
181      * <p>target-groups-per-action-on-network-load-balancer</p> </li> <li>
182      * <p>target-groups-per-application-load-balancer</p> </li> <li>
183      * <p>targets-per-application-load-balancer</p> </li> <li>
184      * <p>targets-per-availability-zone-per-gateway-load-balancer</p> </li> <li>
185      * <p>targets-per-availability-zone-per-network-load-balancer</p> </li> <li>
186      * <p>targets-per-network-load-balancer</p> </li> </ul>
187      */
WithName(Aws::String && value)188     inline Limit& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
189 
190     /**
191      * <p>The name of the limit. The possible values are:</p> <ul> <li>
192      * <p>application-load-balancers</p> </li> <li>
193      * <p>condition-values-per-alb-rule</p> </li> <li>
194      * <p>condition-wildcards-per-alb-rule</p> </li> <li> <p>gateway-load-balancers</p>
195      * </li> <li> <p>gateway-load-balancers-per-vpc</p> </li> <li>
196      * <p>geneve-target-groups</p> </li> <li>
197      * <p>listeners-per-application-load-balancer</p> </li> <li>
198      * <p>listeners-per-network-load-balancer</p> </li> <li>
199      * <p>network-load-balancers</p> </li> <li>
200      * <p>rules-per-application-load-balancer</p> </li> <li> <p>target-groups</p> </li>
201      * <li> <p>target-groups-per-action-on-application-load-balancer</p> </li> <li>
202      * <p>target-groups-per-action-on-network-load-balancer</p> </li> <li>
203      * <p>target-groups-per-application-load-balancer</p> </li> <li>
204      * <p>targets-per-application-load-balancer</p> </li> <li>
205      * <p>targets-per-availability-zone-per-gateway-load-balancer</p> </li> <li>
206      * <p>targets-per-availability-zone-per-network-load-balancer</p> </li> <li>
207      * <p>targets-per-network-load-balancer</p> </li> </ul>
208      */
WithName(const char * value)209     inline Limit& WithName(const char* value) { SetName(value); return *this;}
210 
211 
212     /**
213      * <p>The maximum value of the limit.</p>
214      */
GetMax()215     inline const Aws::String& GetMax() const{ return m_max; }
216 
217     /**
218      * <p>The maximum value of the limit.</p>
219      */
MaxHasBeenSet()220     inline bool MaxHasBeenSet() const { return m_maxHasBeenSet; }
221 
222     /**
223      * <p>The maximum value of the limit.</p>
224      */
SetMax(const Aws::String & value)225     inline void SetMax(const Aws::String& value) { m_maxHasBeenSet = true; m_max = value; }
226 
227     /**
228      * <p>The maximum value of the limit.</p>
229      */
SetMax(Aws::String && value)230     inline void SetMax(Aws::String&& value) { m_maxHasBeenSet = true; m_max = std::move(value); }
231 
232     /**
233      * <p>The maximum value of the limit.</p>
234      */
SetMax(const char * value)235     inline void SetMax(const char* value) { m_maxHasBeenSet = true; m_max.assign(value); }
236 
237     /**
238      * <p>The maximum value of the limit.</p>
239      */
WithMax(const Aws::String & value)240     inline Limit& WithMax(const Aws::String& value) { SetMax(value); return *this;}
241 
242     /**
243      * <p>The maximum value of the limit.</p>
244      */
WithMax(Aws::String && value)245     inline Limit& WithMax(Aws::String&& value) { SetMax(std::move(value)); return *this;}
246 
247     /**
248      * <p>The maximum value of the limit.</p>
249      */
WithMax(const char * value)250     inline Limit& WithMax(const char* value) { SetMax(value); return *this;}
251 
252   private:
253 
254     Aws::String m_name;
255     bool m_nameHasBeenSet;
256 
257     Aws::String m_max;
258     bool m_maxHasBeenSet;
259   };
260 
261 } // namespace Model
262 } // namespace ElasticLoadBalancingv2
263 } // namespace Aws
264