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/pinpoint/model/EventCondition.h>
9 #include <aws/pinpoint/model/SegmentCondition.h>
10 #include <aws/pinpoint/model/SegmentDimensions.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace Pinpoint
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Specifies a condition to evaluate for an activity in a journey.</p><p><h3>See
30    * Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SimpleCondition">AWS
32    * API Reference</a></p>
33    */
34   class AWS_PINPOINT_API SimpleCondition
35   {
36   public:
37     SimpleCondition();
38     SimpleCondition(Aws::Utils::Json::JsonView jsonValue);
39     SimpleCondition& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The dimension settings for the event that's associated with the activity.</p>
45      */
GetEventCondition()46     inline const EventCondition& GetEventCondition() const{ return m_eventCondition; }
47 
48     /**
49      * <p>The dimension settings for the event that's associated with the activity.</p>
50      */
EventConditionHasBeenSet()51     inline bool EventConditionHasBeenSet() const { return m_eventConditionHasBeenSet; }
52 
53     /**
54      * <p>The dimension settings for the event that's associated with the activity.</p>
55      */
SetEventCondition(const EventCondition & value)56     inline void SetEventCondition(const EventCondition& value) { m_eventConditionHasBeenSet = true; m_eventCondition = value; }
57 
58     /**
59      * <p>The dimension settings for the event that's associated with the activity.</p>
60      */
SetEventCondition(EventCondition && value)61     inline void SetEventCondition(EventCondition&& value) { m_eventConditionHasBeenSet = true; m_eventCondition = std::move(value); }
62 
63     /**
64      * <p>The dimension settings for the event that's associated with the activity.</p>
65      */
WithEventCondition(const EventCondition & value)66     inline SimpleCondition& WithEventCondition(const EventCondition& value) { SetEventCondition(value); return *this;}
67 
68     /**
69      * <p>The dimension settings for the event that's associated with the activity.</p>
70      */
WithEventCondition(EventCondition && value)71     inline SimpleCondition& WithEventCondition(EventCondition&& value) { SetEventCondition(std::move(value)); return *this;}
72 
73 
74     /**
75      * <p>The segment that's associated with the activity.</p>
76      */
GetSegmentCondition()77     inline const SegmentCondition& GetSegmentCondition() const{ return m_segmentCondition; }
78 
79     /**
80      * <p>The segment that's associated with the activity.</p>
81      */
SegmentConditionHasBeenSet()82     inline bool SegmentConditionHasBeenSet() const { return m_segmentConditionHasBeenSet; }
83 
84     /**
85      * <p>The segment that's associated with the activity.</p>
86      */
SetSegmentCondition(const SegmentCondition & value)87     inline void SetSegmentCondition(const SegmentCondition& value) { m_segmentConditionHasBeenSet = true; m_segmentCondition = value; }
88 
89     /**
90      * <p>The segment that's associated with the activity.</p>
91      */
SetSegmentCondition(SegmentCondition && value)92     inline void SetSegmentCondition(SegmentCondition&& value) { m_segmentConditionHasBeenSet = true; m_segmentCondition = std::move(value); }
93 
94     /**
95      * <p>The segment that's associated with the activity.</p>
96      */
WithSegmentCondition(const SegmentCondition & value)97     inline SimpleCondition& WithSegmentCondition(const SegmentCondition& value) { SetSegmentCondition(value); return *this;}
98 
99     /**
100      * <p>The segment that's associated with the activity.</p>
101      */
WithSegmentCondition(SegmentCondition && value)102     inline SimpleCondition& WithSegmentCondition(SegmentCondition&& value) { SetSegmentCondition(std::move(value)); return *this;}
103 
104 
105     /**
106      * <p>The dimension settings for the segment that's associated with the
107      * activity.</p>
108      */
GetSegmentDimensions()109     inline const SegmentDimensions& GetSegmentDimensions() const{ return m_segmentDimensions; }
110 
111     /**
112      * <p>The dimension settings for the segment that's associated with the
113      * activity.</p>
114      */
SegmentDimensionsHasBeenSet()115     inline bool SegmentDimensionsHasBeenSet() const { return m_segmentDimensionsHasBeenSet; }
116 
117     /**
118      * <p>The dimension settings for the segment that's associated with the
119      * activity.</p>
120      */
SetSegmentDimensions(const SegmentDimensions & value)121     inline void SetSegmentDimensions(const SegmentDimensions& value) { m_segmentDimensionsHasBeenSet = true; m_segmentDimensions = value; }
122 
123     /**
124      * <p>The dimension settings for the segment that's associated with the
125      * activity.</p>
126      */
SetSegmentDimensions(SegmentDimensions && value)127     inline void SetSegmentDimensions(SegmentDimensions&& value) { m_segmentDimensionsHasBeenSet = true; m_segmentDimensions = std::move(value); }
128 
129     /**
130      * <p>The dimension settings for the segment that's associated with the
131      * activity.</p>
132      */
WithSegmentDimensions(const SegmentDimensions & value)133     inline SimpleCondition& WithSegmentDimensions(const SegmentDimensions& value) { SetSegmentDimensions(value); return *this;}
134 
135     /**
136      * <p>The dimension settings for the segment that's associated with the
137      * activity.</p>
138      */
WithSegmentDimensions(SegmentDimensions && value)139     inline SimpleCondition& WithSegmentDimensions(SegmentDimensions&& value) { SetSegmentDimensions(std::move(value)); return *this;}
140 
141   private:
142 
143     EventCondition m_eventCondition;
144     bool m_eventConditionHasBeenSet;
145 
146     SegmentCondition m_segmentCondition;
147     bool m_segmentConditionHasBeenSet;
148 
149     SegmentDimensions m_segmentDimensions;
150     bool m_segmentDimensionsHasBeenSet;
151   };
152 
153 } // namespace Model
154 } // namespace Pinpoint
155 } // namespace Aws
156