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

The subscriber to a budget notification. The subscriber consists of a * subscription type and either an Amazon SNS topic or an email address.

For * example, an email subscriber would have the following parameters:

  • *

    A subscriptionType of EMAIL

  • An * address of example@example.com

  • *

See Also:

AWS * API Reference

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

The type of notification that AWS sends to a subscriber.

*/ inline const SubscriptionType& GetSubscriptionType() const{ return m_subscriptionType; } /** *

The type of notification that AWS sends to a subscriber.

*/ inline bool SubscriptionTypeHasBeenSet() const { return m_subscriptionTypeHasBeenSet; } /** *

The type of notification that AWS sends to a subscriber.

*/ inline void SetSubscriptionType(const SubscriptionType& value) { m_subscriptionTypeHasBeenSet = true; m_subscriptionType = value; } /** *

The type of notification that AWS sends to a subscriber.

*/ inline void SetSubscriptionType(SubscriptionType&& value) { m_subscriptionTypeHasBeenSet = true; m_subscriptionType = std::move(value); } /** *

The type of notification that AWS sends to a subscriber.

*/ inline Subscriber& WithSubscriptionType(const SubscriptionType& value) { SetSubscriptionType(value); return *this;} /** *

The type of notification that AWS sends to a subscriber.

*/ inline Subscriber& WithSubscriptionType(SubscriptionType&& value) { SetSubscriptionType(std::move(value)); return *this;} /** *

The address that AWS sends budget notifications to, either an SNS topic or an * email.

When you create a subscriber, the value of Address * can't contain line breaks.

*/ inline const Aws::String& GetAddress() const{ return m_address; } /** *

The address that AWS sends budget notifications to, either an SNS topic or an * email.

When you create a subscriber, the value of Address * can't contain line breaks.

*/ inline bool AddressHasBeenSet() const { return m_addressHasBeenSet; } /** *

The address that AWS sends budget notifications to, either an SNS topic or an * email.

When you create a subscriber, the value of Address * can't contain line breaks.

*/ inline void SetAddress(const Aws::String& value) { m_addressHasBeenSet = true; m_address = value; } /** *

The address that AWS sends budget notifications to, either an SNS topic or an * email.

When you create a subscriber, the value of Address * can't contain line breaks.

*/ inline void SetAddress(Aws::String&& value) { m_addressHasBeenSet = true; m_address = std::move(value); } /** *

The address that AWS sends budget notifications to, either an SNS topic or an * email.

When you create a subscriber, the value of Address * can't contain line breaks.

*/ inline void SetAddress(const char* value) { m_addressHasBeenSet = true; m_address.assign(value); } /** *

The address that AWS sends budget notifications to, either an SNS topic or an * email.

When you create a subscriber, the value of Address * can't contain line breaks.

*/ inline Subscriber& WithAddress(const Aws::String& value) { SetAddress(value); return *this;} /** *

The address that AWS sends budget notifications to, either an SNS topic or an * email.

When you create a subscriber, the value of Address * can't contain line breaks.

*/ inline Subscriber& WithAddress(Aws::String&& value) { SetAddress(std::move(value)); return *this;} /** *

The address that AWS sends budget notifications to, either an SNS topic or an * email.

When you create a subscriber, the value of Address * can't contain line breaks.

*/ inline Subscriber& WithAddress(const char* value) { SetAddress(value); return *this;} private: SubscriptionType m_subscriptionType; bool m_subscriptionTypeHasBeenSet; Aws::String m_address; bool m_addressHasBeenSet; }; } // namespace Model } // namespace Budgets } // namespace Aws