/** * 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's associated with a budget. A budget can have up to ten * 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 Notification { public: AWS_BUDGETS_API Notification(); AWS_BUDGETS_API Notification(Aws::Utils::Json::JsonView jsonValue); AWS_BUDGETS_API Notification& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_BUDGETS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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

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

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

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

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

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

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

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

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

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

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

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

The comparison that's used for this notification.

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

The comparison that's used for this notification.

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

The comparison that's used for this notification.

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

The comparison that's used for this notification.

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

The comparison that's used for this notification.

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

The comparison that's used for this notification.

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

The threshold that's associated with a notification. Thresholds are always a * percentage, and many customers find value being alerted between 50% - 200% of * the budgeted amount. The maximum limit for your threshold is 1,000,000% above * the budgeted amount.

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

The threshold that's associated with a notification. Thresholds are always a * percentage, and many customers find value being alerted between 50% - 200% of * the budgeted amount. The maximum limit for your threshold is 1,000,000% above * the budgeted amount.

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

The threshold that's associated with a notification. Thresholds are always a * percentage, and many customers find value being alerted between 50% - 200% of * the budgeted amount. The maximum limit for your threshold is 1,000,000% above * the budgeted amount.

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

The threshold that's associated with a notification. Thresholds are always a * percentage, and many customers find value being alerted between 50% - 200% of * the budgeted amount. The maximum limit for your threshold is 1,000,000% above * the budgeted amount.

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

The type of threshold for a notification. For ABSOLUTE_VALUE * thresholds, Amazon Web Services notifies you when you go over or are forecasted * to go over your total cost threshold. For PERCENTAGE thresholds, * Amazon Web Services 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%, Amazon * Web Services 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, Amazon Web Services notifies you when you go over or are forecasted * to go over your total cost threshold. For PERCENTAGE thresholds, * Amazon Web Services 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%, Amazon * Web Services 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, Amazon Web Services notifies you when you go over or are forecasted * to go over your total cost threshold. For PERCENTAGE thresholds, * Amazon Web Services 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%, Amazon * Web Services 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, Amazon Web Services notifies you when you go over or are forecasted * to go over your total cost threshold. For PERCENTAGE thresholds, * Amazon Web Services 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%, Amazon * Web Services 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, Amazon Web Services notifies you when you go over or are forecasted * to go over your total cost threshold. For PERCENTAGE thresholds, * Amazon Web Services 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%, Amazon * Web Services 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, Amazon Web Services notifies you when you go over or are forecasted * to go over your total cost threshold. For PERCENTAGE thresholds, * Amazon Web Services 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%, Amazon * Web Services notifies you when you go over 160 dollars.

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

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

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

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

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

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

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

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

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

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

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

Specifies whether this notification is in alarm. If a budget notification is * in the ALARM state, you 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 = false; ComparisonOperator m_comparisonOperator; bool m_comparisonOperatorHasBeenSet = false; double m_threshold; bool m_thresholdHasBeenSet = false; ThresholdType m_thresholdType; bool m_thresholdTypeHasBeenSet = false; NotificationState m_notificationState; bool m_notificationStateHasBeenSet = false; }; } // namespace Model } // namespace Budgets } // namespace Aws