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/InAppMessageBodyConfig.h>
10 #include <aws/pinpoint/model/InAppMessageHeaderConfig.h>
11 #include <aws/pinpoint/model/InAppMessageButton.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>The configuration for the message content.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/InAppMessageContent">AWS
32    * API Reference</a></p>
33    */
34   class AWS_PINPOINT_API InAppMessageContent
35   {
36   public:
37     InAppMessageContent();
38     InAppMessageContent(Aws::Utils::Json::JsonView jsonValue);
39     InAppMessageContent& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The background color for the message.</p>
45      */
GetBackgroundColor()46     inline const Aws::String& GetBackgroundColor() const{ return m_backgroundColor; }
47 
48     /**
49      * <p>The background color for the message.</p>
50      */
BackgroundColorHasBeenSet()51     inline bool BackgroundColorHasBeenSet() const { return m_backgroundColorHasBeenSet; }
52 
53     /**
54      * <p>The background color for the message.</p>
55      */
SetBackgroundColor(const Aws::String & value)56     inline void SetBackgroundColor(const Aws::String& value) { m_backgroundColorHasBeenSet = true; m_backgroundColor = value; }
57 
58     /**
59      * <p>The background color for the message.</p>
60      */
SetBackgroundColor(Aws::String && value)61     inline void SetBackgroundColor(Aws::String&& value) { m_backgroundColorHasBeenSet = true; m_backgroundColor = std::move(value); }
62 
63     /**
64      * <p>The background color for the message.</p>
65      */
SetBackgroundColor(const char * value)66     inline void SetBackgroundColor(const char* value) { m_backgroundColorHasBeenSet = true; m_backgroundColor.assign(value); }
67 
68     /**
69      * <p>The background color for the message.</p>
70      */
WithBackgroundColor(const Aws::String & value)71     inline InAppMessageContent& WithBackgroundColor(const Aws::String& value) { SetBackgroundColor(value); return *this;}
72 
73     /**
74      * <p>The background color for the message.</p>
75      */
WithBackgroundColor(Aws::String && value)76     inline InAppMessageContent& WithBackgroundColor(Aws::String&& value) { SetBackgroundColor(std::move(value)); return *this;}
77 
78     /**
79      * <p>The background color for the message.</p>
80      */
WithBackgroundColor(const char * value)81     inline InAppMessageContent& WithBackgroundColor(const char* value) { SetBackgroundColor(value); return *this;}
82 
83 
84     /**
85      * <p>The configuration for the message body.</p>
86      */
GetBodyConfig()87     inline const InAppMessageBodyConfig& GetBodyConfig() const{ return m_bodyConfig; }
88 
89     /**
90      * <p>The configuration for the message body.</p>
91      */
BodyConfigHasBeenSet()92     inline bool BodyConfigHasBeenSet() const { return m_bodyConfigHasBeenSet; }
93 
94     /**
95      * <p>The configuration for the message body.</p>
96      */
SetBodyConfig(const InAppMessageBodyConfig & value)97     inline void SetBodyConfig(const InAppMessageBodyConfig& value) { m_bodyConfigHasBeenSet = true; m_bodyConfig = value; }
98 
99     /**
100      * <p>The configuration for the message body.</p>
101      */
SetBodyConfig(InAppMessageBodyConfig && value)102     inline void SetBodyConfig(InAppMessageBodyConfig&& value) { m_bodyConfigHasBeenSet = true; m_bodyConfig = std::move(value); }
103 
104     /**
105      * <p>The configuration for the message body.</p>
106      */
WithBodyConfig(const InAppMessageBodyConfig & value)107     inline InAppMessageContent& WithBodyConfig(const InAppMessageBodyConfig& value) { SetBodyConfig(value); return *this;}
108 
109     /**
110      * <p>The configuration for the message body.</p>
111      */
WithBodyConfig(InAppMessageBodyConfig && value)112     inline InAppMessageContent& WithBodyConfig(InAppMessageBodyConfig&& value) { SetBodyConfig(std::move(value)); return *this;}
113 
114 
115     /**
116      * <p>The configuration for the message header.</p>
117      */
GetHeaderConfig()118     inline const InAppMessageHeaderConfig& GetHeaderConfig() const{ return m_headerConfig; }
119 
120     /**
121      * <p>The configuration for the message header.</p>
122      */
HeaderConfigHasBeenSet()123     inline bool HeaderConfigHasBeenSet() const { return m_headerConfigHasBeenSet; }
124 
125     /**
126      * <p>The configuration for the message header.</p>
127      */
SetHeaderConfig(const InAppMessageHeaderConfig & value)128     inline void SetHeaderConfig(const InAppMessageHeaderConfig& value) { m_headerConfigHasBeenSet = true; m_headerConfig = value; }
129 
130     /**
131      * <p>The configuration for the message header.</p>
132      */
SetHeaderConfig(InAppMessageHeaderConfig && value)133     inline void SetHeaderConfig(InAppMessageHeaderConfig&& value) { m_headerConfigHasBeenSet = true; m_headerConfig = std::move(value); }
134 
135     /**
136      * <p>The configuration for the message header.</p>
137      */
WithHeaderConfig(const InAppMessageHeaderConfig & value)138     inline InAppMessageContent& WithHeaderConfig(const InAppMessageHeaderConfig& value) { SetHeaderConfig(value); return *this;}
139 
140     /**
141      * <p>The configuration for the message header.</p>
142      */
WithHeaderConfig(InAppMessageHeaderConfig && value)143     inline InAppMessageContent& WithHeaderConfig(InAppMessageHeaderConfig&& value) { SetHeaderConfig(std::move(value)); return *this;}
144 
145 
146     /**
147      * <p>The image url for the background of message.</p>
148      */
GetImageUrl()149     inline const Aws::String& GetImageUrl() const{ return m_imageUrl; }
150 
151     /**
152      * <p>The image url for the background of message.</p>
153      */
ImageUrlHasBeenSet()154     inline bool ImageUrlHasBeenSet() const { return m_imageUrlHasBeenSet; }
155 
156     /**
157      * <p>The image url for the background of message.</p>
158      */
SetImageUrl(const Aws::String & value)159     inline void SetImageUrl(const Aws::String& value) { m_imageUrlHasBeenSet = true; m_imageUrl = value; }
160 
161     /**
162      * <p>The image url for the background of message.</p>
163      */
SetImageUrl(Aws::String && value)164     inline void SetImageUrl(Aws::String&& value) { m_imageUrlHasBeenSet = true; m_imageUrl = std::move(value); }
165 
166     /**
167      * <p>The image url for the background of message.</p>
168      */
SetImageUrl(const char * value)169     inline void SetImageUrl(const char* value) { m_imageUrlHasBeenSet = true; m_imageUrl.assign(value); }
170 
171     /**
172      * <p>The image url for the background of message.</p>
173      */
WithImageUrl(const Aws::String & value)174     inline InAppMessageContent& WithImageUrl(const Aws::String& value) { SetImageUrl(value); return *this;}
175 
176     /**
177      * <p>The image url for the background of message.</p>
178      */
WithImageUrl(Aws::String && value)179     inline InAppMessageContent& WithImageUrl(Aws::String&& value) { SetImageUrl(std::move(value)); return *this;}
180 
181     /**
182      * <p>The image url for the background of message.</p>
183      */
WithImageUrl(const char * value)184     inline InAppMessageContent& WithImageUrl(const char* value) { SetImageUrl(value); return *this;}
185 
186 
187     /**
188      * <p>The first button inside the message.</p>
189      */
GetPrimaryBtn()190     inline const InAppMessageButton& GetPrimaryBtn() const{ return m_primaryBtn; }
191 
192     /**
193      * <p>The first button inside the message.</p>
194      */
PrimaryBtnHasBeenSet()195     inline bool PrimaryBtnHasBeenSet() const { return m_primaryBtnHasBeenSet; }
196 
197     /**
198      * <p>The first button inside the message.</p>
199      */
SetPrimaryBtn(const InAppMessageButton & value)200     inline void SetPrimaryBtn(const InAppMessageButton& value) { m_primaryBtnHasBeenSet = true; m_primaryBtn = value; }
201 
202     /**
203      * <p>The first button inside the message.</p>
204      */
SetPrimaryBtn(InAppMessageButton && value)205     inline void SetPrimaryBtn(InAppMessageButton&& value) { m_primaryBtnHasBeenSet = true; m_primaryBtn = std::move(value); }
206 
207     /**
208      * <p>The first button inside the message.</p>
209      */
WithPrimaryBtn(const InAppMessageButton & value)210     inline InAppMessageContent& WithPrimaryBtn(const InAppMessageButton& value) { SetPrimaryBtn(value); return *this;}
211 
212     /**
213      * <p>The first button inside the message.</p>
214      */
WithPrimaryBtn(InAppMessageButton && value)215     inline InAppMessageContent& WithPrimaryBtn(InAppMessageButton&& value) { SetPrimaryBtn(std::move(value)); return *this;}
216 
217 
218     /**
219      * <p>The second button inside message.</p>
220      */
GetSecondaryBtn()221     inline const InAppMessageButton& GetSecondaryBtn() const{ return m_secondaryBtn; }
222 
223     /**
224      * <p>The second button inside message.</p>
225      */
SecondaryBtnHasBeenSet()226     inline bool SecondaryBtnHasBeenSet() const { return m_secondaryBtnHasBeenSet; }
227 
228     /**
229      * <p>The second button inside message.</p>
230      */
SetSecondaryBtn(const InAppMessageButton & value)231     inline void SetSecondaryBtn(const InAppMessageButton& value) { m_secondaryBtnHasBeenSet = true; m_secondaryBtn = value; }
232 
233     /**
234      * <p>The second button inside message.</p>
235      */
SetSecondaryBtn(InAppMessageButton && value)236     inline void SetSecondaryBtn(InAppMessageButton&& value) { m_secondaryBtnHasBeenSet = true; m_secondaryBtn = std::move(value); }
237 
238     /**
239      * <p>The second button inside message.</p>
240      */
WithSecondaryBtn(const InAppMessageButton & value)241     inline InAppMessageContent& WithSecondaryBtn(const InAppMessageButton& value) { SetSecondaryBtn(value); return *this;}
242 
243     /**
244      * <p>The second button inside message.</p>
245      */
WithSecondaryBtn(InAppMessageButton && value)246     inline InAppMessageContent& WithSecondaryBtn(InAppMessageButton&& value) { SetSecondaryBtn(std::move(value)); return *this;}
247 
248   private:
249 
250     Aws::String m_backgroundColor;
251     bool m_backgroundColorHasBeenSet;
252 
253     InAppMessageBodyConfig m_bodyConfig;
254     bool m_bodyConfigHasBeenSet;
255 
256     InAppMessageHeaderConfig m_headerConfig;
257     bool m_headerConfigHasBeenSet;
258 
259     Aws::String m_imageUrl;
260     bool m_imageUrlHasBeenSet;
261 
262     InAppMessageButton m_primaryBtn;
263     bool m_primaryBtnHasBeenSet;
264 
265     InAppMessageButton m_secondaryBtn;
266     bool m_secondaryBtnHasBeenSet;
267   };
268 
269 } // namespace Model
270 } // namespace Pinpoint
271 } // namespace Aws
272