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