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 the settings for a holdout activity in a journey. This type of
28    * activity stops a journey for a specified percentage of
29    * participants.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/HoldoutActivity">AWS
31    * API Reference</a></p>
32    */
33   class AWS_PINPOINT_API HoldoutActivity
34   {
35   public:
36     HoldoutActivity();
37     HoldoutActivity(Aws::Utils::Json::JsonView jsonValue);
38     HoldoutActivity& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The unique identifier for the next activity to perform, after performing the
44      * holdout activity.</p>
45      */
GetNextActivity()46     inline const Aws::String& GetNextActivity() const{ return m_nextActivity; }
47 
48     /**
49      * <p>The unique identifier for the next activity to perform, after performing the
50      * holdout activity.</p>
51      */
NextActivityHasBeenSet()52     inline bool NextActivityHasBeenSet() const { return m_nextActivityHasBeenSet; }
53 
54     /**
55      * <p>The unique identifier for the next activity to perform, after performing the
56      * holdout activity.</p>
57      */
SetNextActivity(const Aws::String & value)58     inline void SetNextActivity(const Aws::String& value) { m_nextActivityHasBeenSet = true; m_nextActivity = value; }
59 
60     /**
61      * <p>The unique identifier for the next activity to perform, after performing the
62      * holdout activity.</p>
63      */
SetNextActivity(Aws::String && value)64     inline void SetNextActivity(Aws::String&& value) { m_nextActivityHasBeenSet = true; m_nextActivity = std::move(value); }
65 
66     /**
67      * <p>The unique identifier for the next activity to perform, after performing the
68      * holdout activity.</p>
69      */
SetNextActivity(const char * value)70     inline void SetNextActivity(const char* value) { m_nextActivityHasBeenSet = true; m_nextActivity.assign(value); }
71 
72     /**
73      * <p>The unique identifier for the next activity to perform, after performing the
74      * holdout activity.</p>
75      */
WithNextActivity(const Aws::String & value)76     inline HoldoutActivity& WithNextActivity(const Aws::String& value) { SetNextActivity(value); return *this;}
77 
78     /**
79      * <p>The unique identifier for the next activity to perform, after performing the
80      * holdout activity.</p>
81      */
WithNextActivity(Aws::String && value)82     inline HoldoutActivity& WithNextActivity(Aws::String&& value) { SetNextActivity(std::move(value)); return *this;}
83 
84     /**
85      * <p>The unique identifier for the next activity to perform, after performing the
86      * holdout activity.</p>
87      */
WithNextActivity(const char * value)88     inline HoldoutActivity& WithNextActivity(const char* value) { SetNextActivity(value); return *this;}
89 
90 
91     /**
92      * <p>The percentage of participants who shouldn't continue the journey.</p> <p>To
93      * determine which participants are held out, Amazon Pinpoint applies a
94      * probability-based algorithm to the percentage that you specify. Therefore, the
95      * actual percentage of participants who are held out may not be equal to the
96      * percentage that you specify.</p>
97      */
GetPercentage()98     inline int GetPercentage() const{ return m_percentage; }
99 
100     /**
101      * <p>The percentage of participants who shouldn't continue the journey.</p> <p>To
102      * determine which participants are held out, Amazon Pinpoint applies a
103      * probability-based algorithm to the percentage that you specify. Therefore, the
104      * actual percentage of participants who are held out may not be equal to the
105      * percentage that you specify.</p>
106      */
PercentageHasBeenSet()107     inline bool PercentageHasBeenSet() const { return m_percentageHasBeenSet; }
108 
109     /**
110      * <p>The percentage of participants who shouldn't continue the journey.</p> <p>To
111      * determine which participants are held out, Amazon Pinpoint applies a
112      * probability-based algorithm to the percentage that you specify. Therefore, the
113      * actual percentage of participants who are held out may not be equal to the
114      * percentage that you specify.</p>
115      */
SetPercentage(int value)116     inline void SetPercentage(int value) { m_percentageHasBeenSet = true; m_percentage = value; }
117 
118     /**
119      * <p>The percentage of participants who shouldn't continue the journey.</p> <p>To
120      * determine which participants are held out, Amazon Pinpoint applies a
121      * probability-based algorithm to the percentage that you specify. Therefore, the
122      * actual percentage of participants who are held out may not be equal to the
123      * percentage that you specify.</p>
124      */
WithPercentage(int value)125     inline HoldoutActivity& WithPercentage(int value) { SetPercentage(value); return *this;}
126 
127   private:
128 
129     Aws::String m_nextActivity;
130     bool m_nextActivityHasBeenSet;
131 
132     int m_percentage;
133     bool m_percentageHasBeenSet;
134   };
135 
136 } // namespace Model
137 } // namespace Pinpoint
138 } // namespace Aws
139