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/AWSVector.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/pinpoint/model/WaitTime.h> 11 #include <aws/pinpoint/model/MultiConditionalBranch.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Json 19 { 20 class JsonValue; 21 class JsonView; 22 } // namespace Json 23 } // namespace Utils 24 namespace Pinpoint 25 { 26 namespace Model 27 { 28 29 /** 30 * <p>Specifies the settings for a multivariate split activity in a journey. This 31 * type of activity sends participants down one of as many as five paths (including 32 * a default <i>Else</i> path) in a journey, based on conditions that you 33 * specify.</p> <p>To create multivariate split activities that send 34 * participants down different paths based on push notification events (such as 35 * Open or Received events), your mobile app has to specify the User ID and 36 * Endpoint ID values. For more information, see <a 37 * href="https://docs.aws.amazon.com/pinpoint/latest/developerguide/integrate.html">Integrating 38 * Amazon Pinpoint with your application</a> in the <i>Amazon Pinpoint Developer 39 * Guide</i>.</p><p><h3>See Also:</h3> <a 40 * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/MultiConditionalSplitActivity">AWS 41 * API Reference</a></p> 42 */ 43 class AWS_PINPOINT_API MultiConditionalSplitActivity 44 { 45 public: 46 MultiConditionalSplitActivity(); 47 MultiConditionalSplitActivity(Aws::Utils::Json::JsonView jsonValue); 48 MultiConditionalSplitActivity& operator=(Aws::Utils::Json::JsonView jsonValue); 49 Aws::Utils::Json::JsonValue Jsonize() const; 50 51 52 /** 53 * <p>The paths for the activity, including the conditions for entering each path 54 * and the activity to perform for each path.</p> 55 */ GetBranches()56 inline const Aws::Vector<MultiConditionalBranch>& GetBranches() const{ return m_branches; } 57 58 /** 59 * <p>The paths for the activity, including the conditions for entering each path 60 * and the activity to perform for each path.</p> 61 */ BranchesHasBeenSet()62 inline bool BranchesHasBeenSet() const { return m_branchesHasBeenSet; } 63 64 /** 65 * <p>The paths for the activity, including the conditions for entering each path 66 * and the activity to perform for each path.</p> 67 */ SetBranches(const Aws::Vector<MultiConditionalBranch> & value)68 inline void SetBranches(const Aws::Vector<MultiConditionalBranch>& value) { m_branchesHasBeenSet = true; m_branches = value; } 69 70 /** 71 * <p>The paths for the activity, including the conditions for entering each path 72 * and the activity to perform for each path.</p> 73 */ SetBranches(Aws::Vector<MultiConditionalBranch> && value)74 inline void SetBranches(Aws::Vector<MultiConditionalBranch>&& value) { m_branchesHasBeenSet = true; m_branches = std::move(value); } 75 76 /** 77 * <p>The paths for the activity, including the conditions for entering each path 78 * and the activity to perform for each path.</p> 79 */ WithBranches(const Aws::Vector<MultiConditionalBranch> & value)80 inline MultiConditionalSplitActivity& WithBranches(const Aws::Vector<MultiConditionalBranch>& value) { SetBranches(value); return *this;} 81 82 /** 83 * <p>The paths for the activity, including the conditions for entering each path 84 * and the activity to perform for each path.</p> 85 */ WithBranches(Aws::Vector<MultiConditionalBranch> && value)86 inline MultiConditionalSplitActivity& WithBranches(Aws::Vector<MultiConditionalBranch>&& value) { SetBranches(std::move(value)); return *this;} 87 88 /** 89 * <p>The paths for the activity, including the conditions for entering each path 90 * and the activity to perform for each path.</p> 91 */ AddBranches(const MultiConditionalBranch & value)92 inline MultiConditionalSplitActivity& AddBranches(const MultiConditionalBranch& value) { m_branchesHasBeenSet = true; m_branches.push_back(value); return *this; } 93 94 /** 95 * <p>The paths for the activity, including the conditions for entering each path 96 * and the activity to perform for each path.</p> 97 */ AddBranches(MultiConditionalBranch && value)98 inline MultiConditionalSplitActivity& AddBranches(MultiConditionalBranch&& value) { m_branchesHasBeenSet = true; m_branches.push_back(std::move(value)); return *this; } 99 100 101 /** 102 * <p>The unique identifier for the activity to perform for participants who don't 103 * meet any of the conditions specified for other paths in the activity.</p> 104 */ GetDefaultActivity()105 inline const Aws::String& GetDefaultActivity() const{ return m_defaultActivity; } 106 107 /** 108 * <p>The unique identifier for the activity to perform for participants who don't 109 * meet any of the conditions specified for other paths in the activity.</p> 110 */ DefaultActivityHasBeenSet()111 inline bool DefaultActivityHasBeenSet() const { return m_defaultActivityHasBeenSet; } 112 113 /** 114 * <p>The unique identifier for the activity to perform for participants who don't 115 * meet any of the conditions specified for other paths in the activity.</p> 116 */ SetDefaultActivity(const Aws::String & value)117 inline void SetDefaultActivity(const Aws::String& value) { m_defaultActivityHasBeenSet = true; m_defaultActivity = value; } 118 119 /** 120 * <p>The unique identifier for the activity to perform for participants who don't 121 * meet any of the conditions specified for other paths in the activity.</p> 122 */ SetDefaultActivity(Aws::String && value)123 inline void SetDefaultActivity(Aws::String&& value) { m_defaultActivityHasBeenSet = true; m_defaultActivity = std::move(value); } 124 125 /** 126 * <p>The unique identifier for the activity to perform for participants who don't 127 * meet any of the conditions specified for other paths in the activity.</p> 128 */ SetDefaultActivity(const char * value)129 inline void SetDefaultActivity(const char* value) { m_defaultActivityHasBeenSet = true; m_defaultActivity.assign(value); } 130 131 /** 132 * <p>The unique identifier for the activity to perform for participants who don't 133 * meet any of the conditions specified for other paths in the activity.</p> 134 */ WithDefaultActivity(const Aws::String & value)135 inline MultiConditionalSplitActivity& WithDefaultActivity(const Aws::String& value) { SetDefaultActivity(value); return *this;} 136 137 /** 138 * <p>The unique identifier for the activity to perform for participants who don't 139 * meet any of the conditions specified for other paths in the activity.</p> 140 */ WithDefaultActivity(Aws::String && value)141 inline MultiConditionalSplitActivity& WithDefaultActivity(Aws::String&& value) { SetDefaultActivity(std::move(value)); return *this;} 142 143 /** 144 * <p>The unique identifier for the activity to perform for participants who don't 145 * meet any of the conditions specified for other paths in the activity.</p> 146 */ WithDefaultActivity(const char * value)147 inline MultiConditionalSplitActivity& WithDefaultActivity(const char* value) { SetDefaultActivity(value); return *this;} 148 149 150 /** 151 * <p>The amount of time to wait or the date and time when Amazon Pinpoint 152 * determines whether the conditions are met.</p> 153 */ GetEvaluationWaitTime()154 inline const WaitTime& GetEvaluationWaitTime() const{ return m_evaluationWaitTime; } 155 156 /** 157 * <p>The amount of time to wait or the date and time when Amazon Pinpoint 158 * determines whether the conditions are met.</p> 159 */ EvaluationWaitTimeHasBeenSet()160 inline bool EvaluationWaitTimeHasBeenSet() const { return m_evaluationWaitTimeHasBeenSet; } 161 162 /** 163 * <p>The amount of time to wait or the date and time when Amazon Pinpoint 164 * determines whether the conditions are met.</p> 165 */ SetEvaluationWaitTime(const WaitTime & value)166 inline void SetEvaluationWaitTime(const WaitTime& value) { m_evaluationWaitTimeHasBeenSet = true; m_evaluationWaitTime = value; } 167 168 /** 169 * <p>The amount of time to wait or the date and time when Amazon Pinpoint 170 * determines whether the conditions are met.</p> 171 */ SetEvaluationWaitTime(WaitTime && value)172 inline void SetEvaluationWaitTime(WaitTime&& value) { m_evaluationWaitTimeHasBeenSet = true; m_evaluationWaitTime = std::move(value); } 173 174 /** 175 * <p>The amount of time to wait or the date and time when Amazon Pinpoint 176 * determines whether the conditions are met.</p> 177 */ WithEvaluationWaitTime(const WaitTime & value)178 inline MultiConditionalSplitActivity& WithEvaluationWaitTime(const WaitTime& value) { SetEvaluationWaitTime(value); return *this;} 179 180 /** 181 * <p>The amount of time to wait or the date and time when Amazon Pinpoint 182 * determines whether the conditions are met.</p> 183 */ WithEvaluationWaitTime(WaitTime && value)184 inline MultiConditionalSplitActivity& WithEvaluationWaitTime(WaitTime&& value) { SetEvaluationWaitTime(std::move(value)); return *this;} 185 186 private: 187 188 Aws::Vector<MultiConditionalBranch> m_branches; 189 bool m_branchesHasBeenSet; 190 191 Aws::String m_defaultActivity; 192 bool m_defaultActivityHasBeenSet; 193 194 WaitTime m_evaluationWaitTime; 195 bool m_evaluationWaitTimeHasBeenSet; 196 }; 197 198 } // namespace Model 199 } // namespace Pinpoint 200 } // namespace Aws 201