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/budgets/Budgets_EXPORTS.h>
8 #include <aws/budgets/BudgetsRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/budgets/model/Notification.h>
11 #include <aws/budgets/model/Subscriber.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Budgets
17 {
18 namespace Model
19 {
20 
21   /**
22    * <p> Request of CreateSubscriber </p><p><h3>See Also:</h3>   <a
23    * href="http://docs.aws.amazon.com/goto/WebAPI/budgets-2016-10-20/CreateSubscriberRequest">AWS
24    * API Reference</a></p>
25    */
26   class AWS_BUDGETS_API CreateSubscriberRequest : public BudgetsRequest
27   {
28   public:
29     CreateSubscriberRequest();
30 
31     // Service request name is the Operation name which will send this request out,
32     // each operation should has unique request name, so that we can get operation's name from this request.
33     // Note: this is not true for response, multiple operations may have the same response name,
34     // so we can not get operation's name from response.
GetServiceRequestName()35     inline virtual const char* GetServiceRequestName() const override { return "CreateSubscriber"; }
36 
37     Aws::String SerializePayload() const override;
38 
39     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
40 
41 
42     /**
43      * <p>The <code>accountId</code> that is associated with the budget that you want
44      * to create a subscriber for.</p>
45      */
GetAccountId()46     inline const Aws::String& GetAccountId() const{ return m_accountId; }
47 
48     /**
49      * <p>The <code>accountId</code> that is associated with the budget that you want
50      * to create a subscriber for.</p>
51      */
AccountIdHasBeenSet()52     inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
53 
54     /**
55      * <p>The <code>accountId</code> that is associated with the budget that you want
56      * to create a subscriber for.</p>
57      */
SetAccountId(const Aws::String & value)58     inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; }
59 
60     /**
61      * <p>The <code>accountId</code> that is associated with the budget that you want
62      * to create a subscriber for.</p>
63      */
SetAccountId(Aws::String && value)64     inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); }
65 
66     /**
67      * <p>The <code>accountId</code> that is associated with the budget that you want
68      * to create a subscriber for.</p>
69      */
SetAccountId(const char * value)70     inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); }
71 
72     /**
73      * <p>The <code>accountId</code> that is associated with the budget that you want
74      * to create a subscriber for.</p>
75      */
WithAccountId(const Aws::String & value)76     inline CreateSubscriberRequest& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;}
77 
78     /**
79      * <p>The <code>accountId</code> that is associated with the budget that you want
80      * to create a subscriber for.</p>
81      */
WithAccountId(Aws::String && value)82     inline CreateSubscriberRequest& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;}
83 
84     /**
85      * <p>The <code>accountId</code> that is associated with the budget that you want
86      * to create a subscriber for.</p>
87      */
WithAccountId(const char * value)88     inline CreateSubscriberRequest& WithAccountId(const char* value) { SetAccountId(value); return *this;}
89 
90 
91     /**
92      * <p>The name of the budget that you want to subscribe to. Budget names must be
93      * unique within an account.</p>
94      */
GetBudgetName()95     inline const Aws::String& GetBudgetName() const{ return m_budgetName; }
96 
97     /**
98      * <p>The name of the budget that you want to subscribe to. Budget names must be
99      * unique within an account.</p>
100      */
BudgetNameHasBeenSet()101     inline bool BudgetNameHasBeenSet() const { return m_budgetNameHasBeenSet; }
102 
103     /**
104      * <p>The name of the budget that you want to subscribe to. Budget names must be
105      * unique within an account.</p>
106      */
SetBudgetName(const Aws::String & value)107     inline void SetBudgetName(const Aws::String& value) { m_budgetNameHasBeenSet = true; m_budgetName = value; }
108 
109     /**
110      * <p>The name of the budget that you want to subscribe to. Budget names must be
111      * unique within an account.</p>
112      */
SetBudgetName(Aws::String && value)113     inline void SetBudgetName(Aws::String&& value) { m_budgetNameHasBeenSet = true; m_budgetName = std::move(value); }
114 
115     /**
116      * <p>The name of the budget that you want to subscribe to. Budget names must be
117      * unique within an account.</p>
118      */
SetBudgetName(const char * value)119     inline void SetBudgetName(const char* value) { m_budgetNameHasBeenSet = true; m_budgetName.assign(value); }
120 
121     /**
122      * <p>The name of the budget that you want to subscribe to. Budget names must be
123      * unique within an account.</p>
124      */
WithBudgetName(const Aws::String & value)125     inline CreateSubscriberRequest& WithBudgetName(const Aws::String& value) { SetBudgetName(value); return *this;}
126 
127     /**
128      * <p>The name of the budget that you want to subscribe to. Budget names must be
129      * unique within an account.</p>
130      */
WithBudgetName(Aws::String && value)131     inline CreateSubscriberRequest& WithBudgetName(Aws::String&& value) { SetBudgetName(std::move(value)); return *this;}
132 
133     /**
134      * <p>The name of the budget that you want to subscribe to. Budget names must be
135      * unique within an account.</p>
136      */
WithBudgetName(const char * value)137     inline CreateSubscriberRequest& WithBudgetName(const char* value) { SetBudgetName(value); return *this;}
138 
139 
140     /**
141      * <p>The notification that you want to create a subscriber for.</p>
142      */
GetNotification()143     inline const Notification& GetNotification() const{ return m_notification; }
144 
145     /**
146      * <p>The notification that you want to create a subscriber for.</p>
147      */
NotificationHasBeenSet()148     inline bool NotificationHasBeenSet() const { return m_notificationHasBeenSet; }
149 
150     /**
151      * <p>The notification that you want to create a subscriber for.</p>
152      */
SetNotification(const Notification & value)153     inline void SetNotification(const Notification& value) { m_notificationHasBeenSet = true; m_notification = value; }
154 
155     /**
156      * <p>The notification that you want to create a subscriber for.</p>
157      */
SetNotification(Notification && value)158     inline void SetNotification(Notification&& value) { m_notificationHasBeenSet = true; m_notification = std::move(value); }
159 
160     /**
161      * <p>The notification that you want to create a subscriber for.</p>
162      */
WithNotification(const Notification & value)163     inline CreateSubscriberRequest& WithNotification(const Notification& value) { SetNotification(value); return *this;}
164 
165     /**
166      * <p>The notification that you want to create a subscriber for.</p>
167      */
WithNotification(Notification && value)168     inline CreateSubscriberRequest& WithNotification(Notification&& value) { SetNotification(std::move(value)); return *this;}
169 
170 
171     /**
172      * <p>The subscriber that you want to associate with a budget notification.</p>
173      */
GetSubscriber()174     inline const Subscriber& GetSubscriber() const{ return m_subscriber; }
175 
176     /**
177      * <p>The subscriber that you want to associate with a budget notification.</p>
178      */
SubscriberHasBeenSet()179     inline bool SubscriberHasBeenSet() const { return m_subscriberHasBeenSet; }
180 
181     /**
182      * <p>The subscriber that you want to associate with a budget notification.</p>
183      */
SetSubscriber(const Subscriber & value)184     inline void SetSubscriber(const Subscriber& value) { m_subscriberHasBeenSet = true; m_subscriber = value; }
185 
186     /**
187      * <p>The subscriber that you want to associate with a budget notification.</p>
188      */
SetSubscriber(Subscriber && value)189     inline void SetSubscriber(Subscriber&& value) { m_subscriberHasBeenSet = true; m_subscriber = std::move(value); }
190 
191     /**
192      * <p>The subscriber that you want to associate with a budget notification.</p>
193      */
WithSubscriber(const Subscriber & value)194     inline CreateSubscriberRequest& WithSubscriber(const Subscriber& value) { SetSubscriber(value); return *this;}
195 
196     /**
197      * <p>The subscriber that you want to associate with a budget notification.</p>
198      */
WithSubscriber(Subscriber && value)199     inline CreateSubscriberRequest& WithSubscriber(Subscriber&& value) { SetSubscriber(std::move(value)); return *this;}
200 
201   private:
202 
203     Aws::String m_accountId;
204     bool m_accountIdHasBeenSet;
205 
206     Aws::String m_budgetName;
207     bool m_budgetNameHasBeenSet;
208 
209     Notification m_notification;
210     bool m_notificationHasBeenSet;
211 
212     Subscriber m_subscriber;
213     bool m_subscriberHasBeenSet;
214   };
215 
216 } // namespace Model
217 } // namespace Budgets
218 } // namespace Aws
219