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/pinpoint/Pinpoint_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace Pinpoint
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Specifies limits on the messages that a journey can send and the number of
28    * times participants can enter a journey.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/JourneyLimits">AWS
30    * API Reference</a></p>
31    */
32   class AWS_PINPOINT_API JourneyLimits
33   {
34   public:
35     JourneyLimits();
36     JourneyLimits(Aws::Utils::Json::JsonView jsonValue);
37     JourneyLimits& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The maximum number of messages that the journey can send to a single
43      * participant during a 24-hour period. The maximum value is 100.</p>
44      */
GetDailyCap()45     inline int GetDailyCap() const{ return m_dailyCap; }
46 
47     /**
48      * <p>The maximum number of messages that the journey can send to a single
49      * participant during a 24-hour period. The maximum value is 100.</p>
50      */
DailyCapHasBeenSet()51     inline bool DailyCapHasBeenSet() const { return m_dailyCapHasBeenSet; }
52 
53     /**
54      * <p>The maximum number of messages that the journey can send to a single
55      * participant during a 24-hour period. The maximum value is 100.</p>
56      */
SetDailyCap(int value)57     inline void SetDailyCap(int value) { m_dailyCapHasBeenSet = true; m_dailyCap = value; }
58 
59     /**
60      * <p>The maximum number of messages that the journey can send to a single
61      * participant during a 24-hour period. The maximum value is 100.</p>
62      */
WithDailyCap(int value)63     inline JourneyLimits& WithDailyCap(int value) { SetDailyCap(value); return *this;}
64 
65 
66     /**
67      * <p>The maximum number of times that a participant can enter the journey. The
68      * maximum value is 100. To allow participants to enter the journey an unlimited
69      * number of times, set this value to 0.</p>
70      */
GetEndpointReentryCap()71     inline int GetEndpointReentryCap() const{ return m_endpointReentryCap; }
72 
73     /**
74      * <p>The maximum number of times that a participant can enter the journey. The
75      * maximum value is 100. To allow participants to enter the journey an unlimited
76      * number of times, set this value to 0.</p>
77      */
EndpointReentryCapHasBeenSet()78     inline bool EndpointReentryCapHasBeenSet() const { return m_endpointReentryCapHasBeenSet; }
79 
80     /**
81      * <p>The maximum number of times that a participant can enter the journey. The
82      * maximum value is 100. To allow participants to enter the journey an unlimited
83      * number of times, set this value to 0.</p>
84      */
SetEndpointReentryCap(int value)85     inline void SetEndpointReentryCap(int value) { m_endpointReentryCapHasBeenSet = true; m_endpointReentryCap = value; }
86 
87     /**
88      * <p>The maximum number of times that a participant can enter the journey. The
89      * maximum value is 100. To allow participants to enter the journey an unlimited
90      * number of times, set this value to 0.</p>
91      */
WithEndpointReentryCap(int value)92     inline JourneyLimits& WithEndpointReentryCap(int value) { SetEndpointReentryCap(value); return *this;}
93 
94 
95     /**
96      * <p>The maximum number of messages that the journey can send each second.</p>
97      */
GetMessagesPerSecond()98     inline int GetMessagesPerSecond() const{ return m_messagesPerSecond; }
99 
100     /**
101      * <p>The maximum number of messages that the journey can send each second.</p>
102      */
MessagesPerSecondHasBeenSet()103     inline bool MessagesPerSecondHasBeenSet() const { return m_messagesPerSecondHasBeenSet; }
104 
105     /**
106      * <p>The maximum number of messages that the journey can send each second.</p>
107      */
SetMessagesPerSecond(int value)108     inline void SetMessagesPerSecond(int value) { m_messagesPerSecondHasBeenSet = true; m_messagesPerSecond = value; }
109 
110     /**
111      * <p>The maximum number of messages that the journey can send each second.</p>
112      */
WithMessagesPerSecond(int value)113     inline JourneyLimits& WithMessagesPerSecond(int value) { SetMessagesPerSecond(value); return *this;}
114 
115 
116     /**
117      * <p>Minimum time that must pass before an endpoint can re-enter a given journey.
118      * The duration should use an ISO 8601 format, such as PT1H. </p>
119      */
GetEndpointReentryInterval()120     inline const Aws::String& GetEndpointReentryInterval() const{ return m_endpointReentryInterval; }
121 
122     /**
123      * <p>Minimum time that must pass before an endpoint can re-enter a given journey.
124      * The duration should use an ISO 8601 format, such as PT1H. </p>
125      */
EndpointReentryIntervalHasBeenSet()126     inline bool EndpointReentryIntervalHasBeenSet() const { return m_endpointReentryIntervalHasBeenSet; }
127 
128     /**
129      * <p>Minimum time that must pass before an endpoint can re-enter a given journey.
130      * The duration should use an ISO 8601 format, such as PT1H. </p>
131      */
SetEndpointReentryInterval(const Aws::String & value)132     inline void SetEndpointReentryInterval(const Aws::String& value) { m_endpointReentryIntervalHasBeenSet = true; m_endpointReentryInterval = value; }
133 
134     /**
135      * <p>Minimum time that must pass before an endpoint can re-enter a given journey.
136      * The duration should use an ISO 8601 format, such as PT1H. </p>
137      */
SetEndpointReentryInterval(Aws::String && value)138     inline void SetEndpointReentryInterval(Aws::String&& value) { m_endpointReentryIntervalHasBeenSet = true; m_endpointReentryInterval = std::move(value); }
139 
140     /**
141      * <p>Minimum time that must pass before an endpoint can re-enter a given journey.
142      * The duration should use an ISO 8601 format, such as PT1H. </p>
143      */
SetEndpointReentryInterval(const char * value)144     inline void SetEndpointReentryInterval(const char* value) { m_endpointReentryIntervalHasBeenSet = true; m_endpointReentryInterval.assign(value); }
145 
146     /**
147      * <p>Minimum time that must pass before an endpoint can re-enter a given journey.
148      * The duration should use an ISO 8601 format, such as PT1H. </p>
149      */
WithEndpointReentryInterval(const Aws::String & value)150     inline JourneyLimits& WithEndpointReentryInterval(const Aws::String& value) { SetEndpointReentryInterval(value); return *this;}
151 
152     /**
153      * <p>Minimum time that must pass before an endpoint can re-enter a given journey.
154      * The duration should use an ISO 8601 format, such as PT1H. </p>
155      */
WithEndpointReentryInterval(Aws::String && value)156     inline JourneyLimits& WithEndpointReentryInterval(Aws::String&& value) { SetEndpointReentryInterval(std::move(value)); return *this;}
157 
158     /**
159      * <p>Minimum time that must pass before an endpoint can re-enter a given journey.
160      * The duration should use an ISO 8601 format, such as PT1H. </p>
161      */
WithEndpointReentryInterval(const char * value)162     inline JourneyLimits& WithEndpointReentryInterval(const char* value) { SetEndpointReentryInterval(value); return *this;}
163 
164   private:
165 
166     int m_dailyCap;
167     bool m_dailyCapHasBeenSet;
168 
169     int m_endpointReentryCap;
170     bool m_endpointReentryCapHasBeenSet;
171 
172     int m_messagesPerSecond;
173     bool m_messagesPerSecondHasBeenSet;
174 
175     Aws::String m_endpointReentryInterval;
176     bool m_endpointReentryIntervalHasBeenSet;
177   };
178 
179 } // namespace Model
180 } // namespace Pinpoint
181 } // namespace Aws
182