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/AWSMap.h>
10 #include <aws/pinpoint/model/Layout.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <aws/pinpoint/model/InAppMessageContent.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace Pinpoint
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>InApp Template Request.</p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/InAppTemplateRequest">AWS
33    * API Reference</a></p>
34    */
35   class AWS_PINPOINT_API InAppTemplateRequest
36   {
37   public:
38     InAppTemplateRequest();
39     InAppTemplateRequest(Aws::Utils::Json::JsonView jsonValue);
40     InAppTemplateRequest& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>The content of the message, can include up to 5 modals. Each modal must
46      * contain a message, a header, and background color. ImageUrl and buttons are
47      * optional.</p>
48      */
GetContent()49     inline const Aws::Vector<InAppMessageContent>& GetContent() const{ return m_content; }
50 
51     /**
52      * <p>The content of the message, can include up to 5 modals. Each modal must
53      * contain a message, a header, and background color. ImageUrl and buttons are
54      * optional.</p>
55      */
ContentHasBeenSet()56     inline bool ContentHasBeenSet() const { return m_contentHasBeenSet; }
57 
58     /**
59      * <p>The content of the message, can include up to 5 modals. Each modal must
60      * contain a message, a header, and background color. ImageUrl and buttons are
61      * optional.</p>
62      */
SetContent(const Aws::Vector<InAppMessageContent> & value)63     inline void SetContent(const Aws::Vector<InAppMessageContent>& value) { m_contentHasBeenSet = true; m_content = value; }
64 
65     /**
66      * <p>The content of the message, can include up to 5 modals. Each modal must
67      * contain a message, a header, and background color. ImageUrl and buttons are
68      * optional.</p>
69      */
SetContent(Aws::Vector<InAppMessageContent> && value)70     inline void SetContent(Aws::Vector<InAppMessageContent>&& value) { m_contentHasBeenSet = true; m_content = std::move(value); }
71 
72     /**
73      * <p>The content of the message, can include up to 5 modals. Each modal must
74      * contain a message, a header, and background color. ImageUrl and buttons are
75      * optional.</p>
76      */
WithContent(const Aws::Vector<InAppMessageContent> & value)77     inline InAppTemplateRequest& WithContent(const Aws::Vector<InAppMessageContent>& value) { SetContent(value); return *this;}
78 
79     /**
80      * <p>The content of the message, can include up to 5 modals. Each modal must
81      * contain a message, a header, and background color. ImageUrl and buttons are
82      * optional.</p>
83      */
WithContent(Aws::Vector<InAppMessageContent> && value)84     inline InAppTemplateRequest& WithContent(Aws::Vector<InAppMessageContent>&& value) { SetContent(std::move(value)); return *this;}
85 
86     /**
87      * <p>The content of the message, can include up to 5 modals. Each modal must
88      * contain a message, a header, and background color. ImageUrl and buttons are
89      * optional.</p>
90      */
AddContent(const InAppMessageContent & value)91     inline InAppTemplateRequest& AddContent(const InAppMessageContent& value) { m_contentHasBeenSet = true; m_content.push_back(value); return *this; }
92 
93     /**
94      * <p>The content of the message, can include up to 5 modals. Each modal must
95      * contain a message, a header, and background color. ImageUrl and buttons are
96      * optional.</p>
97      */
AddContent(InAppMessageContent && value)98     inline InAppTemplateRequest& AddContent(InAppMessageContent&& value) { m_contentHasBeenSet = true; m_content.push_back(std::move(value)); return *this; }
99 
100 
101     /**
102      * <p>Custom config to be sent to client.</p>
103      */
GetCustomConfig()104     inline const Aws::Map<Aws::String, Aws::String>& GetCustomConfig() const{ return m_customConfig; }
105 
106     /**
107      * <p>Custom config to be sent to client.</p>
108      */
CustomConfigHasBeenSet()109     inline bool CustomConfigHasBeenSet() const { return m_customConfigHasBeenSet; }
110 
111     /**
112      * <p>Custom config to be sent to client.</p>
113      */
SetCustomConfig(const Aws::Map<Aws::String,Aws::String> & value)114     inline void SetCustomConfig(const Aws::Map<Aws::String, Aws::String>& value) { m_customConfigHasBeenSet = true; m_customConfig = value; }
115 
116     /**
117      * <p>Custom config to be sent to client.</p>
118      */
SetCustomConfig(Aws::Map<Aws::String,Aws::String> && value)119     inline void SetCustomConfig(Aws::Map<Aws::String, Aws::String>&& value) { m_customConfigHasBeenSet = true; m_customConfig = std::move(value); }
120 
121     /**
122      * <p>Custom config to be sent to client.</p>
123      */
WithCustomConfig(const Aws::Map<Aws::String,Aws::String> & value)124     inline InAppTemplateRequest& WithCustomConfig(const Aws::Map<Aws::String, Aws::String>& value) { SetCustomConfig(value); return *this;}
125 
126     /**
127      * <p>Custom config to be sent to client.</p>
128      */
WithCustomConfig(Aws::Map<Aws::String,Aws::String> && value)129     inline InAppTemplateRequest& WithCustomConfig(Aws::Map<Aws::String, Aws::String>&& value) { SetCustomConfig(std::move(value)); return *this;}
130 
131     /**
132      * <p>Custom config to be sent to client.</p>
133      */
AddCustomConfig(const Aws::String & key,const Aws::String & value)134     inline InAppTemplateRequest& AddCustomConfig(const Aws::String& key, const Aws::String& value) { m_customConfigHasBeenSet = true; m_customConfig.emplace(key, value); return *this; }
135 
136     /**
137      * <p>Custom config to be sent to client.</p>
138      */
AddCustomConfig(Aws::String && key,const Aws::String & value)139     inline InAppTemplateRequest& AddCustomConfig(Aws::String&& key, const Aws::String& value) { m_customConfigHasBeenSet = true; m_customConfig.emplace(std::move(key), value); return *this; }
140 
141     /**
142      * <p>Custom config to be sent to client.</p>
143      */
AddCustomConfig(const Aws::String & key,Aws::String && value)144     inline InAppTemplateRequest& AddCustomConfig(const Aws::String& key, Aws::String&& value) { m_customConfigHasBeenSet = true; m_customConfig.emplace(key, std::move(value)); return *this; }
145 
146     /**
147      * <p>Custom config to be sent to client.</p>
148      */
AddCustomConfig(Aws::String && key,Aws::String && value)149     inline InAppTemplateRequest& AddCustomConfig(Aws::String&& key, Aws::String&& value) { m_customConfigHasBeenSet = true; m_customConfig.emplace(std::move(key), std::move(value)); return *this; }
150 
151     /**
152      * <p>Custom config to be sent to client.</p>
153      */
AddCustomConfig(const char * key,Aws::String && value)154     inline InAppTemplateRequest& AddCustomConfig(const char* key, Aws::String&& value) { m_customConfigHasBeenSet = true; m_customConfig.emplace(key, std::move(value)); return *this; }
155 
156     /**
157      * <p>Custom config to be sent to client.</p>
158      */
AddCustomConfig(Aws::String && key,const char * value)159     inline InAppTemplateRequest& AddCustomConfig(Aws::String&& key, const char* value) { m_customConfigHasBeenSet = true; m_customConfig.emplace(std::move(key), value); return *this; }
160 
161     /**
162      * <p>Custom config to be sent to client.</p>
163      */
AddCustomConfig(const char * key,const char * value)164     inline InAppTemplateRequest& AddCustomConfig(const char* key, const char* value) { m_customConfigHasBeenSet = true; m_customConfig.emplace(key, value); return *this; }
165 
166 
167     /**
168      * <p>The layout of the message.</p>
169      */
GetLayout()170     inline const Layout& GetLayout() const{ return m_layout; }
171 
172     /**
173      * <p>The layout of the message.</p>
174      */
LayoutHasBeenSet()175     inline bool LayoutHasBeenSet() const { return m_layoutHasBeenSet; }
176 
177     /**
178      * <p>The layout of the message.</p>
179      */
SetLayout(const Layout & value)180     inline void SetLayout(const Layout& value) { m_layoutHasBeenSet = true; m_layout = value; }
181 
182     /**
183      * <p>The layout of the message.</p>
184      */
SetLayout(Layout && value)185     inline void SetLayout(Layout&& value) { m_layoutHasBeenSet = true; m_layout = std::move(value); }
186 
187     /**
188      * <p>The layout of the message.</p>
189      */
WithLayout(const Layout & value)190     inline InAppTemplateRequest& WithLayout(const Layout& value) { SetLayout(value); return *this;}
191 
192     /**
193      * <p>The layout of the message.</p>
194      */
WithLayout(Layout && value)195     inline InAppTemplateRequest& WithLayout(Layout&& value) { SetLayout(std::move(value)); return *this;}
196 
197 
198     /**
199      * <p>A string-to-string map of key-value pairs that defines the tags to associate
200      * with the message template. Each tag consists of a required tag key and an
201      * associated tag value.</p>
202      */
GetTags()203     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
204 
205     /**
206      * <p>A string-to-string map of key-value pairs that defines the tags to associate
207      * with the message template. Each tag consists of a required tag key and an
208      * associated tag value.</p>
209      */
TagsHasBeenSet()210     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
211 
212     /**
213      * <p>A string-to-string map of key-value pairs that defines the tags to associate
214      * with the message template. Each tag consists of a required tag key and an
215      * associated tag value.</p>
216      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)217     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
218 
219     /**
220      * <p>A string-to-string map of key-value pairs that defines the tags to associate
221      * with the message template. Each tag consists of a required tag key and an
222      * associated tag value.</p>
223      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)224     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
225 
226     /**
227      * <p>A string-to-string map of key-value pairs that defines the tags to associate
228      * with the message template. Each tag consists of a required tag key and an
229      * associated tag value.</p>
230      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)231     inline InAppTemplateRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
232 
233     /**
234      * <p>A string-to-string map of key-value pairs that defines the tags to associate
235      * with the message template. Each tag consists of a required tag key and an
236      * associated tag value.</p>
237      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)238     inline InAppTemplateRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
239 
240     /**
241      * <p>A string-to-string map of key-value pairs that defines the tags to associate
242      * with the message template. Each tag consists of a required tag key and an
243      * associated tag value.</p>
244      */
AddTags(const Aws::String & key,const Aws::String & value)245     inline InAppTemplateRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
246 
247     /**
248      * <p>A string-to-string map of key-value pairs that defines the tags to associate
249      * with the message template. Each tag consists of a required tag key and an
250      * associated tag value.</p>
251      */
AddTags(Aws::String && key,const Aws::String & value)252     inline InAppTemplateRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
253 
254     /**
255      * <p>A string-to-string map of key-value pairs that defines the tags to associate
256      * with the message template. Each tag consists of a required tag key and an
257      * associated tag value.</p>
258      */
AddTags(const Aws::String & key,Aws::String && value)259     inline InAppTemplateRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
260 
261     /**
262      * <p>A string-to-string map of key-value pairs that defines the tags to associate
263      * with the message template. Each tag consists of a required tag key and an
264      * associated tag value.</p>
265      */
AddTags(Aws::String && key,Aws::String && value)266     inline InAppTemplateRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
267 
268     /**
269      * <p>A string-to-string map of key-value pairs that defines the tags to associate
270      * with the message template. Each tag consists of a required tag key and an
271      * associated tag value.</p>
272      */
AddTags(const char * key,Aws::String && value)273     inline InAppTemplateRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
274 
275     /**
276      * <p>A string-to-string map of key-value pairs that defines the tags to associate
277      * with the message template. Each tag consists of a required tag key and an
278      * associated tag value.</p>
279      */
AddTags(Aws::String && key,const char * value)280     inline InAppTemplateRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
281 
282     /**
283      * <p>A string-to-string map of key-value pairs that defines the tags to associate
284      * with the message template. Each tag consists of a required tag key and an
285      * associated tag value.</p>
286      */
AddTags(const char * key,const char * value)287     inline InAppTemplateRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
288 
289 
290     /**
291      * <p>The description of the template.</p>
292      */
GetTemplateDescription()293     inline const Aws::String& GetTemplateDescription() const{ return m_templateDescription; }
294 
295     /**
296      * <p>The description of the template.</p>
297      */
TemplateDescriptionHasBeenSet()298     inline bool TemplateDescriptionHasBeenSet() const { return m_templateDescriptionHasBeenSet; }
299 
300     /**
301      * <p>The description of the template.</p>
302      */
SetTemplateDescription(const Aws::String & value)303     inline void SetTemplateDescription(const Aws::String& value) { m_templateDescriptionHasBeenSet = true; m_templateDescription = value; }
304 
305     /**
306      * <p>The description of the template.</p>
307      */
SetTemplateDescription(Aws::String && value)308     inline void SetTemplateDescription(Aws::String&& value) { m_templateDescriptionHasBeenSet = true; m_templateDescription = std::move(value); }
309 
310     /**
311      * <p>The description of the template.</p>
312      */
SetTemplateDescription(const char * value)313     inline void SetTemplateDescription(const char* value) { m_templateDescriptionHasBeenSet = true; m_templateDescription.assign(value); }
314 
315     /**
316      * <p>The description of the template.</p>
317      */
WithTemplateDescription(const Aws::String & value)318     inline InAppTemplateRequest& WithTemplateDescription(const Aws::String& value) { SetTemplateDescription(value); return *this;}
319 
320     /**
321      * <p>The description of the template.</p>
322      */
WithTemplateDescription(Aws::String && value)323     inline InAppTemplateRequest& WithTemplateDescription(Aws::String&& value) { SetTemplateDescription(std::move(value)); return *this;}
324 
325     /**
326      * <p>The description of the template.</p>
327      */
WithTemplateDescription(const char * value)328     inline InAppTemplateRequest& WithTemplateDescription(const char* value) { SetTemplateDescription(value); return *this;}
329 
330   private:
331 
332     Aws::Vector<InAppMessageContent> m_content;
333     bool m_contentHasBeenSet;
334 
335     Aws::Map<Aws::String, Aws::String> m_customConfig;
336     bool m_customConfigHasBeenSet;
337 
338     Layout m_layout;
339     bool m_layoutHasBeenSet;
340 
341     Aws::Map<Aws::String, Aws::String> m_tags;
342     bool m_tagsHasBeenSet;
343 
344     Aws::String m_templateDescription;
345     bool m_templateDescriptionHasBeenSet;
346   };
347 
348 } // namespace Model
349 } // namespace Pinpoint
350 } // namespace Aws
351