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/JourneyEmailMessage.h>
9 #include <aws/core/utils/memory/stl/AWSString.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 settings for an email activity in a journey. This type of
29    * activity sends an email message to participants.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/EmailMessageActivity">AWS
31    * API Reference</a></p>
32    */
33   class AWS_PINPOINT_API EmailMessageActivity
34   {
35   public:
36     EmailMessageActivity();
37     EmailMessageActivity(Aws::Utils::Json::JsonView jsonValue);
38     EmailMessageActivity& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>Specifies the sender address for an email message that's sent to participants
44      * in the journey.</p>
45      */
GetMessageConfig()46     inline const JourneyEmailMessage& GetMessageConfig() const{ return m_messageConfig; }
47 
48     /**
49      * <p>Specifies the sender address for an email message that's sent to participants
50      * in the journey.</p>
51      */
MessageConfigHasBeenSet()52     inline bool MessageConfigHasBeenSet() const { return m_messageConfigHasBeenSet; }
53 
54     /**
55      * <p>Specifies the sender address for an email message that's sent to participants
56      * in the journey.</p>
57      */
SetMessageConfig(const JourneyEmailMessage & value)58     inline void SetMessageConfig(const JourneyEmailMessage& value) { m_messageConfigHasBeenSet = true; m_messageConfig = value; }
59 
60     /**
61      * <p>Specifies the sender address for an email message that's sent to participants
62      * in the journey.</p>
63      */
SetMessageConfig(JourneyEmailMessage && value)64     inline void SetMessageConfig(JourneyEmailMessage&& value) { m_messageConfigHasBeenSet = true; m_messageConfig = std::move(value); }
65 
66     /**
67      * <p>Specifies the sender address for an email message that's sent to participants
68      * in the journey.</p>
69      */
WithMessageConfig(const JourneyEmailMessage & value)70     inline EmailMessageActivity& WithMessageConfig(const JourneyEmailMessage& value) { SetMessageConfig(value); return *this;}
71 
72     /**
73      * <p>Specifies the sender address for an email message that's sent to participants
74      * in the journey.</p>
75      */
WithMessageConfig(JourneyEmailMessage && value)76     inline EmailMessageActivity& WithMessageConfig(JourneyEmailMessage&& value) { SetMessageConfig(std::move(value)); return *this;}
77 
78 
79     /**
80      * <p>The unique identifier for the next activity to perform, after the message is
81      * sent.</p>
82      */
GetNextActivity()83     inline const Aws::String& GetNextActivity() const{ return m_nextActivity; }
84 
85     /**
86      * <p>The unique identifier for the next activity to perform, after the message is
87      * sent.</p>
88      */
NextActivityHasBeenSet()89     inline bool NextActivityHasBeenSet() const { return m_nextActivityHasBeenSet; }
90 
91     /**
92      * <p>The unique identifier for the next activity to perform, after the message is
93      * sent.</p>
94      */
SetNextActivity(const Aws::String & value)95     inline void SetNextActivity(const Aws::String& value) { m_nextActivityHasBeenSet = true; m_nextActivity = value; }
96 
97     /**
98      * <p>The unique identifier for the next activity to perform, after the message is
99      * sent.</p>
100      */
SetNextActivity(Aws::String && value)101     inline void SetNextActivity(Aws::String&& value) { m_nextActivityHasBeenSet = true; m_nextActivity = std::move(value); }
102 
103     /**
104      * <p>The unique identifier for the next activity to perform, after the message is
105      * sent.</p>
106      */
SetNextActivity(const char * value)107     inline void SetNextActivity(const char* value) { m_nextActivityHasBeenSet = true; m_nextActivity.assign(value); }
108 
109     /**
110      * <p>The unique identifier for the next activity to perform, after the message is
111      * sent.</p>
112      */
WithNextActivity(const Aws::String & value)113     inline EmailMessageActivity& WithNextActivity(const Aws::String& value) { SetNextActivity(value); return *this;}
114 
115     /**
116      * <p>The unique identifier for the next activity to perform, after the message is
117      * sent.</p>
118      */
WithNextActivity(Aws::String && value)119     inline EmailMessageActivity& WithNextActivity(Aws::String&& value) { SetNextActivity(std::move(value)); return *this;}
120 
121     /**
122      * <p>The unique identifier for the next activity to perform, after the message is
123      * sent.</p>
124      */
WithNextActivity(const char * value)125     inline EmailMessageActivity& WithNextActivity(const char* value) { SetNextActivity(value); return *this;}
126 
127 
128     /**
129      * <p>The name of the email message template to use for the message. If specified,
130      * this value must match the name of an existing message template.</p>
131      */
GetTemplateName()132     inline const Aws::String& GetTemplateName() const{ return m_templateName; }
133 
134     /**
135      * <p>The name of the email message template to use for the message. If specified,
136      * this value must match the name of an existing message template.</p>
137      */
TemplateNameHasBeenSet()138     inline bool TemplateNameHasBeenSet() const { return m_templateNameHasBeenSet; }
139 
140     /**
141      * <p>The name of the email message template to use for the message. If specified,
142      * this value must match the name of an existing message template.</p>
143      */
SetTemplateName(const Aws::String & value)144     inline void SetTemplateName(const Aws::String& value) { m_templateNameHasBeenSet = true; m_templateName = value; }
145 
146     /**
147      * <p>The name of the email message template to use for the message. If specified,
148      * this value must match the name of an existing message template.</p>
149      */
SetTemplateName(Aws::String && value)150     inline void SetTemplateName(Aws::String&& value) { m_templateNameHasBeenSet = true; m_templateName = std::move(value); }
151 
152     /**
153      * <p>The name of the email message template to use for the message. If specified,
154      * this value must match the name of an existing message template.</p>
155      */
SetTemplateName(const char * value)156     inline void SetTemplateName(const char* value) { m_templateNameHasBeenSet = true; m_templateName.assign(value); }
157 
158     /**
159      * <p>The name of the email message template to use for the message. If specified,
160      * this value must match the name of an existing message template.</p>
161      */
WithTemplateName(const Aws::String & value)162     inline EmailMessageActivity& WithTemplateName(const Aws::String& value) { SetTemplateName(value); return *this;}
163 
164     /**
165      * <p>The name of the email message template to use for the message. If specified,
166      * this value must match the name of an existing message template.</p>
167      */
WithTemplateName(Aws::String && value)168     inline EmailMessageActivity& WithTemplateName(Aws::String&& value) { SetTemplateName(std::move(value)); return *this;}
169 
170     /**
171      * <p>The name of the email message template to use for the message. If specified,
172      * this value must match the name of an existing message template.</p>
173      */
WithTemplateName(const char * value)174     inline EmailMessageActivity& WithTemplateName(const char* value) { SetTemplateName(value); return *this;}
175 
176 
177     /**
178      * <p>The unique identifier for the version of the email template to use for the
179      * message. If specified, this value must match the identifier for an existing
180      * template version. To retrieve a list of versions and version identifiers for a
181      * template, use the <link
182      * linkend="templates-template-name-template-type-versions">Template
183      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
184      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
185      * version</i> is typically the version of a template that's been most recently
186      * reviewed and approved for use, depending on your workflow. It isn't necessarily
187      * the latest version of a template.</p>
188      */
GetTemplateVersion()189     inline const Aws::String& GetTemplateVersion() const{ return m_templateVersion; }
190 
191     /**
192      * <p>The unique identifier for the version of the email template to use for the
193      * message. If specified, this value must match the identifier for an existing
194      * template version. To retrieve a list of versions and version identifiers for a
195      * template, use the <link
196      * linkend="templates-template-name-template-type-versions">Template
197      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
198      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
199      * version</i> is typically the version of a template that's been most recently
200      * reviewed and approved for use, depending on your workflow. It isn't necessarily
201      * the latest version of a template.</p>
202      */
TemplateVersionHasBeenSet()203     inline bool TemplateVersionHasBeenSet() const { return m_templateVersionHasBeenSet; }
204 
205     /**
206      * <p>The unique identifier for the version of the email template to use for the
207      * message. If specified, this value must match the identifier for an existing
208      * template version. To retrieve a list of versions and version identifiers for a
209      * template, use the <link
210      * linkend="templates-template-name-template-type-versions">Template
211      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
212      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
213      * version</i> is typically the version of a template that's been most recently
214      * reviewed and approved for use, depending on your workflow. It isn't necessarily
215      * the latest version of a template.</p>
216      */
SetTemplateVersion(const Aws::String & value)217     inline void SetTemplateVersion(const Aws::String& value) { m_templateVersionHasBeenSet = true; m_templateVersion = value; }
218 
219     /**
220      * <p>The unique identifier for the version of the email template to use for the
221      * message. If specified, this value must match the identifier for an existing
222      * template version. To retrieve a list of versions and version identifiers for a
223      * template, use the <link
224      * linkend="templates-template-name-template-type-versions">Template
225      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
226      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
227      * version</i> is typically the version of a template that's been most recently
228      * reviewed and approved for use, depending on your workflow. It isn't necessarily
229      * the latest version of a template.</p>
230      */
SetTemplateVersion(Aws::String && value)231     inline void SetTemplateVersion(Aws::String&& value) { m_templateVersionHasBeenSet = true; m_templateVersion = std::move(value); }
232 
233     /**
234      * <p>The unique identifier for the version of the email template to use for the
235      * message. If specified, this value must match the identifier for an existing
236      * template version. To retrieve a list of versions and version identifiers for a
237      * template, use the <link
238      * linkend="templates-template-name-template-type-versions">Template
239      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
240      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
241      * version</i> is typically the version of a template that's been most recently
242      * reviewed and approved for use, depending on your workflow. It isn't necessarily
243      * the latest version of a template.</p>
244      */
SetTemplateVersion(const char * value)245     inline void SetTemplateVersion(const char* value) { m_templateVersionHasBeenSet = true; m_templateVersion.assign(value); }
246 
247     /**
248      * <p>The unique identifier for the version of the email template to use for the
249      * message. If specified, this value must match the identifier for an existing
250      * template version. To retrieve a list of versions and version identifiers for a
251      * template, use the <link
252      * linkend="templates-template-name-template-type-versions">Template
253      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
254      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
255      * version</i> is typically the version of a template that's been most recently
256      * reviewed and approved for use, depending on your workflow. It isn't necessarily
257      * the latest version of a template.</p>
258      */
WithTemplateVersion(const Aws::String & value)259     inline EmailMessageActivity& WithTemplateVersion(const Aws::String& value) { SetTemplateVersion(value); return *this;}
260 
261     /**
262      * <p>The unique identifier for the version of the email template to use for the
263      * message. If specified, this value must match the identifier for an existing
264      * template version. To retrieve a list of versions and version identifiers for a
265      * template, use the <link
266      * linkend="templates-template-name-template-type-versions">Template
267      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
268      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
269      * version</i> is typically the version of a template that's been most recently
270      * reviewed and approved for use, depending on your workflow. It isn't necessarily
271      * the latest version of a template.</p>
272      */
WithTemplateVersion(Aws::String && value)273     inline EmailMessageActivity& WithTemplateVersion(Aws::String&& value) { SetTemplateVersion(std::move(value)); return *this;}
274 
275     /**
276      * <p>The unique identifier for the version of the email template to use for the
277      * message. If specified, this value must match the identifier for an existing
278      * template version. To retrieve a list of versions and version identifiers for a
279      * template, use the <link
280      * linkend="templates-template-name-template-type-versions">Template
281      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
282      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
283      * version</i> is typically the version of a template that's been most recently
284      * reviewed and approved for use, depending on your workflow. It isn't necessarily
285      * the latest version of a template.</p>
286      */
WithTemplateVersion(const char * value)287     inline EmailMessageActivity& WithTemplateVersion(const char* value) { SetTemplateVersion(value); return *this;}
288 
289   private:
290 
291     JourneyEmailMessage m_messageConfig;
292     bool m_messageConfigHasBeenSet;
293 
294     Aws::String m_nextActivity;
295     bool m_nextActivityHasBeenSet;
296 
297     Aws::String m_templateName;
298     bool m_templateNameHasBeenSet;
299 
300     Aws::String m_templateVersion;
301     bool m_templateVersionHasBeenSet;
302   };
303 
304 } // namespace Model
305 } // namespace Pinpoint
306 } // namespace Aws
307