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/core/utils/memory/stl/AWSMap.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace Pinpoint
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Specifies the content and settings for a message template that can be used in
29    * messages that are sent through the voice channel.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/VoiceTemplateRequest">AWS
31    * API Reference</a></p>
32    */
33   class AWS_PINPOINT_API VoiceTemplateRequest
34   {
35   public:
36     VoiceTemplateRequest();
37     VoiceTemplateRequest(Aws::Utils::Json::JsonView jsonValue);
38     VoiceTemplateRequest& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The text of the script to use in messages that are based on the message
44      * template, in plain text format.</p>
45      */
GetBody()46     inline const Aws::String& GetBody() const{ return m_body; }
47 
48     /**
49      * <p>The text of the script to use in messages that are based on the message
50      * template, in plain text format.</p>
51      */
BodyHasBeenSet()52     inline bool BodyHasBeenSet() const { return m_bodyHasBeenSet; }
53 
54     /**
55      * <p>The text of the script to use in messages that are based on the message
56      * template, in plain text format.</p>
57      */
SetBody(const Aws::String & value)58     inline void SetBody(const Aws::String& value) { m_bodyHasBeenSet = true; m_body = value; }
59 
60     /**
61      * <p>The text of the script to use in messages that are based on the message
62      * template, in plain text format.</p>
63      */
SetBody(Aws::String && value)64     inline void SetBody(Aws::String&& value) { m_bodyHasBeenSet = true; m_body = std::move(value); }
65 
66     /**
67      * <p>The text of the script to use in messages that are based on the message
68      * template, in plain text format.</p>
69      */
SetBody(const char * value)70     inline void SetBody(const char* value) { m_bodyHasBeenSet = true; m_body.assign(value); }
71 
72     /**
73      * <p>The text of the script to use in messages that are based on the message
74      * template, in plain text format.</p>
75      */
WithBody(const Aws::String & value)76     inline VoiceTemplateRequest& WithBody(const Aws::String& value) { SetBody(value); return *this;}
77 
78     /**
79      * <p>The text of the script to use in messages that are based on the message
80      * template, in plain text format.</p>
81      */
WithBody(Aws::String && value)82     inline VoiceTemplateRequest& WithBody(Aws::String&& value) { SetBody(std::move(value)); return *this;}
83 
84     /**
85      * <p>The text of the script to use in messages that are based on the message
86      * template, in plain text format.</p>
87      */
WithBody(const char * value)88     inline VoiceTemplateRequest& WithBody(const char* value) { SetBody(value); return *this;}
89 
90 
91     /**
92      * <p>A JSON object that specifies the default values to use for message variables
93      * in the message template. This object is a set of key-value pairs. Each key
94      * defines a message variable in the template. The corresponding value defines the
95      * default value for that variable. When you create a message that's based on the
96      * template, you can override these defaults with message-specific and
97      * address-specific variables and values.</p>
98      */
GetDefaultSubstitutions()99     inline const Aws::String& GetDefaultSubstitutions() const{ return m_defaultSubstitutions; }
100 
101     /**
102      * <p>A JSON object that specifies the default values to use for message variables
103      * in the message template. This object is a set of key-value pairs. Each key
104      * defines a message variable in the template. The corresponding value defines the
105      * default value for that variable. When you create a message that's based on the
106      * template, you can override these defaults with message-specific and
107      * address-specific variables and values.</p>
108      */
DefaultSubstitutionsHasBeenSet()109     inline bool DefaultSubstitutionsHasBeenSet() const { return m_defaultSubstitutionsHasBeenSet; }
110 
111     /**
112      * <p>A JSON object that specifies the default values to use for message variables
113      * in the message template. This object is a set of key-value pairs. Each key
114      * defines a message variable in the template. The corresponding value defines the
115      * default value for that variable. When you create a message that's based on the
116      * template, you can override these defaults with message-specific and
117      * address-specific variables and values.</p>
118      */
SetDefaultSubstitutions(const Aws::String & value)119     inline void SetDefaultSubstitutions(const Aws::String& value) { m_defaultSubstitutionsHasBeenSet = true; m_defaultSubstitutions = value; }
120 
121     /**
122      * <p>A JSON object that specifies the default values to use for message variables
123      * in the message template. This object is a set of key-value pairs. Each key
124      * defines a message variable in the template. The corresponding value defines the
125      * default value for that variable. When you create a message that's based on the
126      * template, you can override these defaults with message-specific and
127      * address-specific variables and values.</p>
128      */
SetDefaultSubstitutions(Aws::String && value)129     inline void SetDefaultSubstitutions(Aws::String&& value) { m_defaultSubstitutionsHasBeenSet = true; m_defaultSubstitutions = std::move(value); }
130 
131     /**
132      * <p>A JSON object that specifies the default values to use for message variables
133      * in the message template. This object is a set of key-value pairs. Each key
134      * defines a message variable in the template. The corresponding value defines the
135      * default value for that variable. When you create a message that's based on the
136      * template, you can override these defaults with message-specific and
137      * address-specific variables and values.</p>
138      */
SetDefaultSubstitutions(const char * value)139     inline void SetDefaultSubstitutions(const char* value) { m_defaultSubstitutionsHasBeenSet = true; m_defaultSubstitutions.assign(value); }
140 
141     /**
142      * <p>A JSON object that specifies the default values to use for message variables
143      * in the message template. This object is a set of key-value pairs. Each key
144      * defines a message variable in the template. The corresponding value defines the
145      * default value for that variable. When you create a message that's based on the
146      * template, you can override these defaults with message-specific and
147      * address-specific variables and values.</p>
148      */
WithDefaultSubstitutions(const Aws::String & value)149     inline VoiceTemplateRequest& WithDefaultSubstitutions(const Aws::String& value) { SetDefaultSubstitutions(value); return *this;}
150 
151     /**
152      * <p>A JSON object that specifies the default values to use for message variables
153      * in the message template. This object is a set of key-value pairs. Each key
154      * defines a message variable in the template. The corresponding value defines the
155      * default value for that variable. When you create a message that's based on the
156      * template, you can override these defaults with message-specific and
157      * address-specific variables and values.</p>
158      */
WithDefaultSubstitutions(Aws::String && value)159     inline VoiceTemplateRequest& WithDefaultSubstitutions(Aws::String&& value) { SetDefaultSubstitutions(std::move(value)); return *this;}
160 
161     /**
162      * <p>A JSON object that specifies the default values to use for message variables
163      * in the message template. This object is a set of key-value pairs. Each key
164      * defines a message variable in the template. The corresponding value defines the
165      * default value for that variable. When you create a message that's based on the
166      * template, you can override these defaults with message-specific and
167      * address-specific variables and values.</p>
168      */
WithDefaultSubstitutions(const char * value)169     inline VoiceTemplateRequest& WithDefaultSubstitutions(const char* value) { SetDefaultSubstitutions(value); return *this;}
170 
171 
172     /**
173      * <p>The code for the language to use when synthesizing the text of the script in
174      * messages that are based on the message template. For a list of supported
175      * languages and the code for each one, see the <a
176      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
177      * Developer Guide</a>.</p>
178      */
GetLanguageCode()179     inline const Aws::String& GetLanguageCode() const{ return m_languageCode; }
180 
181     /**
182      * <p>The code for the language to use when synthesizing the text of the script in
183      * messages that are based on the message template. For a list of supported
184      * languages and the code for each one, see the <a
185      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
186      * Developer Guide</a>.</p>
187      */
LanguageCodeHasBeenSet()188     inline bool LanguageCodeHasBeenSet() const { return m_languageCodeHasBeenSet; }
189 
190     /**
191      * <p>The code for the language to use when synthesizing the text of the script in
192      * messages that are based on the message template. For a list of supported
193      * languages and the code for each one, see the <a
194      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
195      * Developer Guide</a>.</p>
196      */
SetLanguageCode(const Aws::String & value)197     inline void SetLanguageCode(const Aws::String& value) { m_languageCodeHasBeenSet = true; m_languageCode = value; }
198 
199     /**
200      * <p>The code for the language to use when synthesizing the text of the script in
201      * messages that are based on the message template. For a list of supported
202      * languages and the code for each one, see the <a
203      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
204      * Developer Guide</a>.</p>
205      */
SetLanguageCode(Aws::String && value)206     inline void SetLanguageCode(Aws::String&& value) { m_languageCodeHasBeenSet = true; m_languageCode = std::move(value); }
207 
208     /**
209      * <p>The code for the language to use when synthesizing the text of the script in
210      * messages that are based on the message template. For a list of supported
211      * languages and the code for each one, see the <a
212      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
213      * Developer Guide</a>.</p>
214      */
SetLanguageCode(const char * value)215     inline void SetLanguageCode(const char* value) { m_languageCodeHasBeenSet = true; m_languageCode.assign(value); }
216 
217     /**
218      * <p>The code for the language to use when synthesizing the text of the script in
219      * messages that are based on the message template. For a list of supported
220      * languages and the code for each one, see the <a
221      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
222      * Developer Guide</a>.</p>
223      */
WithLanguageCode(const Aws::String & value)224     inline VoiceTemplateRequest& WithLanguageCode(const Aws::String& value) { SetLanguageCode(value); return *this;}
225 
226     /**
227      * <p>The code for the language to use when synthesizing the text of the script in
228      * messages that are based on the message template. For a list of supported
229      * languages and the code for each one, see the <a
230      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
231      * Developer Guide</a>.</p>
232      */
WithLanguageCode(Aws::String && value)233     inline VoiceTemplateRequest& WithLanguageCode(Aws::String&& value) { SetLanguageCode(std::move(value)); return *this;}
234 
235     /**
236      * <p>The code for the language to use when synthesizing the text of the script in
237      * messages that are based on the message template. For a list of supported
238      * languages and the code for each one, see the <a
239      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
240      * Developer Guide</a>.</p>
241      */
WithLanguageCode(const char * value)242     inline VoiceTemplateRequest& WithLanguageCode(const char* value) { SetLanguageCode(value); return *this;}
243 
244 
245     /**
246      * <p>A string-to-string map of key-value pairs that defines the tags to associate
247      * with the message template. Each tag consists of a required tag key and an
248      * associated tag value.</p>
249      */
GetTags()250     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
251 
252     /**
253      * <p>A string-to-string map of key-value pairs that defines the tags to associate
254      * with the message template. Each tag consists of a required tag key and an
255      * associated tag value.</p>
256      */
TagsHasBeenSet()257     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
258 
259     /**
260      * <p>A string-to-string map of key-value pairs that defines the tags to associate
261      * with the message template. Each tag consists of a required tag key and an
262      * associated tag value.</p>
263      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)264     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
265 
266     /**
267      * <p>A string-to-string map of key-value pairs that defines the tags to associate
268      * with the message template. Each tag consists of a required tag key and an
269      * associated tag value.</p>
270      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)271     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
272 
273     /**
274      * <p>A string-to-string map of key-value pairs that defines the tags to associate
275      * with the message template. Each tag consists of a required tag key and an
276      * associated tag value.</p>
277      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)278     inline VoiceTemplateRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
279 
280     /**
281      * <p>A string-to-string map of key-value pairs that defines the tags to associate
282      * with the message template. Each tag consists of a required tag key and an
283      * associated tag value.</p>
284      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)285     inline VoiceTemplateRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
286 
287     /**
288      * <p>A string-to-string map of key-value pairs that defines the tags to associate
289      * with the message template. Each tag consists of a required tag key and an
290      * associated tag value.</p>
291      */
AddTags(const Aws::String & key,const Aws::String & value)292     inline VoiceTemplateRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
293 
294     /**
295      * <p>A string-to-string map of key-value pairs that defines the tags to associate
296      * with the message template. Each tag consists of a required tag key and an
297      * associated tag value.</p>
298      */
AddTags(Aws::String && key,const Aws::String & value)299     inline VoiceTemplateRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
300 
301     /**
302      * <p>A string-to-string map of key-value pairs that defines the tags to associate
303      * with the message template. Each tag consists of a required tag key and an
304      * associated tag value.</p>
305      */
AddTags(const Aws::String & key,Aws::String && value)306     inline VoiceTemplateRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
307 
308     /**
309      * <p>A string-to-string map of key-value pairs that defines the tags to associate
310      * with the message template. Each tag consists of a required tag key and an
311      * associated tag value.</p>
312      */
AddTags(Aws::String && key,Aws::String && value)313     inline VoiceTemplateRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
314 
315     /**
316      * <p>A string-to-string map of key-value pairs that defines the tags to associate
317      * with the message template. Each tag consists of a required tag key and an
318      * associated tag value.</p>
319      */
AddTags(const char * key,Aws::String && value)320     inline VoiceTemplateRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
321 
322     /**
323      * <p>A string-to-string map of key-value pairs that defines the tags to associate
324      * with the message template. Each tag consists of a required tag key and an
325      * associated tag value.</p>
326      */
AddTags(Aws::String && key,const char * value)327     inline VoiceTemplateRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
328 
329     /**
330      * <p>A string-to-string map of key-value pairs that defines the tags to associate
331      * with the message template. Each tag consists of a required tag key and an
332      * associated tag value.</p>
333      */
AddTags(const char * key,const char * value)334     inline VoiceTemplateRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
335 
336 
337     /**
338      * <p>A custom description of the message template.</p>
339      */
GetTemplateDescription()340     inline const Aws::String& GetTemplateDescription() const{ return m_templateDescription; }
341 
342     /**
343      * <p>A custom description of the message template.</p>
344      */
TemplateDescriptionHasBeenSet()345     inline bool TemplateDescriptionHasBeenSet() const { return m_templateDescriptionHasBeenSet; }
346 
347     /**
348      * <p>A custom description of the message template.</p>
349      */
SetTemplateDescription(const Aws::String & value)350     inline void SetTemplateDescription(const Aws::String& value) { m_templateDescriptionHasBeenSet = true; m_templateDescription = value; }
351 
352     /**
353      * <p>A custom description of the message template.</p>
354      */
SetTemplateDescription(Aws::String && value)355     inline void SetTemplateDescription(Aws::String&& value) { m_templateDescriptionHasBeenSet = true; m_templateDescription = std::move(value); }
356 
357     /**
358      * <p>A custom description of the message template.</p>
359      */
SetTemplateDescription(const char * value)360     inline void SetTemplateDescription(const char* value) { m_templateDescriptionHasBeenSet = true; m_templateDescription.assign(value); }
361 
362     /**
363      * <p>A custom description of the message template.</p>
364      */
WithTemplateDescription(const Aws::String & value)365     inline VoiceTemplateRequest& WithTemplateDescription(const Aws::String& value) { SetTemplateDescription(value); return *this;}
366 
367     /**
368      * <p>A custom description of the message template.</p>
369      */
WithTemplateDescription(Aws::String && value)370     inline VoiceTemplateRequest& WithTemplateDescription(Aws::String&& value) { SetTemplateDescription(std::move(value)); return *this;}
371 
372     /**
373      * <p>A custom description of the message template.</p>
374      */
WithTemplateDescription(const char * value)375     inline VoiceTemplateRequest& WithTemplateDescription(const char* value) { SetTemplateDescription(value); return *this;}
376 
377 
378     /**
379      * <p>The name of the voice to use when delivering messages that are based on the
380      * message template. For a list of supported voices, see the <a
381      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
382      * Developer Guide</a>.</p>
383      */
GetVoiceId()384     inline const Aws::String& GetVoiceId() const{ return m_voiceId; }
385 
386     /**
387      * <p>The name of the voice to use when delivering messages that are based on the
388      * message template. For a list of supported voices, see the <a
389      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
390      * Developer Guide</a>.</p>
391      */
VoiceIdHasBeenSet()392     inline bool VoiceIdHasBeenSet() const { return m_voiceIdHasBeenSet; }
393 
394     /**
395      * <p>The name of the voice to use when delivering messages that are based on the
396      * message template. For a list of supported voices, see the <a
397      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
398      * Developer Guide</a>.</p>
399      */
SetVoiceId(const Aws::String & value)400     inline void SetVoiceId(const Aws::String& value) { m_voiceIdHasBeenSet = true; m_voiceId = value; }
401 
402     /**
403      * <p>The name of the voice to use when delivering messages that are based on the
404      * message template. For a list of supported voices, see the <a
405      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
406      * Developer Guide</a>.</p>
407      */
SetVoiceId(Aws::String && value)408     inline void SetVoiceId(Aws::String&& value) { m_voiceIdHasBeenSet = true; m_voiceId = std::move(value); }
409 
410     /**
411      * <p>The name of the voice to use when delivering messages that are based on the
412      * message template. For a list of supported voices, see the <a
413      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
414      * Developer Guide</a>.</p>
415      */
SetVoiceId(const char * value)416     inline void SetVoiceId(const char* value) { m_voiceIdHasBeenSet = true; m_voiceId.assign(value); }
417 
418     /**
419      * <p>The name of the voice to use when delivering messages that are based on the
420      * message template. For a list of supported voices, see the <a
421      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
422      * Developer Guide</a>.</p>
423      */
WithVoiceId(const Aws::String & value)424     inline VoiceTemplateRequest& WithVoiceId(const Aws::String& value) { SetVoiceId(value); return *this;}
425 
426     /**
427      * <p>The name of the voice to use when delivering messages that are based on the
428      * message template. For a list of supported voices, see the <a
429      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
430      * Developer Guide</a>.</p>
431      */
WithVoiceId(Aws::String && value)432     inline VoiceTemplateRequest& WithVoiceId(Aws::String&& value) { SetVoiceId(std::move(value)); return *this;}
433 
434     /**
435      * <p>The name of the voice to use when delivering messages that are based on the
436      * message template. For a list of supported voices, see the <a
437      * href="https://docs.aws.amazon.com/polly/latest/dg/what-is.html">Amazon Polly
438      * Developer Guide</a>.</p>
439      */
WithVoiceId(const char * value)440     inline VoiceTemplateRequest& WithVoiceId(const char* value) { SetVoiceId(value); return *this;}
441 
442   private:
443 
444     Aws::String m_body;
445     bool m_bodyHasBeenSet;
446 
447     Aws::String m_defaultSubstitutions;
448     bool m_defaultSubstitutionsHasBeenSet;
449 
450     Aws::String m_languageCode;
451     bool m_languageCodeHasBeenSet;
452 
453     Aws::Map<Aws::String, Aws::String> m_tags;
454     bool m_tagsHasBeenSet;
455 
456     Aws::String m_templateDescription;
457     bool m_templateDescriptionHasBeenSet;
458 
459     Aws::String m_voiceId;
460     bool m_voiceIdHasBeenSet;
461   };
462 
463 } // namespace Model
464 } // namespace Pinpoint
465 } // namespace Aws
466