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/redshift/Redshift_EXPORTS.h>
8 #include <aws/redshift/RedshiftRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/redshift/model/UsageLimitBreachAction.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Redshift
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_REDSHIFT_API ModifyUsageLimitRequest : public RedshiftRequest
23   {
24   public:
25     ModifyUsageLimitRequest();
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 "ModifyUsageLimit"; }
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 identifier of the usage limit to modify.</p>
42      */
GetUsageLimitId()43     inline const Aws::String& GetUsageLimitId() const{ return m_usageLimitId; }
44 
45     /**
46      * <p>The identifier of the usage limit to modify.</p>
47      */
UsageLimitIdHasBeenSet()48     inline bool UsageLimitIdHasBeenSet() const { return m_usageLimitIdHasBeenSet; }
49 
50     /**
51      * <p>The identifier of the usage limit to modify.</p>
52      */
SetUsageLimitId(const Aws::String & value)53     inline void SetUsageLimitId(const Aws::String& value) { m_usageLimitIdHasBeenSet = true; m_usageLimitId = value; }
54 
55     /**
56      * <p>The identifier of the usage limit to modify.</p>
57      */
SetUsageLimitId(Aws::String && value)58     inline void SetUsageLimitId(Aws::String&& value) { m_usageLimitIdHasBeenSet = true; m_usageLimitId = std::move(value); }
59 
60     /**
61      * <p>The identifier of the usage limit to modify.</p>
62      */
SetUsageLimitId(const char * value)63     inline void SetUsageLimitId(const char* value) { m_usageLimitIdHasBeenSet = true; m_usageLimitId.assign(value); }
64 
65     /**
66      * <p>The identifier of the usage limit to modify.</p>
67      */
WithUsageLimitId(const Aws::String & value)68     inline ModifyUsageLimitRequest& WithUsageLimitId(const Aws::String& value) { SetUsageLimitId(value); return *this;}
69 
70     /**
71      * <p>The identifier of the usage limit to modify.</p>
72      */
WithUsageLimitId(Aws::String && value)73     inline ModifyUsageLimitRequest& WithUsageLimitId(Aws::String&& value) { SetUsageLimitId(std::move(value)); return *this;}
74 
75     /**
76      * <p>The identifier of the usage limit to modify.</p>
77      */
WithUsageLimitId(const char * value)78     inline ModifyUsageLimitRequest& WithUsageLimitId(const char* value) { SetUsageLimitId(value); return *this;}
79 
80 
81     /**
82      * <p>The new limit amount. For more information about this parameter, see
83      * <a>UsageLimit</a>. </p>
84      */
GetAmount()85     inline long long GetAmount() const{ return m_amount; }
86 
87     /**
88      * <p>The new limit amount. For more information about this parameter, see
89      * <a>UsageLimit</a>. </p>
90      */
AmountHasBeenSet()91     inline bool AmountHasBeenSet() const { return m_amountHasBeenSet; }
92 
93     /**
94      * <p>The new limit amount. For more information about this parameter, see
95      * <a>UsageLimit</a>. </p>
96      */
SetAmount(long long value)97     inline void SetAmount(long long value) { m_amountHasBeenSet = true; m_amount = value; }
98 
99     /**
100      * <p>The new limit amount. For more information about this parameter, see
101      * <a>UsageLimit</a>. </p>
102      */
WithAmount(long long value)103     inline ModifyUsageLimitRequest& WithAmount(long long value) { SetAmount(value); return *this;}
104 
105 
106     /**
107      * <p>The new action that Amazon Redshift takes when the limit is reached. For more
108      * information about this parameter, see <a>UsageLimit</a>. </p>
109      */
GetBreachAction()110     inline const UsageLimitBreachAction& GetBreachAction() const{ return m_breachAction; }
111 
112     /**
113      * <p>The new action that Amazon Redshift takes when the limit is reached. For more
114      * information about this parameter, see <a>UsageLimit</a>. </p>
115      */
BreachActionHasBeenSet()116     inline bool BreachActionHasBeenSet() const { return m_breachActionHasBeenSet; }
117 
118     /**
119      * <p>The new action that Amazon Redshift takes when the limit is reached. For more
120      * information about this parameter, see <a>UsageLimit</a>. </p>
121      */
SetBreachAction(const UsageLimitBreachAction & value)122     inline void SetBreachAction(const UsageLimitBreachAction& value) { m_breachActionHasBeenSet = true; m_breachAction = value; }
123 
124     /**
125      * <p>The new action that Amazon Redshift takes when the limit is reached. For more
126      * information about this parameter, see <a>UsageLimit</a>. </p>
127      */
SetBreachAction(UsageLimitBreachAction && value)128     inline void SetBreachAction(UsageLimitBreachAction&& value) { m_breachActionHasBeenSet = true; m_breachAction = std::move(value); }
129 
130     /**
131      * <p>The new action that Amazon Redshift takes when the limit is reached. For more
132      * information about this parameter, see <a>UsageLimit</a>. </p>
133      */
WithBreachAction(const UsageLimitBreachAction & value)134     inline ModifyUsageLimitRequest& WithBreachAction(const UsageLimitBreachAction& value) { SetBreachAction(value); return *this;}
135 
136     /**
137      * <p>The new action that Amazon Redshift takes when the limit is reached. For more
138      * information about this parameter, see <a>UsageLimit</a>. </p>
139      */
WithBreachAction(UsageLimitBreachAction && value)140     inline ModifyUsageLimitRequest& WithBreachAction(UsageLimitBreachAction&& value) { SetBreachAction(std::move(value)); return *this;}
141 
142   private:
143 
144     Aws::String m_usageLimitId;
145     bool m_usageLimitIdHasBeenSet;
146 
147     long long m_amount;
148     bool m_amountHasBeenSet;
149 
150     UsageLimitBreachAction m_breachAction;
151     bool m_breachActionHasBeenSet;
152   };
153 
154 } // namespace Model
155 } // namespace Redshift
156 } // namespace Aws
157