/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Budgets { namespace Model { /** *

A notification that is associated with a budget. A budget can have up to five * notifications.

Each notification must have at least one subscriber. A * notification can have one SNS subscriber and up to 10 email subscribers, for a * total of 11 subscribers.

For example, if you have a budget for 200 * dollars and you want to be notified when you go over 160 dollars, create a * notification with the following parameters:

  • A notificationType * of ACTUAL

  • A thresholdType of * PERCENTAGE

  • A comparisonOperator of * GREATER_THAN

  • A notification * threshold of 80

See Also:

* AWS * API Reference

*/ class AWS_BUDGETS_API Notification { public: Notification(); Notification(Aws::Utils::Json::JsonView jsonValue); Notification& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

Whether the notification is for how much you have spent (ACTUAL) * or for how much you're forecasted to spend (FORECASTED).

*/ inline const NotificationType& GetNotificationType() const{ return m_notificationType; } /** *

Whether the notification is for how much you have spent (ACTUAL) * or for how much you're forecasted to spend (FORECASTED).

*/ inline bool NotificationTypeHasBeenSet() const { return m_notificationTypeHasBeenSet; } /** *

Whether the notification is for how much you have spent (ACTUAL) * or for how much you're forecasted to spend (FORECASTED).

*/ inline void SetNotificationType(const NotificationType& value) { m_notificationTypeHasBeenSet = true; m_notificationType = value; } /** *

Whether the notification is for how much you have spent (ACTUAL) * or for how much you're forecasted to spend (FORECASTED).

*/ inline void SetNotificationType(NotificationType&& value) { m_notificationTypeHasBeenSet = true; m_notificationType = std::move(value); } /** *

Whether the notification is for how much you have spent (ACTUAL) * or for how much you're forecasted to spend (FORECASTED).

*/ inline Notification& WithNotificationType(const NotificationType& value) { SetNotificationType(value); return *this;} /** *

Whether the notification is for how much you have spent (ACTUAL) * or for how much you're forecasted to spend (FORECASTED).

*/ inline Notification& WithNotificationType(NotificationType&& value) { SetNotificationType(std::move(value)); return *this;} /** *

The comparison that is used for this notification.

*/ inline const ComparisonOperator& GetComparisonOperator() const{ return m_comparisonOperator; } /** *

The comparison that is used for this notification.

*/ inline bool ComparisonOperatorHasBeenSet() const { return m_comparisonOperatorHasBeenSet; } /** *

The comparison that is used for this notification.

*/ inline void SetComparisonOperator(const ComparisonOperator& value) { m_comparisonOperatorHasBeenSet = true; m_comparisonOperator = value; } /** *

The comparison that is used for this notification.

*/ inline void SetComparisonOperator(ComparisonOperator&& value) { m_comparisonOperatorHasBeenSet = true; m_comparisonOperator = std::move(value); } /** *

The comparison that is used for this notification.

*/ inline Notification& WithComparisonOperator(const ComparisonOperator& value) { SetComparisonOperator(value); return *this;} /** *

The comparison that is used for this notification.

*/ inline Notification& WithComparisonOperator(ComparisonOperator&& value) { SetComparisonOperator(std::move(value)); return *this;} /** *

The threshold that is associated with a notification. Thresholds are always a * percentage.

*/ inline double GetThreshold() const{ return m_threshold; } /** *

The threshold that is associated with a notification. Thresholds are always a * percentage.

*/ inline bool ThresholdHasBeenSet() const { return m_thresholdHasBeenSet; } /** *

The threshold that is associated with a notification. Thresholds are always a * percentage.

*/ inline void SetThreshold(double value) { m_thresholdHasBeenSet = true; m_threshold = value; } /** *

The threshold that is associated with a notification. Thresholds are always a * percentage.

*/ inline Notification& WithThreshold(double value) { SetThreshold(value); return *this;} /** *

The type of threshold for a notification. For ABSOLUTE_VALUE * thresholds, AWS notifies you when you go over or are forecasted to go over your * total cost threshold. For PERCENTAGE thresholds, AWS notifies you * when you go over or are forecasted to go over a certain percentage of your * forecasted spend. For example, if you have a budget for 200 dollars and you have * a PERCENTAGE threshold of 80%, AWS notifies you when you go over * 160 dollars.

*/ inline const ThresholdType& GetThresholdType() const{ return m_thresholdType; } /** *

The type of threshold for a notification. For ABSOLUTE_VALUE * thresholds, AWS notifies you when you go over or are forecasted to go over your * total cost threshold. For PERCENTAGE thresholds, AWS notifies you * when you go over or are forecasted to go over a certain percentage of your * forecasted spend. For example, if you have a budget for 200 dollars and you have * a PERCENTAGE threshold of 80%, AWS notifies you when you go over * 160 dollars.

*/ inline bool ThresholdTypeHasBeenSet() const { return m_thresholdTypeHasBeenSet; } /** *

The type of threshold for a notification. For ABSOLUTE_VALUE * thresholds, AWS notifies you when you go over or are forecasted to go over your * total cost threshold. For PERCENTAGE thresholds, AWS notifies you * when you go over or are forecasted to go over a certain percentage of your * forecasted spend. For example, if you have a budget for 200 dollars and you have * a PERCENTAGE threshold of 80%, AWS notifies you when you go over * 160 dollars.

*/ inline void SetThresholdType(const ThresholdType& value) { m_thresholdTypeHasBeenSet = true; m_thresholdType = value; } /** *

The type of threshold for a notification. For ABSOLUTE_VALUE * thresholds, AWS notifies you when you go over or are forecasted to go over your * total cost threshold. For PERCENTAGE thresholds, AWS notifies you * when you go over or are forecasted to go over a certain percentage of your * forecasted spend. For example, if you have a budget for 200 dollars and you have * a PERCENTAGE threshold of 80%, AWS notifies you when you go over * 160 dollars.

*/ inline void SetThresholdType(ThresholdType&& value) { m_thresholdTypeHasBeenSet = true; m_thresholdType = std::move(value); } /** *

The type of threshold for a notification. For ABSOLUTE_VALUE * thresholds, AWS notifies you when you go over or are forecasted to go over your * total cost threshold. For PERCENTAGE thresholds, AWS notifies you * when you go over or are forecasted to go over a certain percentage of your * forecasted spend. For example, if you have a budget for 200 dollars and you have * a PERCENTAGE threshold of 80%, AWS notifies you when you go over * 160 dollars.

*/ inline Notification& WithThresholdType(const ThresholdType& value) { SetThresholdType(value); return *this;} /** *

The type of threshold for a notification. For ABSOLUTE_VALUE * thresholds, AWS notifies you when you go over or are forecasted to go over your * total cost threshold. For PERCENTAGE thresholds, AWS notifies you * when you go over or are forecasted to go over a certain percentage of your * forecasted spend. For example, if you have a budget for 200 dollars and you have * a PERCENTAGE threshold of 80%, AWS notifies you when you go over * 160 dollars.

*/ inline Notification& WithThresholdType(ThresholdType&& value) { SetThresholdType(std::move(value)); return *this;} /** *

Whether this notification is in alarm. If a budget notification is in the * ALARM state, you have passed the set threshold for the budget.

*/ inline const NotificationState& GetNotificationState() const{ return m_notificationState; } /** *

Whether this notification is in alarm. If a budget notification is in the * ALARM state, you have passed the set threshold for the budget.

*/ inline bool NotificationStateHasBeenSet() const { return m_notificationStateHasBeenSet; } /** *

Whether this notification is in alarm. If a budget notification is in the * ALARM state, you have passed the set threshold for the budget.

*/ inline void SetNotificationState(const NotificationState& value) { m_notificationStateHasBeenSet = true; m_notificationState = value; } /** *

Whether this notification is in alarm. If a budget notification is in the * ALARM state, you have passed the set threshold for the budget.

*/ inline void SetNotificationState(NotificationState&& value) { m_notificationStateHasBeenSet = true; m_notificationState = std::move(value); } /** *

Whether this notification is in alarm. If a budget notification is in the * ALARM state, you have passed the set threshold for the budget.

*/ inline Notification& WithNotificationState(const NotificationState& value) { SetNotificationState(value); return *this;} /** *

Whether this notification is in alarm. If a budget notification is in the * ALARM state, you have passed the set threshold for the budget.

*/ inline Notification& WithNotificationState(NotificationState&& value) { SetNotificationState(std::move(value)); return *this;} private: NotificationType m_notificationType; bool m_notificationTypeHasBeenSet; ComparisonOperator m_comparisonOperator; bool m_comparisonOperatorHasBeenSet; double m_threshold; bool m_thresholdHasBeenSet; ThresholdType m_thresholdType; bool m_thresholdTypeHasBeenSet; NotificationState m_notificationState; bool m_notificationStateHasBeenSet; }; } // namespace Model } // namespace Budgets } // namespace Aws