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 <aws/pinpoint/model/CampaignEventFilter.h>
10 #include <aws/pinpoint/model/QuietTime.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>Schedule of the campaign.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/InAppCampaignSchedule">AWS
31    * API Reference</a></p>
32    */
33   class AWS_PINPOINT_API InAppCampaignSchedule
34   {
35   public:
36     InAppCampaignSchedule();
37     InAppCampaignSchedule(Aws::Utils::Json::JsonView jsonValue);
38     InAppCampaignSchedule& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The scheduled time after which the in-app message should not be shown.
44      * Timestamp is in ISO 8601 format.</p>
45      */
GetEndDate()46     inline const Aws::String& GetEndDate() const{ return m_endDate; }
47 
48     /**
49      * <p>The scheduled time after which the in-app message should not be shown.
50      * Timestamp is in ISO 8601 format.</p>
51      */
EndDateHasBeenSet()52     inline bool EndDateHasBeenSet() const { return m_endDateHasBeenSet; }
53 
54     /**
55      * <p>The scheduled time after which the in-app message should not be shown.
56      * Timestamp is in ISO 8601 format.</p>
57      */
SetEndDate(const Aws::String & value)58     inline void SetEndDate(const Aws::String& value) { m_endDateHasBeenSet = true; m_endDate = value; }
59 
60     /**
61      * <p>The scheduled time after which the in-app message should not be shown.
62      * Timestamp is in ISO 8601 format.</p>
63      */
SetEndDate(Aws::String && value)64     inline void SetEndDate(Aws::String&& value) { m_endDateHasBeenSet = true; m_endDate = std::move(value); }
65 
66     /**
67      * <p>The scheduled time after which the in-app message should not be shown.
68      * Timestamp is in ISO 8601 format.</p>
69      */
SetEndDate(const char * value)70     inline void SetEndDate(const char* value) { m_endDateHasBeenSet = true; m_endDate.assign(value); }
71 
72     /**
73      * <p>The scheduled time after which the in-app message should not be shown.
74      * Timestamp is in ISO 8601 format.</p>
75      */
WithEndDate(const Aws::String & value)76     inline InAppCampaignSchedule& WithEndDate(const Aws::String& value) { SetEndDate(value); return *this;}
77 
78     /**
79      * <p>The scheduled time after which the in-app message should not be shown.
80      * Timestamp is in ISO 8601 format.</p>
81      */
WithEndDate(Aws::String && value)82     inline InAppCampaignSchedule& WithEndDate(Aws::String&& value) { SetEndDate(std::move(value)); return *this;}
83 
84     /**
85      * <p>The scheduled time after which the in-app message should not be shown.
86      * Timestamp is in ISO 8601 format.</p>
87      */
WithEndDate(const char * value)88     inline InAppCampaignSchedule& WithEndDate(const char* value) { SetEndDate(value); return *this;}
89 
90 
91     /**
92      * <p>The event filter the SDK has to use to show the in-app message in the
93      * application.</p>
94      */
GetEventFilter()95     inline const CampaignEventFilter& GetEventFilter() const{ return m_eventFilter; }
96 
97     /**
98      * <p>The event filter the SDK has to use to show the in-app message in the
99      * application.</p>
100      */
EventFilterHasBeenSet()101     inline bool EventFilterHasBeenSet() const { return m_eventFilterHasBeenSet; }
102 
103     /**
104      * <p>The event filter the SDK has to use to show the in-app message in the
105      * application.</p>
106      */
SetEventFilter(const CampaignEventFilter & value)107     inline void SetEventFilter(const CampaignEventFilter& value) { m_eventFilterHasBeenSet = true; m_eventFilter = value; }
108 
109     /**
110      * <p>The event filter the SDK has to use to show the in-app message in the
111      * application.</p>
112      */
SetEventFilter(CampaignEventFilter && value)113     inline void SetEventFilter(CampaignEventFilter&& value) { m_eventFilterHasBeenSet = true; m_eventFilter = std::move(value); }
114 
115     /**
116      * <p>The event filter the SDK has to use to show the in-app message in the
117      * application.</p>
118      */
WithEventFilter(const CampaignEventFilter & value)119     inline InAppCampaignSchedule& WithEventFilter(const CampaignEventFilter& value) { SetEventFilter(value); return *this;}
120 
121     /**
122      * <p>The event filter the SDK has to use to show the in-app message in the
123      * application.</p>
124      */
WithEventFilter(CampaignEventFilter && value)125     inline InAppCampaignSchedule& WithEventFilter(CampaignEventFilter&& value) { SetEventFilter(std::move(value)); return *this;}
126 
127 
128     /**
129      * <p>Time during which the in-app message should not be shown to the user.</p>
130      */
GetQuietTime()131     inline const QuietTime& GetQuietTime() const{ return m_quietTime; }
132 
133     /**
134      * <p>Time during which the in-app message should not be shown to the user.</p>
135      */
QuietTimeHasBeenSet()136     inline bool QuietTimeHasBeenSet() const { return m_quietTimeHasBeenSet; }
137 
138     /**
139      * <p>Time during which the in-app message should not be shown to the user.</p>
140      */
SetQuietTime(const QuietTime & value)141     inline void SetQuietTime(const QuietTime& value) { m_quietTimeHasBeenSet = true; m_quietTime = value; }
142 
143     /**
144      * <p>Time during which the in-app message should not be shown to the user.</p>
145      */
SetQuietTime(QuietTime && value)146     inline void SetQuietTime(QuietTime&& value) { m_quietTimeHasBeenSet = true; m_quietTime = std::move(value); }
147 
148     /**
149      * <p>Time during which the in-app message should not be shown to the user.</p>
150      */
WithQuietTime(const QuietTime & value)151     inline InAppCampaignSchedule& WithQuietTime(const QuietTime& value) { SetQuietTime(value); return *this;}
152 
153     /**
154      * <p>Time during which the in-app message should not be shown to the user.</p>
155      */
WithQuietTime(QuietTime && value)156     inline InAppCampaignSchedule& WithQuietTime(QuietTime&& value) { SetQuietTime(std::move(value)); return *this;}
157 
158   private:
159 
160     Aws::String m_endDate;
161     bool m_endDateHasBeenSet;
162 
163     CampaignEventFilter m_eventFilter;
164     bool m_eventFilterHasBeenSet;
165 
166     QuietTime m_quietTime;
167     bool m_quietTimeHasBeenSet;
168   };
169 
170 } // namespace Model
171 } // namespace Pinpoint
172 } // namespace Aws
173