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/dynamodb/DynamoDB_EXPORTS.h>
8 #include <aws/dynamodb/DynamoDBRequest.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/dynamodb/model/AutoScalingSettingsUpdate.h>
12 #include <aws/dynamodb/model/GlobalSecondaryIndexAutoScalingUpdate.h>
13 #include <aws/dynamodb/model/ReplicaAutoScalingUpdate.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace DynamoDB
19 {
20 namespace Model
21 {
22 
23   /**
24    */
25   class AWS_DYNAMODB_API UpdateTableReplicaAutoScalingRequest : public DynamoDBRequest
26   {
27   public:
28     UpdateTableReplicaAutoScalingRequest();
29 
30     // Service request name is the Operation name which will send this request out,
31     // each operation should has unique request name, so that we can get operation's name from this request.
32     // Note: this is not true for response, multiple operations may have the same response name,
33     // so we can not get operation's name from response.
GetServiceRequestName()34     inline virtual const char* GetServiceRequestName() const override { return "UpdateTableReplicaAutoScaling"; }
35 
36     Aws::String SerializePayload() const override;
37 
38     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
39 
40 
41     /**
42      * <p>Represents the auto scaling settings of the global secondary indexes of the
43      * replica to be updated.</p>
44      */
GetGlobalSecondaryIndexUpdates()45     inline const Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate>& GetGlobalSecondaryIndexUpdates() const{ return m_globalSecondaryIndexUpdates; }
46 
47     /**
48      * <p>Represents the auto scaling settings of the global secondary indexes of the
49      * replica to be updated.</p>
50      */
GlobalSecondaryIndexUpdatesHasBeenSet()51     inline bool GlobalSecondaryIndexUpdatesHasBeenSet() const { return m_globalSecondaryIndexUpdatesHasBeenSet; }
52 
53     /**
54      * <p>Represents the auto scaling settings of the global secondary indexes of the
55      * replica to be updated.</p>
56      */
SetGlobalSecondaryIndexUpdates(const Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate> & value)57     inline void SetGlobalSecondaryIndexUpdates(const Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate>& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates = value; }
58 
59     /**
60      * <p>Represents the auto scaling settings of the global secondary indexes of the
61      * replica to be updated.</p>
62      */
SetGlobalSecondaryIndexUpdates(Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate> && value)63     inline void SetGlobalSecondaryIndexUpdates(Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate>&& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates = std::move(value); }
64 
65     /**
66      * <p>Represents the auto scaling settings of the global secondary indexes of the
67      * replica to be updated.</p>
68      */
WithGlobalSecondaryIndexUpdates(const Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate> & value)69     inline UpdateTableReplicaAutoScalingRequest& WithGlobalSecondaryIndexUpdates(const Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate>& value) { SetGlobalSecondaryIndexUpdates(value); return *this;}
70 
71     /**
72      * <p>Represents the auto scaling settings of the global secondary indexes of the
73      * replica to be updated.</p>
74      */
WithGlobalSecondaryIndexUpdates(Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate> && value)75     inline UpdateTableReplicaAutoScalingRequest& WithGlobalSecondaryIndexUpdates(Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate>&& value) { SetGlobalSecondaryIndexUpdates(std::move(value)); return *this;}
76 
77     /**
78      * <p>Represents the auto scaling settings of the global secondary indexes of the
79      * replica to be updated.</p>
80      */
AddGlobalSecondaryIndexUpdates(const GlobalSecondaryIndexAutoScalingUpdate & value)81     inline UpdateTableReplicaAutoScalingRequest& AddGlobalSecondaryIndexUpdates(const GlobalSecondaryIndexAutoScalingUpdate& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates.push_back(value); return *this; }
82 
83     /**
84      * <p>Represents the auto scaling settings of the global secondary indexes of the
85      * replica to be updated.</p>
86      */
AddGlobalSecondaryIndexUpdates(GlobalSecondaryIndexAutoScalingUpdate && value)87     inline UpdateTableReplicaAutoScalingRequest& AddGlobalSecondaryIndexUpdates(GlobalSecondaryIndexAutoScalingUpdate&& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates.push_back(std::move(value)); return *this; }
88 
89 
90     /**
91      * <p>The name of the global table to be updated.</p>
92      */
GetTableName()93     inline const Aws::String& GetTableName() const{ return m_tableName; }
94 
95     /**
96      * <p>The name of the global table to be updated.</p>
97      */
TableNameHasBeenSet()98     inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; }
99 
100     /**
101      * <p>The name of the global table to be updated.</p>
102      */
SetTableName(const Aws::String & value)103     inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; }
104 
105     /**
106      * <p>The name of the global table to be updated.</p>
107      */
SetTableName(Aws::String && value)108     inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); }
109 
110     /**
111      * <p>The name of the global table to be updated.</p>
112      */
SetTableName(const char * value)113     inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); }
114 
115     /**
116      * <p>The name of the global table to be updated.</p>
117      */
WithTableName(const Aws::String & value)118     inline UpdateTableReplicaAutoScalingRequest& WithTableName(const Aws::String& value) { SetTableName(value); return *this;}
119 
120     /**
121      * <p>The name of the global table to be updated.</p>
122      */
WithTableName(Aws::String && value)123     inline UpdateTableReplicaAutoScalingRequest& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;}
124 
125     /**
126      * <p>The name of the global table to be updated.</p>
127      */
WithTableName(const char * value)128     inline UpdateTableReplicaAutoScalingRequest& WithTableName(const char* value) { SetTableName(value); return *this;}
129 
130 
131 
GetProvisionedWriteCapacityAutoScalingUpdate()132     inline const AutoScalingSettingsUpdate& GetProvisionedWriteCapacityAutoScalingUpdate() const{ return m_provisionedWriteCapacityAutoScalingUpdate; }
133 
134 
ProvisionedWriteCapacityAutoScalingUpdateHasBeenSet()135     inline bool ProvisionedWriteCapacityAutoScalingUpdateHasBeenSet() const { return m_provisionedWriteCapacityAutoScalingUpdateHasBeenSet; }
136 
137 
SetProvisionedWriteCapacityAutoScalingUpdate(const AutoScalingSettingsUpdate & value)138     inline void SetProvisionedWriteCapacityAutoScalingUpdate(const AutoScalingSettingsUpdate& value) { m_provisionedWriteCapacityAutoScalingUpdateHasBeenSet = true; m_provisionedWriteCapacityAutoScalingUpdate = value; }
139 
140 
SetProvisionedWriteCapacityAutoScalingUpdate(AutoScalingSettingsUpdate && value)141     inline void SetProvisionedWriteCapacityAutoScalingUpdate(AutoScalingSettingsUpdate&& value) { m_provisionedWriteCapacityAutoScalingUpdateHasBeenSet = true; m_provisionedWriteCapacityAutoScalingUpdate = std::move(value); }
142 
143 
WithProvisionedWriteCapacityAutoScalingUpdate(const AutoScalingSettingsUpdate & value)144     inline UpdateTableReplicaAutoScalingRequest& WithProvisionedWriteCapacityAutoScalingUpdate(const AutoScalingSettingsUpdate& value) { SetProvisionedWriteCapacityAutoScalingUpdate(value); return *this;}
145 
146 
WithProvisionedWriteCapacityAutoScalingUpdate(AutoScalingSettingsUpdate && value)147     inline UpdateTableReplicaAutoScalingRequest& WithProvisionedWriteCapacityAutoScalingUpdate(AutoScalingSettingsUpdate&& value) { SetProvisionedWriteCapacityAutoScalingUpdate(std::move(value)); return *this;}
148 
149 
150     /**
151      * <p>Represents the auto scaling settings of replicas of the table that will be
152      * modified.</p>
153      */
GetReplicaUpdates()154     inline const Aws::Vector<ReplicaAutoScalingUpdate>& GetReplicaUpdates() const{ return m_replicaUpdates; }
155 
156     /**
157      * <p>Represents the auto scaling settings of replicas of the table that will be
158      * modified.</p>
159      */
ReplicaUpdatesHasBeenSet()160     inline bool ReplicaUpdatesHasBeenSet() const { return m_replicaUpdatesHasBeenSet; }
161 
162     /**
163      * <p>Represents the auto scaling settings of replicas of the table that will be
164      * modified.</p>
165      */
SetReplicaUpdates(const Aws::Vector<ReplicaAutoScalingUpdate> & value)166     inline void SetReplicaUpdates(const Aws::Vector<ReplicaAutoScalingUpdate>& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates = value; }
167 
168     /**
169      * <p>Represents the auto scaling settings of replicas of the table that will be
170      * modified.</p>
171      */
SetReplicaUpdates(Aws::Vector<ReplicaAutoScalingUpdate> && value)172     inline void SetReplicaUpdates(Aws::Vector<ReplicaAutoScalingUpdate>&& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates = std::move(value); }
173 
174     /**
175      * <p>Represents the auto scaling settings of replicas of the table that will be
176      * modified.</p>
177      */
WithReplicaUpdates(const Aws::Vector<ReplicaAutoScalingUpdate> & value)178     inline UpdateTableReplicaAutoScalingRequest& WithReplicaUpdates(const Aws::Vector<ReplicaAutoScalingUpdate>& value) { SetReplicaUpdates(value); return *this;}
179 
180     /**
181      * <p>Represents the auto scaling settings of replicas of the table that will be
182      * modified.</p>
183      */
WithReplicaUpdates(Aws::Vector<ReplicaAutoScalingUpdate> && value)184     inline UpdateTableReplicaAutoScalingRequest& WithReplicaUpdates(Aws::Vector<ReplicaAutoScalingUpdate>&& value) { SetReplicaUpdates(std::move(value)); return *this;}
185 
186     /**
187      * <p>Represents the auto scaling settings of replicas of the table that will be
188      * modified.</p>
189      */
AddReplicaUpdates(const ReplicaAutoScalingUpdate & value)190     inline UpdateTableReplicaAutoScalingRequest& AddReplicaUpdates(const ReplicaAutoScalingUpdate& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates.push_back(value); return *this; }
191 
192     /**
193      * <p>Represents the auto scaling settings of replicas of the table that will be
194      * modified.</p>
195      */
AddReplicaUpdates(ReplicaAutoScalingUpdate && value)196     inline UpdateTableReplicaAutoScalingRequest& AddReplicaUpdates(ReplicaAutoScalingUpdate&& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates.push_back(std::move(value)); return *this; }
197 
198   private:
199 
200     Aws::Vector<GlobalSecondaryIndexAutoScalingUpdate> m_globalSecondaryIndexUpdates;
201     bool m_globalSecondaryIndexUpdatesHasBeenSet;
202 
203     Aws::String m_tableName;
204     bool m_tableNameHasBeenSet;
205 
206     AutoScalingSettingsUpdate m_provisionedWriteCapacityAutoScalingUpdate;
207     bool m_provisionedWriteCapacityAutoScalingUpdateHasBeenSet;
208 
209     Aws::Vector<ReplicaAutoScalingUpdate> m_replicaUpdates;
210     bool m_replicaUpdatesHasBeenSet;
211   };
212 
213 } // namespace Model
214 } // namespace DynamoDB
215 } // namespace Aws
216