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 <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace Pinpoint
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Specifies the name and version of the message template to use for the
28    * message.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/Template">AWS
30    * API Reference</a></p>
31    */
32   class AWS_PINPOINT_API Template
33   {
34   public:
35     Template();
36     Template(Aws::Utils::Json::JsonView jsonValue);
37     Template& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The name of the message template to use for the message. If specified, this
43      * value must match the name of an existing message template.</p>
44      */
GetName()45     inline const Aws::String& GetName() const{ return m_name; }
46 
47     /**
48      * <p>The name of the message template to use for the message. If specified, this
49      * value must match the name of an existing message template.</p>
50      */
NameHasBeenSet()51     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
52 
53     /**
54      * <p>The name of the message template to use for the message. If specified, this
55      * value must match the name of an existing message template.</p>
56      */
SetName(const Aws::String & value)57     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
58 
59     /**
60      * <p>The name of the message template to use for the message. If specified, this
61      * value must match the name of an existing message template.</p>
62      */
SetName(Aws::String && value)63     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
64 
65     /**
66      * <p>The name of the message template to use for the message. If specified, this
67      * value must match the name of an existing message template.</p>
68      */
SetName(const char * value)69     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
70 
71     /**
72      * <p>The name of the message template to use for the message. If specified, this
73      * value must match the name of an existing message template.</p>
74      */
WithName(const Aws::String & value)75     inline Template& WithName(const Aws::String& value) { SetName(value); return *this;}
76 
77     /**
78      * <p>The name of the message template to use for the message. If specified, this
79      * value must match the name of an existing message template.</p>
80      */
WithName(Aws::String && value)81     inline Template& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
82 
83     /**
84      * <p>The name of the message template to use for the message. If specified, this
85      * value must match the name of an existing message template.</p>
86      */
WithName(const char * value)87     inline Template& WithName(const char* value) { SetName(value); return *this;}
88 
89 
90     /**
91      * <p>The unique identifier for the version of the message template to use for the
92      * message. If specified, this value must match the identifier for an existing
93      * template version. To retrieve a list of versions and version identifiers for a
94      * template, use the <link
95      * linkend="templates-template-name-template-type-versions">Template
96      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
97      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
98      * version</i> is typically the version of a template that's been most recently
99      * reviewed and approved for use, depending on your workflow. It isn't necessarily
100      * the latest version of a template.</p>
101      */
GetVersion()102     inline const Aws::String& GetVersion() const{ return m_version; }
103 
104     /**
105      * <p>The unique identifier for the version of the message template to use for the
106      * message. If specified, this value must match the identifier for an existing
107      * template version. To retrieve a list of versions and version identifiers for a
108      * template, use the <link
109      * linkend="templates-template-name-template-type-versions">Template
110      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
111      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
112      * version</i> is typically the version of a template that's been most recently
113      * reviewed and approved for use, depending on your workflow. It isn't necessarily
114      * the latest version of a template.</p>
115      */
VersionHasBeenSet()116     inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; }
117 
118     /**
119      * <p>The unique identifier for the version of the message template to use for the
120      * message. If specified, this value must match the identifier for an existing
121      * template version. To retrieve a list of versions and version identifiers for a
122      * template, use the <link
123      * linkend="templates-template-name-template-type-versions">Template
124      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
125      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
126      * version</i> is typically the version of a template that's been most recently
127      * reviewed and approved for use, depending on your workflow. It isn't necessarily
128      * the latest version of a template.</p>
129      */
SetVersion(const Aws::String & value)130     inline void SetVersion(const Aws::String& value) { m_versionHasBeenSet = true; m_version = value; }
131 
132     /**
133      * <p>The unique identifier for the version of the message template to use for the
134      * message. If specified, this value must match the identifier for an existing
135      * template version. To retrieve a list of versions and version identifiers for a
136      * template, use the <link
137      * linkend="templates-template-name-template-type-versions">Template
138      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
139      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
140      * version</i> is typically the version of a template that's been most recently
141      * reviewed and approved for use, depending on your workflow. It isn't necessarily
142      * the latest version of a template.</p>
143      */
SetVersion(Aws::String && value)144     inline void SetVersion(Aws::String&& value) { m_versionHasBeenSet = true; m_version = std::move(value); }
145 
146     /**
147      * <p>The unique identifier for the version of the message template to use for the
148      * message. If specified, this value must match the identifier for an existing
149      * template version. To retrieve a list of versions and version identifiers for a
150      * template, use the <link
151      * linkend="templates-template-name-template-type-versions">Template
152      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
153      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
154      * version</i> is typically the version of a template that's been most recently
155      * reviewed and approved for use, depending on your workflow. It isn't necessarily
156      * the latest version of a template.</p>
157      */
SetVersion(const char * value)158     inline void SetVersion(const char* value) { m_versionHasBeenSet = true; m_version.assign(value); }
159 
160     /**
161      * <p>The unique identifier for the version of the message template to use for the
162      * message. If specified, this value must match the identifier for an existing
163      * template version. To retrieve a list of versions and version identifiers for a
164      * template, use the <link
165      * linkend="templates-template-name-template-type-versions">Template
166      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
167      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
168      * version</i> is typically the version of a template that's been most recently
169      * reviewed and approved for use, depending on your workflow. It isn't necessarily
170      * the latest version of a template.</p>
171      */
WithVersion(const Aws::String & value)172     inline Template& WithVersion(const Aws::String& value) { SetVersion(value); return *this;}
173 
174     /**
175      * <p>The unique identifier for the version of the message template to use for the
176      * message. If specified, this value must match the identifier for an existing
177      * template version. To retrieve a list of versions and version identifiers for a
178      * template, use the <link
179      * linkend="templates-template-name-template-type-versions">Template
180      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
181      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
182      * version</i> is typically the version of a template that's been most recently
183      * reviewed and approved for use, depending on your workflow. It isn't necessarily
184      * the latest version of a template.</p>
185      */
WithVersion(Aws::String && value)186     inline Template& WithVersion(Aws::String&& value) { SetVersion(std::move(value)); return *this;}
187 
188     /**
189      * <p>The unique identifier for the version of the message template to use for the
190      * message. If specified, this value must match the identifier for an existing
191      * template version. To retrieve a list of versions and version identifiers for a
192      * template, use the <link
193      * linkend="templates-template-name-template-type-versions">Template
194      * Versions</link> resource.</p> <p>If you don't specify a value for this property,
195      * Amazon Pinpoint uses the <i>active version</i> of the template. The <i>active
196      * version</i> is typically the version of a template that's been most recently
197      * reviewed and approved for use, depending on your workflow. It isn't necessarily
198      * the latest version of a template.</p>
199      */
WithVersion(const char * value)200     inline Template& WithVersion(const char* value) { SetVersion(value); return *this;}
201 
202   private:
203 
204     Aws::String m_name;
205     bool m_nameHasBeenSet;
206 
207     Aws::String m_version;
208     bool m_versionHasBeenSet;
209   };
210 
211 } // namespace Model
212 } // namespace Pinpoint
213 } // namespace Aws
214