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/autoscaling/AutoScaling_EXPORTS.h>
8 #include <aws/autoscaling/AutoScalingRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace AutoScaling
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_AUTOSCALING_API AttachLoadBalancersRequest : public AutoScalingRequest
23   {
24   public:
25     AttachLoadBalancersRequest();
26 
27     // Service request name is the Operation name which will send this request out,
28     // each operation should has unique request name, so that we can get operation's name from this request.
29     // Note: this is not true for response, multiple operations may have the same response name,
30     // so we can not get operation's name from response.
GetServiceRequestName()31     inline virtual const char* GetServiceRequestName() const override { return "AttachLoadBalancers"; }
32 
33     Aws::String SerializePayload() const override;
34 
35   protected:
36     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
37 
38   public:
39 
40     /**
41      * <p>The name of the Auto Scaling group.</p>
42      */
GetAutoScalingGroupName()43     inline const Aws::String& GetAutoScalingGroupName() const{ return m_autoScalingGroupName; }
44 
45     /**
46      * <p>The name of the Auto Scaling group.</p>
47      */
AutoScalingGroupNameHasBeenSet()48     inline bool AutoScalingGroupNameHasBeenSet() const { return m_autoScalingGroupNameHasBeenSet; }
49 
50     /**
51      * <p>The name of the Auto Scaling group.</p>
52      */
SetAutoScalingGroupName(const Aws::String & value)53     inline void SetAutoScalingGroupName(const Aws::String& value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName = value; }
54 
55     /**
56      * <p>The name of the Auto Scaling group.</p>
57      */
SetAutoScalingGroupName(Aws::String && value)58     inline void SetAutoScalingGroupName(Aws::String&& value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName = std::move(value); }
59 
60     /**
61      * <p>The name of the Auto Scaling group.</p>
62      */
SetAutoScalingGroupName(const char * value)63     inline void SetAutoScalingGroupName(const char* value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName.assign(value); }
64 
65     /**
66      * <p>The name of the Auto Scaling group.</p>
67      */
WithAutoScalingGroupName(const Aws::String & value)68     inline AttachLoadBalancersRequest& WithAutoScalingGroupName(const Aws::String& value) { SetAutoScalingGroupName(value); return *this;}
69 
70     /**
71      * <p>The name of the Auto Scaling group.</p>
72      */
WithAutoScalingGroupName(Aws::String && value)73     inline AttachLoadBalancersRequest& WithAutoScalingGroupName(Aws::String&& value) { SetAutoScalingGroupName(std::move(value)); return *this;}
74 
75     /**
76      * <p>The name of the Auto Scaling group.</p>
77      */
WithAutoScalingGroupName(const char * value)78     inline AttachLoadBalancersRequest& WithAutoScalingGroupName(const char* value) { SetAutoScalingGroupName(value); return *this;}
79 
80 
81     /**
82      * <p>The names of the load balancers. You can specify up to 10 load balancers.</p>
83      */
GetLoadBalancerNames()84     inline const Aws::Vector<Aws::String>& GetLoadBalancerNames() const{ return m_loadBalancerNames; }
85 
86     /**
87      * <p>The names of the load balancers. You can specify up to 10 load balancers.</p>
88      */
LoadBalancerNamesHasBeenSet()89     inline bool LoadBalancerNamesHasBeenSet() const { return m_loadBalancerNamesHasBeenSet; }
90 
91     /**
92      * <p>The names of the load balancers. You can specify up to 10 load balancers.</p>
93      */
SetLoadBalancerNames(const Aws::Vector<Aws::String> & value)94     inline void SetLoadBalancerNames(const Aws::Vector<Aws::String>& value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames = value; }
95 
96     /**
97      * <p>The names of the load balancers. You can specify up to 10 load balancers.</p>
98      */
SetLoadBalancerNames(Aws::Vector<Aws::String> && value)99     inline void SetLoadBalancerNames(Aws::Vector<Aws::String>&& value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames = std::move(value); }
100 
101     /**
102      * <p>The names of the load balancers. You can specify up to 10 load balancers.</p>
103      */
WithLoadBalancerNames(const Aws::Vector<Aws::String> & value)104     inline AttachLoadBalancersRequest& WithLoadBalancerNames(const Aws::Vector<Aws::String>& value) { SetLoadBalancerNames(value); return *this;}
105 
106     /**
107      * <p>The names of the load balancers. You can specify up to 10 load balancers.</p>
108      */
WithLoadBalancerNames(Aws::Vector<Aws::String> && value)109     inline AttachLoadBalancersRequest& WithLoadBalancerNames(Aws::Vector<Aws::String>&& value) { SetLoadBalancerNames(std::move(value)); return *this;}
110 
111     /**
112      * <p>The names of the load balancers. You can specify up to 10 load balancers.</p>
113      */
AddLoadBalancerNames(const Aws::String & value)114     inline AttachLoadBalancersRequest& AddLoadBalancerNames(const Aws::String& value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames.push_back(value); return *this; }
115 
116     /**
117      * <p>The names of the load balancers. You can specify up to 10 load balancers.</p>
118      */
AddLoadBalancerNames(Aws::String && value)119     inline AttachLoadBalancersRequest& AddLoadBalancerNames(Aws::String&& value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames.push_back(std::move(value)); return *this; }
120 
121     /**
122      * <p>The names of the load balancers. You can specify up to 10 load balancers.</p>
123      */
AddLoadBalancerNames(const char * value)124     inline AttachLoadBalancersRequest& AddLoadBalancerNames(const char* value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames.push_back(value); return *this; }
125 
126   private:
127 
128     Aws::String m_autoScalingGroupName;
129     bool m_autoScalingGroupNameHasBeenSet;
130 
131     Aws::Vector<Aws::String> m_loadBalancerNames;
132     bool m_loadBalancerNamesHasBeenSet;
133   };
134 
135 } // namespace Model
136 } // namespace AutoScaling
137 } // namespace Aws
138