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/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/redshift/model/Tag.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Xml
20 {
21   class XmlNode;
22 } // namespace Xml
23 } // namespace Utils
24 namespace Redshift
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Describes event subscriptions.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EventSubscription">AWS
32    * API Reference</a></p>
33    */
34   class AWS_REDSHIFT_API EventSubscription
35   {
36   public:
37     EventSubscription();
38     EventSubscription(const Aws::Utils::Xml::XmlNode& xmlNode);
39     EventSubscription& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
40 
41     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
42     void OutputToStream(Aws::OStream& oStream, const char* location) const;
43 
44 
45     /**
46      * <p>The Amazon Web Services account associated with the Amazon Redshift event
47      * notification subscription.</p>
48      */
GetCustomerAwsId()49     inline const Aws::String& GetCustomerAwsId() const{ return m_customerAwsId; }
50 
51     /**
52      * <p>The Amazon Web Services account associated with the Amazon Redshift event
53      * notification subscription.</p>
54      */
CustomerAwsIdHasBeenSet()55     inline bool CustomerAwsIdHasBeenSet() const { return m_customerAwsIdHasBeenSet; }
56 
57     /**
58      * <p>The Amazon Web Services account associated with the Amazon Redshift event
59      * notification subscription.</p>
60      */
SetCustomerAwsId(const Aws::String & value)61     inline void SetCustomerAwsId(const Aws::String& value) { m_customerAwsIdHasBeenSet = true; m_customerAwsId = value; }
62 
63     /**
64      * <p>The Amazon Web Services account associated with the Amazon Redshift event
65      * notification subscription.</p>
66      */
SetCustomerAwsId(Aws::String && value)67     inline void SetCustomerAwsId(Aws::String&& value) { m_customerAwsIdHasBeenSet = true; m_customerAwsId = std::move(value); }
68 
69     /**
70      * <p>The Amazon Web Services account associated with the Amazon Redshift event
71      * notification subscription.</p>
72      */
SetCustomerAwsId(const char * value)73     inline void SetCustomerAwsId(const char* value) { m_customerAwsIdHasBeenSet = true; m_customerAwsId.assign(value); }
74 
75     /**
76      * <p>The Amazon Web Services account associated with the Amazon Redshift event
77      * notification subscription.</p>
78      */
WithCustomerAwsId(const Aws::String & value)79     inline EventSubscription& WithCustomerAwsId(const Aws::String& value) { SetCustomerAwsId(value); return *this;}
80 
81     /**
82      * <p>The Amazon Web Services account associated with the Amazon Redshift event
83      * notification subscription.</p>
84      */
WithCustomerAwsId(Aws::String && value)85     inline EventSubscription& WithCustomerAwsId(Aws::String&& value) { SetCustomerAwsId(std::move(value)); return *this;}
86 
87     /**
88      * <p>The Amazon Web Services account associated with the Amazon Redshift event
89      * notification subscription.</p>
90      */
WithCustomerAwsId(const char * value)91     inline EventSubscription& WithCustomerAwsId(const char* value) { SetCustomerAwsId(value); return *this;}
92 
93 
94     /**
95      * <p>The name of the Amazon Redshift event notification subscription.</p>
96      */
GetCustSubscriptionId()97     inline const Aws::String& GetCustSubscriptionId() const{ return m_custSubscriptionId; }
98 
99     /**
100      * <p>The name of the Amazon Redshift event notification subscription.</p>
101      */
CustSubscriptionIdHasBeenSet()102     inline bool CustSubscriptionIdHasBeenSet() const { return m_custSubscriptionIdHasBeenSet; }
103 
104     /**
105      * <p>The name of the Amazon Redshift event notification subscription.</p>
106      */
SetCustSubscriptionId(const Aws::String & value)107     inline void SetCustSubscriptionId(const Aws::String& value) { m_custSubscriptionIdHasBeenSet = true; m_custSubscriptionId = value; }
108 
109     /**
110      * <p>The name of the Amazon Redshift event notification subscription.</p>
111      */
SetCustSubscriptionId(Aws::String && value)112     inline void SetCustSubscriptionId(Aws::String&& value) { m_custSubscriptionIdHasBeenSet = true; m_custSubscriptionId = std::move(value); }
113 
114     /**
115      * <p>The name of the Amazon Redshift event notification subscription.</p>
116      */
SetCustSubscriptionId(const char * value)117     inline void SetCustSubscriptionId(const char* value) { m_custSubscriptionIdHasBeenSet = true; m_custSubscriptionId.assign(value); }
118 
119     /**
120      * <p>The name of the Amazon Redshift event notification subscription.</p>
121      */
WithCustSubscriptionId(const Aws::String & value)122     inline EventSubscription& WithCustSubscriptionId(const Aws::String& value) { SetCustSubscriptionId(value); return *this;}
123 
124     /**
125      * <p>The name of the Amazon Redshift event notification subscription.</p>
126      */
WithCustSubscriptionId(Aws::String && value)127     inline EventSubscription& WithCustSubscriptionId(Aws::String&& value) { SetCustSubscriptionId(std::move(value)); return *this;}
128 
129     /**
130      * <p>The name of the Amazon Redshift event notification subscription.</p>
131      */
WithCustSubscriptionId(const char * value)132     inline EventSubscription& WithCustSubscriptionId(const char* value) { SetCustSubscriptionId(value); return *this;}
133 
134 
135     /**
136      * <p>The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
137      * notification subscription.</p>
138      */
GetSnsTopicArn()139     inline const Aws::String& GetSnsTopicArn() const{ return m_snsTopicArn; }
140 
141     /**
142      * <p>The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
143      * notification subscription.</p>
144      */
SnsTopicArnHasBeenSet()145     inline bool SnsTopicArnHasBeenSet() const { return m_snsTopicArnHasBeenSet; }
146 
147     /**
148      * <p>The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
149      * notification subscription.</p>
150      */
SetSnsTopicArn(const Aws::String & value)151     inline void SetSnsTopicArn(const Aws::String& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = value; }
152 
153     /**
154      * <p>The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
155      * notification subscription.</p>
156      */
SetSnsTopicArn(Aws::String && value)157     inline void SetSnsTopicArn(Aws::String&& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = std::move(value); }
158 
159     /**
160      * <p>The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
161      * notification subscription.</p>
162      */
SetSnsTopicArn(const char * value)163     inline void SetSnsTopicArn(const char* value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn.assign(value); }
164 
165     /**
166      * <p>The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
167      * notification subscription.</p>
168      */
WithSnsTopicArn(const Aws::String & value)169     inline EventSubscription& WithSnsTopicArn(const Aws::String& value) { SetSnsTopicArn(value); return *this;}
170 
171     /**
172      * <p>The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
173      * notification subscription.</p>
174      */
WithSnsTopicArn(Aws::String && value)175     inline EventSubscription& WithSnsTopicArn(Aws::String&& value) { SetSnsTopicArn(std::move(value)); return *this;}
176 
177     /**
178      * <p>The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event
179      * notification subscription.</p>
180      */
WithSnsTopicArn(const char * value)181     inline EventSubscription& WithSnsTopicArn(const char* value) { SetSnsTopicArn(value); return *this;}
182 
183 
184     /**
185      * <p>The status of the Amazon Redshift event notification subscription.</p>
186      * <p>Constraints:</p> <ul> <li> <p>Can be one of the following: active |
187      * no-permission | topic-not-exist</p> </li> <li> <p>The status "no-permission"
188      * indicates that Amazon Redshift no longer has permission to post to the Amazon
189      * SNS topic. The status "topic-not-exist" indicates that the topic was deleted
190      * after the subscription was created.</p> </li> </ul>
191      */
GetStatus()192     inline const Aws::String& GetStatus() const{ return m_status; }
193 
194     /**
195      * <p>The status of the Amazon Redshift event notification subscription.</p>
196      * <p>Constraints:</p> <ul> <li> <p>Can be one of the following: active |
197      * no-permission | topic-not-exist</p> </li> <li> <p>The status "no-permission"
198      * indicates that Amazon Redshift no longer has permission to post to the Amazon
199      * SNS topic. The status "topic-not-exist" indicates that the topic was deleted
200      * after the subscription was created.</p> </li> </ul>
201      */
StatusHasBeenSet()202     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
203 
204     /**
205      * <p>The status of the Amazon Redshift event notification subscription.</p>
206      * <p>Constraints:</p> <ul> <li> <p>Can be one of the following: active |
207      * no-permission | topic-not-exist</p> </li> <li> <p>The status "no-permission"
208      * indicates that Amazon Redshift no longer has permission to post to the Amazon
209      * SNS topic. The status "topic-not-exist" indicates that the topic was deleted
210      * after the subscription was created.</p> </li> </ul>
211      */
SetStatus(const Aws::String & value)212     inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; }
213 
214     /**
215      * <p>The status of the Amazon Redshift event notification subscription.</p>
216      * <p>Constraints:</p> <ul> <li> <p>Can be one of the following: active |
217      * no-permission | topic-not-exist</p> </li> <li> <p>The status "no-permission"
218      * indicates that Amazon Redshift no longer has permission to post to the Amazon
219      * SNS topic. The status "topic-not-exist" indicates that the topic was deleted
220      * after the subscription was created.</p> </li> </ul>
221      */
SetStatus(Aws::String && value)222     inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
223 
224     /**
225      * <p>The status of the Amazon Redshift event notification subscription.</p>
226      * <p>Constraints:</p> <ul> <li> <p>Can be one of the following: active |
227      * no-permission | topic-not-exist</p> </li> <li> <p>The status "no-permission"
228      * indicates that Amazon Redshift no longer has permission to post to the Amazon
229      * SNS topic. The status "topic-not-exist" indicates that the topic was deleted
230      * after the subscription was created.</p> </li> </ul>
231      */
SetStatus(const char * value)232     inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); }
233 
234     /**
235      * <p>The status of the Amazon Redshift event notification subscription.</p>
236      * <p>Constraints:</p> <ul> <li> <p>Can be one of the following: active |
237      * no-permission | topic-not-exist</p> </li> <li> <p>The status "no-permission"
238      * indicates that Amazon Redshift no longer has permission to post to the Amazon
239      * SNS topic. The status "topic-not-exist" indicates that the topic was deleted
240      * after the subscription was created.</p> </li> </ul>
241      */
WithStatus(const Aws::String & value)242     inline EventSubscription& WithStatus(const Aws::String& value) { SetStatus(value); return *this;}
243 
244     /**
245      * <p>The status of the Amazon Redshift event notification subscription.</p>
246      * <p>Constraints:</p> <ul> <li> <p>Can be one of the following: active |
247      * no-permission | topic-not-exist</p> </li> <li> <p>The status "no-permission"
248      * indicates that Amazon Redshift no longer has permission to post to the Amazon
249      * SNS topic. The status "topic-not-exist" indicates that the topic was deleted
250      * after the subscription was created.</p> </li> </ul>
251      */
WithStatus(Aws::String && value)252     inline EventSubscription& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;}
253 
254     /**
255      * <p>The status of the Amazon Redshift event notification subscription.</p>
256      * <p>Constraints:</p> <ul> <li> <p>Can be one of the following: active |
257      * no-permission | topic-not-exist</p> </li> <li> <p>The status "no-permission"
258      * indicates that Amazon Redshift no longer has permission to post to the Amazon
259      * SNS topic. The status "topic-not-exist" indicates that the topic was deleted
260      * after the subscription was created.</p> </li> </ul>
261      */
WithStatus(const char * value)262     inline EventSubscription& WithStatus(const char* value) { SetStatus(value); return *this;}
263 
264 
265     /**
266      * <p>The date and time the Amazon Redshift event notification subscription was
267      * created.</p>
268      */
GetSubscriptionCreationTime()269     inline const Aws::Utils::DateTime& GetSubscriptionCreationTime() const{ return m_subscriptionCreationTime; }
270 
271     /**
272      * <p>The date and time the Amazon Redshift event notification subscription was
273      * created.</p>
274      */
SubscriptionCreationTimeHasBeenSet()275     inline bool SubscriptionCreationTimeHasBeenSet() const { return m_subscriptionCreationTimeHasBeenSet; }
276 
277     /**
278      * <p>The date and time the Amazon Redshift event notification subscription was
279      * created.</p>
280      */
SetSubscriptionCreationTime(const Aws::Utils::DateTime & value)281     inline void SetSubscriptionCreationTime(const Aws::Utils::DateTime& value) { m_subscriptionCreationTimeHasBeenSet = true; m_subscriptionCreationTime = value; }
282 
283     /**
284      * <p>The date and time the Amazon Redshift event notification subscription was
285      * created.</p>
286      */
SetSubscriptionCreationTime(Aws::Utils::DateTime && value)287     inline void SetSubscriptionCreationTime(Aws::Utils::DateTime&& value) { m_subscriptionCreationTimeHasBeenSet = true; m_subscriptionCreationTime = std::move(value); }
288 
289     /**
290      * <p>The date and time the Amazon Redshift event notification subscription was
291      * created.</p>
292      */
WithSubscriptionCreationTime(const Aws::Utils::DateTime & value)293     inline EventSubscription& WithSubscriptionCreationTime(const Aws::Utils::DateTime& value) { SetSubscriptionCreationTime(value); return *this;}
294 
295     /**
296      * <p>The date and time the Amazon Redshift event notification subscription was
297      * created.</p>
298      */
WithSubscriptionCreationTime(Aws::Utils::DateTime && value)299     inline EventSubscription& WithSubscriptionCreationTime(Aws::Utils::DateTime&& value) { SetSubscriptionCreationTime(std::move(value)); return *this;}
300 
301 
302     /**
303      * <p>The source type of the events returned by the Amazon Redshift event
304      * notification, such as cluster, cluster-snapshot, cluster-parameter-group,
305      * cluster-security-group, or scheduled-action. </p>
306      */
GetSourceType()307     inline const Aws::String& GetSourceType() const{ return m_sourceType; }
308 
309     /**
310      * <p>The source type of the events returned by the Amazon Redshift event
311      * notification, such as cluster, cluster-snapshot, cluster-parameter-group,
312      * cluster-security-group, or scheduled-action. </p>
313      */
SourceTypeHasBeenSet()314     inline bool SourceTypeHasBeenSet() const { return m_sourceTypeHasBeenSet; }
315 
316     /**
317      * <p>The source type of the events returned by the Amazon Redshift event
318      * notification, such as cluster, cluster-snapshot, cluster-parameter-group,
319      * cluster-security-group, or scheduled-action. </p>
320      */
SetSourceType(const Aws::String & value)321     inline void SetSourceType(const Aws::String& value) { m_sourceTypeHasBeenSet = true; m_sourceType = value; }
322 
323     /**
324      * <p>The source type of the events returned by the Amazon Redshift event
325      * notification, such as cluster, cluster-snapshot, cluster-parameter-group,
326      * cluster-security-group, or scheduled-action. </p>
327      */
SetSourceType(Aws::String && value)328     inline void SetSourceType(Aws::String&& value) { m_sourceTypeHasBeenSet = true; m_sourceType = std::move(value); }
329 
330     /**
331      * <p>The source type of the events returned by the Amazon Redshift event
332      * notification, such as cluster, cluster-snapshot, cluster-parameter-group,
333      * cluster-security-group, or scheduled-action. </p>
334      */
SetSourceType(const char * value)335     inline void SetSourceType(const char* value) { m_sourceTypeHasBeenSet = true; m_sourceType.assign(value); }
336 
337     /**
338      * <p>The source type of the events returned by the Amazon Redshift event
339      * notification, such as cluster, cluster-snapshot, cluster-parameter-group,
340      * cluster-security-group, or scheduled-action. </p>
341      */
WithSourceType(const Aws::String & value)342     inline EventSubscription& WithSourceType(const Aws::String& value) { SetSourceType(value); return *this;}
343 
344     /**
345      * <p>The source type of the events returned by the Amazon Redshift event
346      * notification, such as cluster, cluster-snapshot, cluster-parameter-group,
347      * cluster-security-group, or scheduled-action. </p>
348      */
WithSourceType(Aws::String && value)349     inline EventSubscription& WithSourceType(Aws::String&& value) { SetSourceType(std::move(value)); return *this;}
350 
351     /**
352      * <p>The source type of the events returned by the Amazon Redshift event
353      * notification, such as cluster, cluster-snapshot, cluster-parameter-group,
354      * cluster-security-group, or scheduled-action. </p>
355      */
WithSourceType(const char * value)356     inline EventSubscription& WithSourceType(const char* value) { SetSourceType(value); return *this;}
357 
358 
359     /**
360      * <p>A list of the sources that publish events to the Amazon Redshift event
361      * notification subscription.</p>
362      */
GetSourceIdsList()363     inline const Aws::Vector<Aws::String>& GetSourceIdsList() const{ return m_sourceIdsList; }
364 
365     /**
366      * <p>A list of the sources that publish events to the Amazon Redshift event
367      * notification subscription.</p>
368      */
SourceIdsListHasBeenSet()369     inline bool SourceIdsListHasBeenSet() const { return m_sourceIdsListHasBeenSet; }
370 
371     /**
372      * <p>A list of the sources that publish events to the Amazon Redshift event
373      * notification subscription.</p>
374      */
SetSourceIdsList(const Aws::Vector<Aws::String> & value)375     inline void SetSourceIdsList(const Aws::Vector<Aws::String>& value) { m_sourceIdsListHasBeenSet = true; m_sourceIdsList = value; }
376 
377     /**
378      * <p>A list of the sources that publish events to the Amazon Redshift event
379      * notification subscription.</p>
380      */
SetSourceIdsList(Aws::Vector<Aws::String> && value)381     inline void SetSourceIdsList(Aws::Vector<Aws::String>&& value) { m_sourceIdsListHasBeenSet = true; m_sourceIdsList = std::move(value); }
382 
383     /**
384      * <p>A list of the sources that publish events to the Amazon Redshift event
385      * notification subscription.</p>
386      */
WithSourceIdsList(const Aws::Vector<Aws::String> & value)387     inline EventSubscription& WithSourceIdsList(const Aws::Vector<Aws::String>& value) { SetSourceIdsList(value); return *this;}
388 
389     /**
390      * <p>A list of the sources that publish events to the Amazon Redshift event
391      * notification subscription.</p>
392      */
WithSourceIdsList(Aws::Vector<Aws::String> && value)393     inline EventSubscription& WithSourceIdsList(Aws::Vector<Aws::String>&& value) { SetSourceIdsList(std::move(value)); return *this;}
394 
395     /**
396      * <p>A list of the sources that publish events to the Amazon Redshift event
397      * notification subscription.</p>
398      */
AddSourceIdsList(const Aws::String & value)399     inline EventSubscription& AddSourceIdsList(const Aws::String& value) { m_sourceIdsListHasBeenSet = true; m_sourceIdsList.push_back(value); return *this; }
400 
401     /**
402      * <p>A list of the sources that publish events to the Amazon Redshift event
403      * notification subscription.</p>
404      */
AddSourceIdsList(Aws::String && value)405     inline EventSubscription& AddSourceIdsList(Aws::String&& value) { m_sourceIdsListHasBeenSet = true; m_sourceIdsList.push_back(std::move(value)); return *this; }
406 
407     /**
408      * <p>A list of the sources that publish events to the Amazon Redshift event
409      * notification subscription.</p>
410      */
AddSourceIdsList(const char * value)411     inline EventSubscription& AddSourceIdsList(const char* value) { m_sourceIdsListHasBeenSet = true; m_sourceIdsList.push_back(value); return *this; }
412 
413 
414     /**
415      * <p>The list of Amazon Redshift event categories specified in the event
416      * notification subscription.</p> <p>Values: Configuration, Management, Monitoring,
417      * Security, Pending</p>
418      */
GetEventCategoriesList()419     inline const Aws::Vector<Aws::String>& GetEventCategoriesList() const{ return m_eventCategoriesList; }
420 
421     /**
422      * <p>The list of Amazon Redshift event categories specified in the event
423      * notification subscription.</p> <p>Values: Configuration, Management, Monitoring,
424      * Security, Pending</p>
425      */
EventCategoriesListHasBeenSet()426     inline bool EventCategoriesListHasBeenSet() const { return m_eventCategoriesListHasBeenSet; }
427 
428     /**
429      * <p>The list of Amazon Redshift event categories specified in the event
430      * notification subscription.</p> <p>Values: Configuration, Management, Monitoring,
431      * Security, Pending</p>
432      */
SetEventCategoriesList(const Aws::Vector<Aws::String> & value)433     inline void SetEventCategoriesList(const Aws::Vector<Aws::String>& value) { m_eventCategoriesListHasBeenSet = true; m_eventCategoriesList = value; }
434 
435     /**
436      * <p>The list of Amazon Redshift event categories specified in the event
437      * notification subscription.</p> <p>Values: Configuration, Management, Monitoring,
438      * Security, Pending</p>
439      */
SetEventCategoriesList(Aws::Vector<Aws::String> && value)440     inline void SetEventCategoriesList(Aws::Vector<Aws::String>&& value) { m_eventCategoriesListHasBeenSet = true; m_eventCategoriesList = std::move(value); }
441 
442     /**
443      * <p>The list of Amazon Redshift event categories specified in the event
444      * notification subscription.</p> <p>Values: Configuration, Management, Monitoring,
445      * Security, Pending</p>
446      */
WithEventCategoriesList(const Aws::Vector<Aws::String> & value)447     inline EventSubscription& WithEventCategoriesList(const Aws::Vector<Aws::String>& value) { SetEventCategoriesList(value); return *this;}
448 
449     /**
450      * <p>The list of Amazon Redshift event categories specified in the event
451      * notification subscription.</p> <p>Values: Configuration, Management, Monitoring,
452      * Security, Pending</p>
453      */
WithEventCategoriesList(Aws::Vector<Aws::String> && value)454     inline EventSubscription& WithEventCategoriesList(Aws::Vector<Aws::String>&& value) { SetEventCategoriesList(std::move(value)); return *this;}
455 
456     /**
457      * <p>The list of Amazon Redshift event categories specified in the event
458      * notification subscription.</p> <p>Values: Configuration, Management, Monitoring,
459      * Security, Pending</p>
460      */
AddEventCategoriesList(const Aws::String & value)461     inline EventSubscription& AddEventCategoriesList(const Aws::String& value) { m_eventCategoriesListHasBeenSet = true; m_eventCategoriesList.push_back(value); return *this; }
462 
463     /**
464      * <p>The list of Amazon Redshift event categories specified in the event
465      * notification subscription.</p> <p>Values: Configuration, Management, Monitoring,
466      * Security, Pending</p>
467      */
AddEventCategoriesList(Aws::String && value)468     inline EventSubscription& AddEventCategoriesList(Aws::String&& value) { m_eventCategoriesListHasBeenSet = true; m_eventCategoriesList.push_back(std::move(value)); return *this; }
469 
470     /**
471      * <p>The list of Amazon Redshift event categories specified in the event
472      * notification subscription.</p> <p>Values: Configuration, Management, Monitoring,
473      * Security, Pending</p>
474      */
AddEventCategoriesList(const char * value)475     inline EventSubscription& AddEventCategoriesList(const char* value) { m_eventCategoriesListHasBeenSet = true; m_eventCategoriesList.push_back(value); return *this; }
476 
477 
478     /**
479      * <p>The event severity specified in the Amazon Redshift event notification
480      * subscription.</p> <p>Values: ERROR, INFO</p>
481      */
GetSeverity()482     inline const Aws::String& GetSeverity() const{ return m_severity; }
483 
484     /**
485      * <p>The event severity specified in the Amazon Redshift event notification
486      * subscription.</p> <p>Values: ERROR, INFO</p>
487      */
SeverityHasBeenSet()488     inline bool SeverityHasBeenSet() const { return m_severityHasBeenSet; }
489 
490     /**
491      * <p>The event severity specified in the Amazon Redshift event notification
492      * subscription.</p> <p>Values: ERROR, INFO</p>
493      */
SetSeverity(const Aws::String & value)494     inline void SetSeverity(const Aws::String& value) { m_severityHasBeenSet = true; m_severity = value; }
495 
496     /**
497      * <p>The event severity specified in the Amazon Redshift event notification
498      * subscription.</p> <p>Values: ERROR, INFO</p>
499      */
SetSeverity(Aws::String && value)500     inline void SetSeverity(Aws::String&& value) { m_severityHasBeenSet = true; m_severity = std::move(value); }
501 
502     /**
503      * <p>The event severity specified in the Amazon Redshift event notification
504      * subscription.</p> <p>Values: ERROR, INFO</p>
505      */
SetSeverity(const char * value)506     inline void SetSeverity(const char* value) { m_severityHasBeenSet = true; m_severity.assign(value); }
507 
508     /**
509      * <p>The event severity specified in the Amazon Redshift event notification
510      * subscription.</p> <p>Values: ERROR, INFO</p>
511      */
WithSeverity(const Aws::String & value)512     inline EventSubscription& WithSeverity(const Aws::String& value) { SetSeverity(value); return *this;}
513 
514     /**
515      * <p>The event severity specified in the Amazon Redshift event notification
516      * subscription.</p> <p>Values: ERROR, INFO</p>
517      */
WithSeverity(Aws::String && value)518     inline EventSubscription& WithSeverity(Aws::String&& value) { SetSeverity(std::move(value)); return *this;}
519 
520     /**
521      * <p>The event severity specified in the Amazon Redshift event notification
522      * subscription.</p> <p>Values: ERROR, INFO</p>
523      */
WithSeverity(const char * value)524     inline EventSubscription& WithSeverity(const char* value) { SetSeverity(value); return *this;}
525 
526 
527     /**
528      * <p>A boolean value indicating whether the subscription is enabled;
529      * <code>true</code> indicates that the subscription is enabled.</p>
530      */
GetEnabled()531     inline bool GetEnabled() const{ return m_enabled; }
532 
533     /**
534      * <p>A boolean value indicating whether the subscription is enabled;
535      * <code>true</code> indicates that the subscription is enabled.</p>
536      */
EnabledHasBeenSet()537     inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; }
538 
539     /**
540      * <p>A boolean value indicating whether the subscription is enabled;
541      * <code>true</code> indicates that the subscription is enabled.</p>
542      */
SetEnabled(bool value)543     inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; }
544 
545     /**
546      * <p>A boolean value indicating whether the subscription is enabled;
547      * <code>true</code> indicates that the subscription is enabled.</p>
548      */
WithEnabled(bool value)549     inline EventSubscription& WithEnabled(bool value) { SetEnabled(value); return *this;}
550 
551 
552     /**
553      * <p>The list of tags for the event subscription.</p>
554      */
GetTags()555     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
556 
557     /**
558      * <p>The list of tags for the event subscription.</p>
559      */
TagsHasBeenSet()560     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
561 
562     /**
563      * <p>The list of tags for the event subscription.</p>
564      */
SetTags(const Aws::Vector<Tag> & value)565     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
566 
567     /**
568      * <p>The list of tags for the event subscription.</p>
569      */
SetTags(Aws::Vector<Tag> && value)570     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
571 
572     /**
573      * <p>The list of tags for the event subscription.</p>
574      */
WithTags(const Aws::Vector<Tag> & value)575     inline EventSubscription& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
576 
577     /**
578      * <p>The list of tags for the event subscription.</p>
579      */
WithTags(Aws::Vector<Tag> && value)580     inline EventSubscription& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
581 
582     /**
583      * <p>The list of tags for the event subscription.</p>
584      */
AddTags(const Tag & value)585     inline EventSubscription& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
586 
587     /**
588      * <p>The list of tags for the event subscription.</p>
589      */
AddTags(Tag && value)590     inline EventSubscription& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
591 
592   private:
593 
594     Aws::String m_customerAwsId;
595     bool m_customerAwsIdHasBeenSet;
596 
597     Aws::String m_custSubscriptionId;
598     bool m_custSubscriptionIdHasBeenSet;
599 
600     Aws::String m_snsTopicArn;
601     bool m_snsTopicArnHasBeenSet;
602 
603     Aws::String m_status;
604     bool m_statusHasBeenSet;
605 
606     Aws::Utils::DateTime m_subscriptionCreationTime;
607     bool m_subscriptionCreationTimeHasBeenSet;
608 
609     Aws::String m_sourceType;
610     bool m_sourceTypeHasBeenSet;
611 
612     Aws::Vector<Aws::String> m_sourceIdsList;
613     bool m_sourceIdsListHasBeenSet;
614 
615     Aws::Vector<Aws::String> m_eventCategoriesList;
616     bool m_eventCategoriesListHasBeenSet;
617 
618     Aws::String m_severity;
619     bool m_severityHasBeenSet;
620 
621     bool m_enabled;
622     bool m_enabledHasBeenSet;
623 
624     Aws::Vector<Tag> m_tags;
625     bool m_tagsHasBeenSet;
626   };
627 
628 } // namespace Model
629 } // namespace Redshift
630 } // namespace Aws
631