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/model/Notification.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/budgets/model/Subscriber.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace Budgets
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>A notification with subscribers. A notification can have one SNS subscriber
30    * and up to 10 email subscribers, for a total of 11 subscribers.</p><p><h3>See
31    * Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/budgets-2016-10-20/NotificationWithSubscribers">AWS
33    * API Reference</a></p>
34    */
35   class AWS_BUDGETS_API NotificationWithSubscribers
36   {
37   public:
38     NotificationWithSubscribers();
39     NotificationWithSubscribers(Aws::Utils::Json::JsonView jsonValue);
40     NotificationWithSubscribers& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>The notification that is associated with a budget.</p>
46      */
GetNotification()47     inline const Notification& GetNotification() const{ return m_notification; }
48 
49     /**
50      * <p>The notification that is associated with a budget.</p>
51      */
NotificationHasBeenSet()52     inline bool NotificationHasBeenSet() const { return m_notificationHasBeenSet; }
53 
54     /**
55      * <p>The notification that is associated with a budget.</p>
56      */
SetNotification(const Notification & value)57     inline void SetNotification(const Notification& value) { m_notificationHasBeenSet = true; m_notification = value; }
58 
59     /**
60      * <p>The notification that is associated with a budget.</p>
61      */
SetNotification(Notification && value)62     inline void SetNotification(Notification&& value) { m_notificationHasBeenSet = true; m_notification = std::move(value); }
63 
64     /**
65      * <p>The notification that is associated with a budget.</p>
66      */
WithNotification(const Notification & value)67     inline NotificationWithSubscribers& WithNotification(const Notification& value) { SetNotification(value); return *this;}
68 
69     /**
70      * <p>The notification that is associated with a budget.</p>
71      */
WithNotification(Notification && value)72     inline NotificationWithSubscribers& WithNotification(Notification&& value) { SetNotification(std::move(value)); return *this;}
73 
74 
75     /**
76      * <p>A list of subscribers who are subscribed to this notification.</p>
77      */
GetSubscribers()78     inline const Aws::Vector<Subscriber>& GetSubscribers() const{ return m_subscribers; }
79 
80     /**
81      * <p>A list of subscribers who are subscribed to this notification.</p>
82      */
SubscribersHasBeenSet()83     inline bool SubscribersHasBeenSet() const { return m_subscribersHasBeenSet; }
84 
85     /**
86      * <p>A list of subscribers who are subscribed to this notification.</p>
87      */
SetSubscribers(const Aws::Vector<Subscriber> & value)88     inline void SetSubscribers(const Aws::Vector<Subscriber>& value) { m_subscribersHasBeenSet = true; m_subscribers = value; }
89 
90     /**
91      * <p>A list of subscribers who are subscribed to this notification.</p>
92      */
SetSubscribers(Aws::Vector<Subscriber> && value)93     inline void SetSubscribers(Aws::Vector<Subscriber>&& value) { m_subscribersHasBeenSet = true; m_subscribers = std::move(value); }
94 
95     /**
96      * <p>A list of subscribers who are subscribed to this notification.</p>
97      */
WithSubscribers(const Aws::Vector<Subscriber> & value)98     inline NotificationWithSubscribers& WithSubscribers(const Aws::Vector<Subscriber>& value) { SetSubscribers(value); return *this;}
99 
100     /**
101      * <p>A list of subscribers who are subscribed to this notification.</p>
102      */
WithSubscribers(Aws::Vector<Subscriber> && value)103     inline NotificationWithSubscribers& WithSubscribers(Aws::Vector<Subscriber>&& value) { SetSubscribers(std::move(value)); return *this;}
104 
105     /**
106      * <p>A list of subscribers who are subscribed to this notification.</p>
107      */
AddSubscribers(const Subscriber & value)108     inline NotificationWithSubscribers& AddSubscribers(const Subscriber& value) { m_subscribersHasBeenSet = true; m_subscribers.push_back(value); return *this; }
109 
110     /**
111      * <p>A list of subscribers who are subscribed to this notification.</p>
112      */
AddSubscribers(Subscriber && value)113     inline NotificationWithSubscribers& AddSubscribers(Subscriber&& value) { m_subscribersHasBeenSet = true; m_subscribers.push_back(std::move(value)); return *this; }
114 
115   private:
116 
117     Notification m_notification;
118     bool m_notificationHasBeenSet;
119 
120     Aws::Vector<Subscriber> m_subscribers;
121     bool m_subscribersHasBeenSet;
122   };
123 
124 } // namespace Model
125 } // namespace Budgets
126 } // namespace Aws
127