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/elasticbeanstalk/ElasticBeanstalk_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/elasticbeanstalk/model/Listener.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Xml
19 {
20   class XmlNode;
21 } // namespace Xml
22 } // namespace Utils
23 namespace ElasticBeanstalk
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Describes the details of a LoadBalancer.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/LoadBalancerDescription">AWS
31    * API Reference</a></p>
32    */
33   class AWS_ELASTICBEANSTALK_API LoadBalancerDescription
34   {
35   public:
36     LoadBalancerDescription();
37     LoadBalancerDescription(const Aws::Utils::Xml::XmlNode& xmlNode);
38     LoadBalancerDescription& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
39 
40     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
41     void OutputToStream(Aws::OStream& oStream, const char* location) const;
42 
43 
44     /**
45      * <p>The name of the LoadBalancer.</p>
46      */
GetLoadBalancerName()47     inline const Aws::String& GetLoadBalancerName() const{ return m_loadBalancerName; }
48 
49     /**
50      * <p>The name of the LoadBalancer.</p>
51      */
LoadBalancerNameHasBeenSet()52     inline bool LoadBalancerNameHasBeenSet() const { return m_loadBalancerNameHasBeenSet; }
53 
54     /**
55      * <p>The name of the LoadBalancer.</p>
56      */
SetLoadBalancerName(const Aws::String & value)57     inline void SetLoadBalancerName(const Aws::String& value) { m_loadBalancerNameHasBeenSet = true; m_loadBalancerName = value; }
58 
59     /**
60      * <p>The name of the LoadBalancer.</p>
61      */
SetLoadBalancerName(Aws::String && value)62     inline void SetLoadBalancerName(Aws::String&& value) { m_loadBalancerNameHasBeenSet = true; m_loadBalancerName = std::move(value); }
63 
64     /**
65      * <p>The name of the LoadBalancer.</p>
66      */
SetLoadBalancerName(const char * value)67     inline void SetLoadBalancerName(const char* value) { m_loadBalancerNameHasBeenSet = true; m_loadBalancerName.assign(value); }
68 
69     /**
70      * <p>The name of the LoadBalancer.</p>
71      */
WithLoadBalancerName(const Aws::String & value)72     inline LoadBalancerDescription& WithLoadBalancerName(const Aws::String& value) { SetLoadBalancerName(value); return *this;}
73 
74     /**
75      * <p>The name of the LoadBalancer.</p>
76      */
WithLoadBalancerName(Aws::String && value)77     inline LoadBalancerDescription& WithLoadBalancerName(Aws::String&& value) { SetLoadBalancerName(std::move(value)); return *this;}
78 
79     /**
80      * <p>The name of the LoadBalancer.</p>
81      */
WithLoadBalancerName(const char * value)82     inline LoadBalancerDescription& WithLoadBalancerName(const char* value) { SetLoadBalancerName(value); return *this;}
83 
84 
85     /**
86      * <p>The domain name of the LoadBalancer.</p>
87      */
GetDomain()88     inline const Aws::String& GetDomain() const{ return m_domain; }
89 
90     /**
91      * <p>The domain name of the LoadBalancer.</p>
92      */
DomainHasBeenSet()93     inline bool DomainHasBeenSet() const { return m_domainHasBeenSet; }
94 
95     /**
96      * <p>The domain name of the LoadBalancer.</p>
97      */
SetDomain(const Aws::String & value)98     inline void SetDomain(const Aws::String& value) { m_domainHasBeenSet = true; m_domain = value; }
99 
100     /**
101      * <p>The domain name of the LoadBalancer.</p>
102      */
SetDomain(Aws::String && value)103     inline void SetDomain(Aws::String&& value) { m_domainHasBeenSet = true; m_domain = std::move(value); }
104 
105     /**
106      * <p>The domain name of the LoadBalancer.</p>
107      */
SetDomain(const char * value)108     inline void SetDomain(const char* value) { m_domainHasBeenSet = true; m_domain.assign(value); }
109 
110     /**
111      * <p>The domain name of the LoadBalancer.</p>
112      */
WithDomain(const Aws::String & value)113     inline LoadBalancerDescription& WithDomain(const Aws::String& value) { SetDomain(value); return *this;}
114 
115     /**
116      * <p>The domain name of the LoadBalancer.</p>
117      */
WithDomain(Aws::String && value)118     inline LoadBalancerDescription& WithDomain(Aws::String&& value) { SetDomain(std::move(value)); return *this;}
119 
120     /**
121      * <p>The domain name of the LoadBalancer.</p>
122      */
WithDomain(const char * value)123     inline LoadBalancerDescription& WithDomain(const char* value) { SetDomain(value); return *this;}
124 
125 
126     /**
127      * <p>A list of Listeners used by the LoadBalancer.</p>
128      */
GetListeners()129     inline const Aws::Vector<Listener>& GetListeners() const{ return m_listeners; }
130 
131     /**
132      * <p>A list of Listeners used by the LoadBalancer.</p>
133      */
ListenersHasBeenSet()134     inline bool ListenersHasBeenSet() const { return m_listenersHasBeenSet; }
135 
136     /**
137      * <p>A list of Listeners used by the LoadBalancer.</p>
138      */
SetListeners(const Aws::Vector<Listener> & value)139     inline void SetListeners(const Aws::Vector<Listener>& value) { m_listenersHasBeenSet = true; m_listeners = value; }
140 
141     /**
142      * <p>A list of Listeners used by the LoadBalancer.</p>
143      */
SetListeners(Aws::Vector<Listener> && value)144     inline void SetListeners(Aws::Vector<Listener>&& value) { m_listenersHasBeenSet = true; m_listeners = std::move(value); }
145 
146     /**
147      * <p>A list of Listeners used by the LoadBalancer.</p>
148      */
WithListeners(const Aws::Vector<Listener> & value)149     inline LoadBalancerDescription& WithListeners(const Aws::Vector<Listener>& value) { SetListeners(value); return *this;}
150 
151     /**
152      * <p>A list of Listeners used by the LoadBalancer.</p>
153      */
WithListeners(Aws::Vector<Listener> && value)154     inline LoadBalancerDescription& WithListeners(Aws::Vector<Listener>&& value) { SetListeners(std::move(value)); return *this;}
155 
156     /**
157      * <p>A list of Listeners used by the LoadBalancer.</p>
158      */
AddListeners(const Listener & value)159     inline LoadBalancerDescription& AddListeners(const Listener& value) { m_listenersHasBeenSet = true; m_listeners.push_back(value); return *this; }
160 
161     /**
162      * <p>A list of Listeners used by the LoadBalancer.</p>
163      */
AddListeners(Listener && value)164     inline LoadBalancerDescription& AddListeners(Listener&& value) { m_listenersHasBeenSet = true; m_listeners.push_back(std::move(value)); return *this; }
165 
166   private:
167 
168     Aws::String m_loadBalancerName;
169     bool m_loadBalancerNameHasBeenSet;
170 
171     Aws::String m_domain;
172     bool m_domainHasBeenSet;
173 
174     Aws::Vector<Listener> m_listeners;
175     bool m_listenersHasBeenSet;
176   };
177 
178 } // namespace Model
179 } // namespace ElasticBeanstalk
180 } // namespace Aws
181