/** * 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 Pinpoint { namespace Model { /** *

Specifies limits on the messages that a journey can send and the number of * times participants can enter a journey.

See Also:

AWS * API Reference

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

The maximum number of messages that the journey can send to a single * participant during a 24-hour period. The maximum value is 100.

*/ inline int GetDailyCap() const{ return m_dailyCap; } /** *

The maximum number of messages that the journey can send to a single * participant during a 24-hour period. The maximum value is 100.

*/ inline bool DailyCapHasBeenSet() const { return m_dailyCapHasBeenSet; } /** *

The maximum number of messages that the journey can send to a single * participant during a 24-hour period. The maximum value is 100.

*/ inline void SetDailyCap(int value) { m_dailyCapHasBeenSet = true; m_dailyCap = value; } /** *

The maximum number of messages that the journey can send to a single * participant during a 24-hour period. The maximum value is 100.

*/ inline JourneyLimits& WithDailyCap(int value) { SetDailyCap(value); return *this;} /** *

The maximum number of times that a participant can enter the journey. The * maximum value is 100. To allow participants to enter the journey an unlimited * number of times, set this value to 0.

*/ inline int GetEndpointReentryCap() const{ return m_endpointReentryCap; } /** *

The maximum number of times that a participant can enter the journey. The * maximum value is 100. To allow participants to enter the journey an unlimited * number of times, set this value to 0.

*/ inline bool EndpointReentryCapHasBeenSet() const { return m_endpointReentryCapHasBeenSet; } /** *

The maximum number of times that a participant can enter the journey. The * maximum value is 100. To allow participants to enter the journey an unlimited * number of times, set this value to 0.

*/ inline void SetEndpointReentryCap(int value) { m_endpointReentryCapHasBeenSet = true; m_endpointReentryCap = value; } /** *

The maximum number of times that a participant can enter the journey. The * maximum value is 100. To allow participants to enter the journey an unlimited * number of times, set this value to 0.

*/ inline JourneyLimits& WithEndpointReentryCap(int value) { SetEndpointReentryCap(value); return *this;} /** *

The maximum number of messages that the journey can send each second.

*/ inline int GetMessagesPerSecond() const{ return m_messagesPerSecond; } /** *

The maximum number of messages that the journey can send each second.

*/ inline bool MessagesPerSecondHasBeenSet() const { return m_messagesPerSecondHasBeenSet; } /** *

The maximum number of messages that the journey can send each second.

*/ inline void SetMessagesPerSecond(int value) { m_messagesPerSecondHasBeenSet = true; m_messagesPerSecond = value; } /** *

The maximum number of messages that the journey can send each second.

*/ inline JourneyLimits& WithMessagesPerSecond(int value) { SetMessagesPerSecond(value); return *this;} /** *

Minimum time that must pass before an endpoint can re-enter a given journey. * The duration should use an ISO 8601 format, such as PT1H.

*/ inline const Aws::String& GetEndpointReentryInterval() const{ return m_endpointReentryInterval; } /** *

Minimum time that must pass before an endpoint can re-enter a given journey. * The duration should use an ISO 8601 format, such as PT1H.

*/ inline bool EndpointReentryIntervalHasBeenSet() const { return m_endpointReentryIntervalHasBeenSet; } /** *

Minimum time that must pass before an endpoint can re-enter a given journey. * The duration should use an ISO 8601 format, such as PT1H.

*/ inline void SetEndpointReentryInterval(const Aws::String& value) { m_endpointReentryIntervalHasBeenSet = true; m_endpointReentryInterval = value; } /** *

Minimum time that must pass before an endpoint can re-enter a given journey. * The duration should use an ISO 8601 format, such as PT1H.

*/ inline void SetEndpointReentryInterval(Aws::String&& value) { m_endpointReentryIntervalHasBeenSet = true; m_endpointReentryInterval = std::move(value); } /** *

Minimum time that must pass before an endpoint can re-enter a given journey. * The duration should use an ISO 8601 format, such as PT1H.

*/ inline void SetEndpointReentryInterval(const char* value) { m_endpointReentryIntervalHasBeenSet = true; m_endpointReentryInterval.assign(value); } /** *

Minimum time that must pass before an endpoint can re-enter a given journey. * The duration should use an ISO 8601 format, such as PT1H.

*/ inline JourneyLimits& WithEndpointReentryInterval(const Aws::String& value) { SetEndpointReentryInterval(value); return *this;} /** *

Minimum time that must pass before an endpoint can re-enter a given journey. * The duration should use an ISO 8601 format, such as PT1H.

*/ inline JourneyLimits& WithEndpointReentryInterval(Aws::String&& value) { SetEndpointReentryInterval(std::move(value)); return *this;} /** *

Minimum time that must pass before an endpoint can re-enter a given journey. * The duration should use an ISO 8601 format, such as PT1H.

*/ inline JourneyLimits& WithEndpointReentryInterval(const char* value) { SetEndpointReentryInterval(value); return *this;} /** *

The number of messages that an endpoint can receive during the specified * timeframe.

*/ inline const JourneyTimeframeCap& GetTimeframeCap() const{ return m_timeframeCap; } /** *

The number of messages that an endpoint can receive during the specified * timeframe.

*/ inline bool TimeframeCapHasBeenSet() const { return m_timeframeCapHasBeenSet; } /** *

The number of messages that an endpoint can receive during the specified * timeframe.

*/ inline void SetTimeframeCap(const JourneyTimeframeCap& value) { m_timeframeCapHasBeenSet = true; m_timeframeCap = value; } /** *

The number of messages that an endpoint can receive during the specified * timeframe.

*/ inline void SetTimeframeCap(JourneyTimeframeCap&& value) { m_timeframeCapHasBeenSet = true; m_timeframeCap = std::move(value); } /** *

The number of messages that an endpoint can receive during the specified * timeframe.

*/ inline JourneyLimits& WithTimeframeCap(const JourneyTimeframeCap& value) { SetTimeframeCap(value); return *this;} /** *

The number of messages that an endpoint can receive during the specified * timeframe.

*/ inline JourneyLimits& WithTimeframeCap(JourneyTimeframeCap&& value) { SetTimeframeCap(std::move(value)); return *this;} /** *

The maximum number of messages a journey can sent to a single endpoint. The * maximum value is 100. If set to 0, this limit will not apply.

*/ inline int GetTotalCap() const{ return m_totalCap; } /** *

The maximum number of messages a journey can sent to a single endpoint. The * maximum value is 100. If set to 0, this limit will not apply.

*/ inline bool TotalCapHasBeenSet() const { return m_totalCapHasBeenSet; } /** *

The maximum number of messages a journey can sent to a single endpoint. The * maximum value is 100. If set to 0, this limit will not apply.

*/ inline void SetTotalCap(int value) { m_totalCapHasBeenSet = true; m_totalCap = value; } /** *

The maximum number of messages a journey can sent to a single endpoint. The * maximum value is 100. If set to 0, this limit will not apply.

*/ inline JourneyLimits& WithTotalCap(int value) { SetTotalCap(value); return *this;} private: int m_dailyCap; bool m_dailyCapHasBeenSet = false; int m_endpointReentryCap; bool m_endpointReentryCapHasBeenSet = false; int m_messagesPerSecond; bool m_messagesPerSecondHasBeenSet = false; Aws::String m_endpointReentryInterval; bool m_endpointReentryIntervalHasBeenSet = false; JourneyTimeframeCap m_timeframeCap; bool m_timeframeCapHasBeenSet = false; int m_totalCap; bool m_totalCapHasBeenSet = false; }; } // namespace Model } // namespace Pinpoint } // namespace Aws