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/dax/DAX_EXPORTS.h>
8 #include <aws/dax/DAXRequest.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 DAX
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_DAX_API IncreaseReplicationFactorRequest : public DAXRequest
23   {
24   public:
25     IncreaseReplicationFactorRequest();
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 "IncreaseReplicationFactor"; }
32 
33     Aws::String SerializePayload() const override;
34 
35     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
36 
37 
38     /**
39      * <p>The name of the DAX cluster that will receive additional nodes.</p>
40      */
GetClusterName()41     inline const Aws::String& GetClusterName() const{ return m_clusterName; }
42 
43     /**
44      * <p>The name of the DAX cluster that will receive additional nodes.</p>
45      */
ClusterNameHasBeenSet()46     inline bool ClusterNameHasBeenSet() const { return m_clusterNameHasBeenSet; }
47 
48     /**
49      * <p>The name of the DAX cluster that will receive additional nodes.</p>
50      */
SetClusterName(const Aws::String & value)51     inline void SetClusterName(const Aws::String& value) { m_clusterNameHasBeenSet = true; m_clusterName = value; }
52 
53     /**
54      * <p>The name of the DAX cluster that will receive additional nodes.</p>
55      */
SetClusterName(Aws::String && value)56     inline void SetClusterName(Aws::String&& value) { m_clusterNameHasBeenSet = true; m_clusterName = std::move(value); }
57 
58     /**
59      * <p>The name of the DAX cluster that will receive additional nodes.</p>
60      */
SetClusterName(const char * value)61     inline void SetClusterName(const char* value) { m_clusterNameHasBeenSet = true; m_clusterName.assign(value); }
62 
63     /**
64      * <p>The name of the DAX cluster that will receive additional nodes.</p>
65      */
WithClusterName(const Aws::String & value)66     inline IncreaseReplicationFactorRequest& WithClusterName(const Aws::String& value) { SetClusterName(value); return *this;}
67 
68     /**
69      * <p>The name of the DAX cluster that will receive additional nodes.</p>
70      */
WithClusterName(Aws::String && value)71     inline IncreaseReplicationFactorRequest& WithClusterName(Aws::String&& value) { SetClusterName(std::move(value)); return *this;}
72 
73     /**
74      * <p>The name of the DAX cluster that will receive additional nodes.</p>
75      */
WithClusterName(const char * value)76     inline IncreaseReplicationFactorRequest& WithClusterName(const char* value) { SetClusterName(value); return *this;}
77 
78 
79     /**
80      * <p>The new number of nodes for the DAX cluster.</p>
81      */
GetNewReplicationFactor()82     inline int GetNewReplicationFactor() const{ return m_newReplicationFactor; }
83 
84     /**
85      * <p>The new number of nodes for the DAX cluster.</p>
86      */
NewReplicationFactorHasBeenSet()87     inline bool NewReplicationFactorHasBeenSet() const { return m_newReplicationFactorHasBeenSet; }
88 
89     /**
90      * <p>The new number of nodes for the DAX cluster.</p>
91      */
SetNewReplicationFactor(int value)92     inline void SetNewReplicationFactor(int value) { m_newReplicationFactorHasBeenSet = true; m_newReplicationFactor = value; }
93 
94     /**
95      * <p>The new number of nodes for the DAX cluster.</p>
96      */
WithNewReplicationFactor(int value)97     inline IncreaseReplicationFactorRequest& WithNewReplicationFactor(int value) { SetNewReplicationFactor(value); return *this;}
98 
99 
100     /**
101      * <p>The Availability Zones (AZs) in which the cluster nodes will be created. All
102      * nodes belonging to the cluster are placed in these Availability Zones. Use this
103      * parameter if you want to distribute the nodes across multiple AZs.</p>
104      */
GetAvailabilityZones()105     inline const Aws::Vector<Aws::String>& GetAvailabilityZones() const{ return m_availabilityZones; }
106 
107     /**
108      * <p>The Availability Zones (AZs) in which the cluster nodes will be created. All
109      * nodes belonging to the cluster are placed in these Availability Zones. Use this
110      * parameter if you want to distribute the nodes across multiple AZs.</p>
111      */
AvailabilityZonesHasBeenSet()112     inline bool AvailabilityZonesHasBeenSet() const { return m_availabilityZonesHasBeenSet; }
113 
114     /**
115      * <p>The Availability Zones (AZs) in which the cluster nodes will be created. All
116      * nodes belonging to the cluster are placed in these Availability Zones. Use this
117      * parameter if you want to distribute the nodes across multiple AZs.</p>
118      */
SetAvailabilityZones(const Aws::Vector<Aws::String> & value)119     inline void SetAvailabilityZones(const Aws::Vector<Aws::String>& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = value; }
120 
121     /**
122      * <p>The Availability Zones (AZs) in which the cluster nodes will be created. All
123      * nodes belonging to the cluster are placed in these Availability Zones. Use this
124      * parameter if you want to distribute the nodes across multiple AZs.</p>
125      */
SetAvailabilityZones(Aws::Vector<Aws::String> && value)126     inline void SetAvailabilityZones(Aws::Vector<Aws::String>&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = std::move(value); }
127 
128     /**
129      * <p>The Availability Zones (AZs) in which the cluster nodes will be created. All
130      * nodes belonging to the cluster are placed in these Availability Zones. Use this
131      * parameter if you want to distribute the nodes across multiple AZs.</p>
132      */
WithAvailabilityZones(const Aws::Vector<Aws::String> & value)133     inline IncreaseReplicationFactorRequest& WithAvailabilityZones(const Aws::Vector<Aws::String>& value) { SetAvailabilityZones(value); return *this;}
134 
135     /**
136      * <p>The Availability Zones (AZs) in which the cluster nodes will be created. All
137      * nodes belonging to the cluster are placed in these Availability Zones. Use this
138      * parameter if you want to distribute the nodes across multiple AZs.</p>
139      */
WithAvailabilityZones(Aws::Vector<Aws::String> && value)140     inline IncreaseReplicationFactorRequest& WithAvailabilityZones(Aws::Vector<Aws::String>&& value) { SetAvailabilityZones(std::move(value)); return *this;}
141 
142     /**
143      * <p>The Availability Zones (AZs) in which the cluster nodes will be created. All
144      * nodes belonging to the cluster are placed in these Availability Zones. Use this
145      * parameter if you want to distribute the nodes across multiple AZs.</p>
146      */
AddAvailabilityZones(const Aws::String & value)147     inline IncreaseReplicationFactorRequest& AddAvailabilityZones(const Aws::String& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; }
148 
149     /**
150      * <p>The Availability Zones (AZs) in which the cluster nodes will be created. All
151      * nodes belonging to the cluster are placed in these Availability Zones. Use this
152      * parameter if you want to distribute the nodes across multiple AZs.</p>
153      */
AddAvailabilityZones(Aws::String && value)154     inline IncreaseReplicationFactorRequest& AddAvailabilityZones(Aws::String&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(std::move(value)); return *this; }
155 
156     /**
157      * <p>The Availability Zones (AZs) in which the cluster nodes will be created. All
158      * nodes belonging to the cluster are placed in these Availability Zones. Use this
159      * parameter if you want to distribute the nodes across multiple AZs.</p>
160      */
AddAvailabilityZones(const char * value)161     inline IncreaseReplicationFactorRequest& AddAvailabilityZones(const char* value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; }
162 
163   private:
164 
165     Aws::String m_clusterName;
166     bool m_clusterNameHasBeenSet;
167 
168     int m_newReplicationFactor;
169     bool m_newReplicationFactorHasBeenSet;
170 
171     Aws::Vector<Aws::String> m_availabilityZones;
172     bool m_availabilityZonesHasBeenSet;
173   };
174 
175 } // namespace Model
176 } // namespace DAX
177 } // namespace Aws
178