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/email/SES_EXPORTS.h>
8 #include <aws/email/SESRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/email/model/RawMessage.h>
12 #include <aws/email/model/MessageTag.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace SES
18 {
19 namespace Model
20 {
21 
22   /**
23    * <p>Represents a request to send a single raw email using Amazon SES. For more
24    * information, see the <a
25    * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html">Amazon
26    * SES Developer Guide</a>.</p><p><h3>See Also:</h3>   <a
27    * href="http://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendRawEmailRequest">AWS
28    * API Reference</a></p>
29    */
30   class AWS_SES_API SendRawEmailRequest : public SESRequest
31   {
32   public:
33     SendRawEmailRequest();
34 
35     // Service request name is the Operation name which will send this request out,
36     // each operation should has unique request name, so that we can get operation's name from this request.
37     // Note: this is not true for response, multiple operations may have the same response name,
38     // so we can not get operation's name from response.
GetServiceRequestName()39     inline virtual const char* GetServiceRequestName() const override { return "SendRawEmail"; }
40 
41     Aws::String SerializePayload() const override;
42 
43   protected:
44     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
45 
46   public:
47 
48     /**
49      * <p>The identity's email address. If you do not provide a value for this
50      * parameter, you must specify a "From" address in the raw text of the message.
51      * (You can also specify both.)</p>  <p>Amazon SES does not support the
52      * SMTPUTF8 extension, as described in<a
53      * href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the
54      * <i>local part</i> of a source email address (the part of the email address that
55      * precedes the @ sign) may only contain <a
56      * href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII
57      * characters</a>. If the <i>domain part</i> of an address (the part after the @
58      * sign) contains non-ASCII characters, they must be encoded using Punycode, as
59      * described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The
60      * sender name (also known as the <i>friendly name</i>) may contain non-ASCII
61      * characters. These characters must be encoded using MIME encoded-word syntax, as
62      * described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME
63      * encoded-word syntax uses the following form:
64      * <code>=?charset?encoding?encoded-text?=</code>.</p>  <p>If you specify
65      * the <code>Source</code> parameter and have feedback forwarding enabled, then
66      * bounces and complaints will be sent to this email address. This takes precedence
67      * over any Return-Path header that you might include in the raw text of the
68      * message.</p>
69      */
GetSource()70     inline const Aws::String& GetSource() const{ return m_source; }
71 
72     /**
73      * <p>The identity's email address. If you do not provide a value for this
74      * parameter, you must specify a "From" address in the raw text of the message.
75      * (You can also specify both.)</p>  <p>Amazon SES does not support the
76      * SMTPUTF8 extension, as described in<a
77      * href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the
78      * <i>local part</i> of a source email address (the part of the email address that
79      * precedes the @ sign) may only contain <a
80      * href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII
81      * characters</a>. If the <i>domain part</i> of an address (the part after the @
82      * sign) contains non-ASCII characters, they must be encoded using Punycode, as
83      * described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The
84      * sender name (also known as the <i>friendly name</i>) may contain non-ASCII
85      * characters. These characters must be encoded using MIME encoded-word syntax, as
86      * described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME
87      * encoded-word syntax uses the following form:
88      * <code>=?charset?encoding?encoded-text?=</code>.</p>  <p>If you specify
89      * the <code>Source</code> parameter and have feedback forwarding enabled, then
90      * bounces and complaints will be sent to this email address. This takes precedence
91      * over any Return-Path header that you might include in the raw text of the
92      * message.</p>
93      */
SourceHasBeenSet()94     inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; }
95 
96     /**
97      * <p>The identity's email address. If you do not provide a value for this
98      * parameter, you must specify a "From" address in the raw text of the message.
99      * (You can also specify both.)</p>  <p>Amazon SES does not support the
100      * SMTPUTF8 extension, as described in<a
101      * href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the
102      * <i>local part</i> of a source email address (the part of the email address that
103      * precedes the @ sign) may only contain <a
104      * href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII
105      * characters</a>. If the <i>domain part</i> of an address (the part after the @
106      * sign) contains non-ASCII characters, they must be encoded using Punycode, as
107      * described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The
108      * sender name (also known as the <i>friendly name</i>) may contain non-ASCII
109      * characters. These characters must be encoded using MIME encoded-word syntax, as
110      * described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME
111      * encoded-word syntax uses the following form:
112      * <code>=?charset?encoding?encoded-text?=</code>.</p>  <p>If you specify
113      * the <code>Source</code> parameter and have feedback forwarding enabled, then
114      * bounces and complaints will be sent to this email address. This takes precedence
115      * over any Return-Path header that you might include in the raw text of the
116      * message.</p>
117      */
SetSource(const Aws::String & value)118     inline void SetSource(const Aws::String& value) { m_sourceHasBeenSet = true; m_source = value; }
119 
120     /**
121      * <p>The identity's email address. If you do not provide a value for this
122      * parameter, you must specify a "From" address in the raw text of the message.
123      * (You can also specify both.)</p>  <p>Amazon SES does not support the
124      * SMTPUTF8 extension, as described in<a
125      * href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the
126      * <i>local part</i> of a source email address (the part of the email address that
127      * precedes the @ sign) may only contain <a
128      * href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII
129      * characters</a>. If the <i>domain part</i> of an address (the part after the @
130      * sign) contains non-ASCII characters, they must be encoded using Punycode, as
131      * described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The
132      * sender name (also known as the <i>friendly name</i>) may contain non-ASCII
133      * characters. These characters must be encoded using MIME encoded-word syntax, as
134      * described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME
135      * encoded-word syntax uses the following form:
136      * <code>=?charset?encoding?encoded-text?=</code>.</p>  <p>If you specify
137      * the <code>Source</code> parameter and have feedback forwarding enabled, then
138      * bounces and complaints will be sent to this email address. This takes precedence
139      * over any Return-Path header that you might include in the raw text of the
140      * message.</p>
141      */
SetSource(Aws::String && value)142     inline void SetSource(Aws::String&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); }
143 
144     /**
145      * <p>The identity's email address. If you do not provide a value for this
146      * parameter, you must specify a "From" address in the raw text of the message.
147      * (You can also specify both.)</p>  <p>Amazon SES does not support the
148      * SMTPUTF8 extension, as described in<a
149      * href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the
150      * <i>local part</i> of a source email address (the part of the email address that
151      * precedes the @ sign) may only contain <a
152      * href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII
153      * characters</a>. If the <i>domain part</i> of an address (the part after the @
154      * sign) contains non-ASCII characters, they must be encoded using Punycode, as
155      * described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The
156      * sender name (also known as the <i>friendly name</i>) may contain non-ASCII
157      * characters. These characters must be encoded using MIME encoded-word syntax, as
158      * described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME
159      * encoded-word syntax uses the following form:
160      * <code>=?charset?encoding?encoded-text?=</code>.</p>  <p>If you specify
161      * the <code>Source</code> parameter and have feedback forwarding enabled, then
162      * bounces and complaints will be sent to this email address. This takes precedence
163      * over any Return-Path header that you might include in the raw text of the
164      * message.</p>
165      */
SetSource(const char * value)166     inline void SetSource(const char* value) { m_sourceHasBeenSet = true; m_source.assign(value); }
167 
168     /**
169      * <p>The identity's email address. If you do not provide a value for this
170      * parameter, you must specify a "From" address in the raw text of the message.
171      * (You can also specify both.)</p>  <p>Amazon SES does not support the
172      * SMTPUTF8 extension, as described in<a
173      * href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the
174      * <i>local part</i> of a source email address (the part of the email address that
175      * precedes the @ sign) may only contain <a
176      * href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII
177      * characters</a>. If the <i>domain part</i> of an address (the part after the @
178      * sign) contains non-ASCII characters, they must be encoded using Punycode, as
179      * described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The
180      * sender name (also known as the <i>friendly name</i>) may contain non-ASCII
181      * characters. These characters must be encoded using MIME encoded-word syntax, as
182      * described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME
183      * encoded-word syntax uses the following form:
184      * <code>=?charset?encoding?encoded-text?=</code>.</p>  <p>If you specify
185      * the <code>Source</code> parameter and have feedback forwarding enabled, then
186      * bounces and complaints will be sent to this email address. This takes precedence
187      * over any Return-Path header that you might include in the raw text of the
188      * message.</p>
189      */
WithSource(const Aws::String & value)190     inline SendRawEmailRequest& WithSource(const Aws::String& value) { SetSource(value); return *this;}
191 
192     /**
193      * <p>The identity's email address. If you do not provide a value for this
194      * parameter, you must specify a "From" address in the raw text of the message.
195      * (You can also specify both.)</p>  <p>Amazon SES does not support the
196      * SMTPUTF8 extension, as described in<a
197      * href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the
198      * <i>local part</i> of a source email address (the part of the email address that
199      * precedes the @ sign) may only contain <a
200      * href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII
201      * characters</a>. If the <i>domain part</i> of an address (the part after the @
202      * sign) contains non-ASCII characters, they must be encoded using Punycode, as
203      * described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The
204      * sender name (also known as the <i>friendly name</i>) may contain non-ASCII
205      * characters. These characters must be encoded using MIME encoded-word syntax, as
206      * described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME
207      * encoded-word syntax uses the following form:
208      * <code>=?charset?encoding?encoded-text?=</code>.</p>  <p>If you specify
209      * the <code>Source</code> parameter and have feedback forwarding enabled, then
210      * bounces and complaints will be sent to this email address. This takes precedence
211      * over any Return-Path header that you might include in the raw text of the
212      * message.</p>
213      */
WithSource(Aws::String && value)214     inline SendRawEmailRequest& WithSource(Aws::String&& value) { SetSource(std::move(value)); return *this;}
215 
216     /**
217      * <p>The identity's email address. If you do not provide a value for this
218      * parameter, you must specify a "From" address in the raw text of the message.
219      * (You can also specify both.)</p>  <p>Amazon SES does not support the
220      * SMTPUTF8 extension, as described in<a
221      * href="https://tools.ietf.org/html/rfc6531">RFC6531</a>. For this reason, the
222      * <i>local part</i> of a source email address (the part of the email address that
223      * precedes the @ sign) may only contain <a
224      * href="https://en.wikipedia.org/wiki/Email_address#Local-part">7-bit ASCII
225      * characters</a>. If the <i>domain part</i> of an address (the part after the @
226      * sign) contains non-ASCII characters, they must be encoded using Punycode, as
227      * described in <a href="https://tools.ietf.org/html/rfc3492.html">RFC3492</a>. The
228      * sender name (also known as the <i>friendly name</i>) may contain non-ASCII
229      * characters. These characters must be encoded using MIME encoded-word syntax, as
230      * described in <a href="https://tools.ietf.org/html/rfc2047">RFC 2047</a>. MIME
231      * encoded-word syntax uses the following form:
232      * <code>=?charset?encoding?encoded-text?=</code>.</p>  <p>If you specify
233      * the <code>Source</code> parameter and have feedback forwarding enabled, then
234      * bounces and complaints will be sent to this email address. This takes precedence
235      * over any Return-Path header that you might include in the raw text of the
236      * message.</p>
237      */
WithSource(const char * value)238     inline SendRawEmailRequest& WithSource(const char* value) { SetSource(value); return *this;}
239 
240 
241     /**
242      * <p>A list of destinations for the message, consisting of To:, CC:, and BCC:
243      * addresses.</p>
244      */
GetDestinations()245     inline const Aws::Vector<Aws::String>& GetDestinations() const{ return m_destinations; }
246 
247     /**
248      * <p>A list of destinations for the message, consisting of To:, CC:, and BCC:
249      * addresses.</p>
250      */
DestinationsHasBeenSet()251     inline bool DestinationsHasBeenSet() const { return m_destinationsHasBeenSet; }
252 
253     /**
254      * <p>A list of destinations for the message, consisting of To:, CC:, and BCC:
255      * addresses.</p>
256      */
SetDestinations(const Aws::Vector<Aws::String> & value)257     inline void SetDestinations(const Aws::Vector<Aws::String>& value) { m_destinationsHasBeenSet = true; m_destinations = value; }
258 
259     /**
260      * <p>A list of destinations for the message, consisting of To:, CC:, and BCC:
261      * addresses.</p>
262      */
SetDestinations(Aws::Vector<Aws::String> && value)263     inline void SetDestinations(Aws::Vector<Aws::String>&& value) { m_destinationsHasBeenSet = true; m_destinations = std::move(value); }
264 
265     /**
266      * <p>A list of destinations for the message, consisting of To:, CC:, and BCC:
267      * addresses.</p>
268      */
WithDestinations(const Aws::Vector<Aws::String> & value)269     inline SendRawEmailRequest& WithDestinations(const Aws::Vector<Aws::String>& value) { SetDestinations(value); return *this;}
270 
271     /**
272      * <p>A list of destinations for the message, consisting of To:, CC:, and BCC:
273      * addresses.</p>
274      */
WithDestinations(Aws::Vector<Aws::String> && value)275     inline SendRawEmailRequest& WithDestinations(Aws::Vector<Aws::String>&& value) { SetDestinations(std::move(value)); return *this;}
276 
277     /**
278      * <p>A list of destinations for the message, consisting of To:, CC:, and BCC:
279      * addresses.</p>
280      */
AddDestinations(const Aws::String & value)281     inline SendRawEmailRequest& AddDestinations(const Aws::String& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(value); return *this; }
282 
283     /**
284      * <p>A list of destinations for the message, consisting of To:, CC:, and BCC:
285      * addresses.</p>
286      */
AddDestinations(Aws::String && value)287     inline SendRawEmailRequest& AddDestinations(Aws::String&& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(std::move(value)); return *this; }
288 
289     /**
290      * <p>A list of destinations for the message, consisting of To:, CC:, and BCC:
291      * addresses.</p>
292      */
AddDestinations(const char * value)293     inline SendRawEmailRequest& AddDestinations(const char* value) { m_destinationsHasBeenSet = true; m_destinations.push_back(value); return *this; }
294 
295 
296     /**
297      * <p>The raw email message itself. The message has to meet the following
298      * criteria:</p> <ul> <li> <p>The message has to contain a header and a body,
299      * separated by a blank line.</p> </li> <li> <p>All of the required header fields
300      * must be present in the message.</p> </li> <li> <p>Each part of a multipart MIME
301      * message must be formatted properly.</p> </li> <li> <p>Attachments must be of a
302      * content type that Amazon SES supports. For a list on unsupported content types,
303      * see <a
304      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html">Unsupported
305      * Attachment Types</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li>
306      * <p>The entire message must be base64-encoded.</p> </li> <li> <p>If any of the
307      * MIME parts in your message contain content that is outside of the 7-bit ASCII
308      * character range, we highly recommend that you encode that content. For more
309      * information, see <a
310      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html">Sending
311      * Raw Email</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li> <p>Per <a
312      * href="https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6">RFC 5321</a>, the
313      * maximum length of each line of text, including the &lt;CRLF&gt;, must not exceed
314      * 1,000 characters.</p> </li> </ul>
315      */
GetRawMessage()316     inline const RawMessage& GetRawMessage() const{ return m_rawMessage; }
317 
318     /**
319      * <p>The raw email message itself. The message has to meet the following
320      * criteria:</p> <ul> <li> <p>The message has to contain a header and a body,
321      * separated by a blank line.</p> </li> <li> <p>All of the required header fields
322      * must be present in the message.</p> </li> <li> <p>Each part of a multipart MIME
323      * message must be formatted properly.</p> </li> <li> <p>Attachments must be of a
324      * content type that Amazon SES supports. For a list on unsupported content types,
325      * see <a
326      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html">Unsupported
327      * Attachment Types</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li>
328      * <p>The entire message must be base64-encoded.</p> </li> <li> <p>If any of the
329      * MIME parts in your message contain content that is outside of the 7-bit ASCII
330      * character range, we highly recommend that you encode that content. For more
331      * information, see <a
332      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html">Sending
333      * Raw Email</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li> <p>Per <a
334      * href="https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6">RFC 5321</a>, the
335      * maximum length of each line of text, including the &lt;CRLF&gt;, must not exceed
336      * 1,000 characters.</p> </li> </ul>
337      */
RawMessageHasBeenSet()338     inline bool RawMessageHasBeenSet() const { return m_rawMessageHasBeenSet; }
339 
340     /**
341      * <p>The raw email message itself. The message has to meet the following
342      * criteria:</p> <ul> <li> <p>The message has to contain a header and a body,
343      * separated by a blank line.</p> </li> <li> <p>All of the required header fields
344      * must be present in the message.</p> </li> <li> <p>Each part of a multipart MIME
345      * message must be formatted properly.</p> </li> <li> <p>Attachments must be of a
346      * content type that Amazon SES supports. For a list on unsupported content types,
347      * see <a
348      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html">Unsupported
349      * Attachment Types</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li>
350      * <p>The entire message must be base64-encoded.</p> </li> <li> <p>If any of the
351      * MIME parts in your message contain content that is outside of the 7-bit ASCII
352      * character range, we highly recommend that you encode that content. For more
353      * information, see <a
354      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html">Sending
355      * Raw Email</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li> <p>Per <a
356      * href="https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6">RFC 5321</a>, the
357      * maximum length of each line of text, including the &lt;CRLF&gt;, must not exceed
358      * 1,000 characters.</p> </li> </ul>
359      */
SetRawMessage(const RawMessage & value)360     inline void SetRawMessage(const RawMessage& value) { m_rawMessageHasBeenSet = true; m_rawMessage = value; }
361 
362     /**
363      * <p>The raw email message itself. The message has to meet the following
364      * criteria:</p> <ul> <li> <p>The message has to contain a header and a body,
365      * separated by a blank line.</p> </li> <li> <p>All of the required header fields
366      * must be present in the message.</p> </li> <li> <p>Each part of a multipart MIME
367      * message must be formatted properly.</p> </li> <li> <p>Attachments must be of a
368      * content type that Amazon SES supports. For a list on unsupported content types,
369      * see <a
370      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html">Unsupported
371      * Attachment Types</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li>
372      * <p>The entire message must be base64-encoded.</p> </li> <li> <p>If any of the
373      * MIME parts in your message contain content that is outside of the 7-bit ASCII
374      * character range, we highly recommend that you encode that content. For more
375      * information, see <a
376      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html">Sending
377      * Raw Email</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li> <p>Per <a
378      * href="https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6">RFC 5321</a>, the
379      * maximum length of each line of text, including the &lt;CRLF&gt;, must not exceed
380      * 1,000 characters.</p> </li> </ul>
381      */
SetRawMessage(RawMessage && value)382     inline void SetRawMessage(RawMessage&& value) { m_rawMessageHasBeenSet = true; m_rawMessage = std::move(value); }
383 
384     /**
385      * <p>The raw email message itself. The message has to meet the following
386      * criteria:</p> <ul> <li> <p>The message has to contain a header and a body,
387      * separated by a blank line.</p> </li> <li> <p>All of the required header fields
388      * must be present in the message.</p> </li> <li> <p>Each part of a multipart MIME
389      * message must be formatted properly.</p> </li> <li> <p>Attachments must be of a
390      * content type that Amazon SES supports. For a list on unsupported content types,
391      * see <a
392      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html">Unsupported
393      * Attachment Types</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li>
394      * <p>The entire message must be base64-encoded.</p> </li> <li> <p>If any of the
395      * MIME parts in your message contain content that is outside of the 7-bit ASCII
396      * character range, we highly recommend that you encode that content. For more
397      * information, see <a
398      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html">Sending
399      * Raw Email</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li> <p>Per <a
400      * href="https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6">RFC 5321</a>, the
401      * maximum length of each line of text, including the &lt;CRLF&gt;, must not exceed
402      * 1,000 characters.</p> </li> </ul>
403      */
WithRawMessage(const RawMessage & value)404     inline SendRawEmailRequest& WithRawMessage(const RawMessage& value) { SetRawMessage(value); return *this;}
405 
406     /**
407      * <p>The raw email message itself. The message has to meet the following
408      * criteria:</p> <ul> <li> <p>The message has to contain a header and a body,
409      * separated by a blank line.</p> </li> <li> <p>All of the required header fields
410      * must be present in the message.</p> </li> <li> <p>Each part of a multipart MIME
411      * message must be formatted properly.</p> </li> <li> <p>Attachments must be of a
412      * content type that Amazon SES supports. For a list on unsupported content types,
413      * see <a
414      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html">Unsupported
415      * Attachment Types</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li>
416      * <p>The entire message must be base64-encoded.</p> </li> <li> <p>If any of the
417      * MIME parts in your message contain content that is outside of the 7-bit ASCII
418      * character range, we highly recommend that you encode that content. For more
419      * information, see <a
420      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html">Sending
421      * Raw Email</a> in the <i>Amazon SES Developer Guide</i>.</p> </li> <li> <p>Per <a
422      * href="https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6">RFC 5321</a>, the
423      * maximum length of each line of text, including the &lt;CRLF&gt;, must not exceed
424      * 1,000 characters.</p> </li> </ul>
425      */
WithRawMessage(RawMessage && value)426     inline SendRawEmailRequest& WithRawMessage(RawMessage&& value) { SetRawMessage(std::move(value)); return *this;}
427 
428 
429     /**
430      * <p>This parameter is used only for sending authorization. It is the ARN of the
431      * identity that is associated with the sending authorization policy that permits
432      * you to specify a particular "From" address in the header of the raw email.</p>
433      * <p>Instead of using this parameter, you can use the X-header
434      * <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use both the
435      * <code>FromArn</code> parameter and the corresponding X-header, Amazon SES uses
436      * the value of the <code>FromArn</code> parameter.</p>  <p>For information
437      * about when to use this parameter, see the description of
438      * <code>SendRawEmail</code> in this guide, or see the <a
439      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
440      * SES Developer Guide</a>.</p>
441      */
GetFromArn()442     inline const Aws::String& GetFromArn() const{ return m_fromArn; }
443 
444     /**
445      * <p>This parameter is used only for sending authorization. It is the ARN of the
446      * identity that is associated with the sending authorization policy that permits
447      * you to specify a particular "From" address in the header of the raw email.</p>
448      * <p>Instead of using this parameter, you can use the X-header
449      * <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use both the
450      * <code>FromArn</code> parameter and the corresponding X-header, Amazon SES uses
451      * the value of the <code>FromArn</code> parameter.</p>  <p>For information
452      * about when to use this parameter, see the description of
453      * <code>SendRawEmail</code> in this guide, or see the <a
454      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
455      * SES Developer Guide</a>.</p>
456      */
FromArnHasBeenSet()457     inline bool FromArnHasBeenSet() const { return m_fromArnHasBeenSet; }
458 
459     /**
460      * <p>This parameter is used only for sending authorization. It is the ARN of the
461      * identity that is associated with the sending authorization policy that permits
462      * you to specify a particular "From" address in the header of the raw email.</p>
463      * <p>Instead of using this parameter, you can use the X-header
464      * <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use both the
465      * <code>FromArn</code> parameter and the corresponding X-header, Amazon SES uses
466      * the value of the <code>FromArn</code> parameter.</p>  <p>For information
467      * about when to use this parameter, see the description of
468      * <code>SendRawEmail</code> in this guide, or see the <a
469      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
470      * SES Developer Guide</a>.</p>
471      */
SetFromArn(const Aws::String & value)472     inline void SetFromArn(const Aws::String& value) { m_fromArnHasBeenSet = true; m_fromArn = value; }
473 
474     /**
475      * <p>This parameter is used only for sending authorization. It is the ARN of the
476      * identity that is associated with the sending authorization policy that permits
477      * you to specify a particular "From" address in the header of the raw email.</p>
478      * <p>Instead of using this parameter, you can use the X-header
479      * <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use both the
480      * <code>FromArn</code> parameter and the corresponding X-header, Amazon SES uses
481      * the value of the <code>FromArn</code> parameter.</p>  <p>For information
482      * about when to use this parameter, see the description of
483      * <code>SendRawEmail</code> in this guide, or see the <a
484      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
485      * SES Developer Guide</a>.</p>
486      */
SetFromArn(Aws::String && value)487     inline void SetFromArn(Aws::String&& value) { m_fromArnHasBeenSet = true; m_fromArn = std::move(value); }
488 
489     /**
490      * <p>This parameter is used only for sending authorization. It is the ARN of the
491      * identity that is associated with the sending authorization policy that permits
492      * you to specify a particular "From" address in the header of the raw email.</p>
493      * <p>Instead of using this parameter, you can use the X-header
494      * <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use both the
495      * <code>FromArn</code> parameter and the corresponding X-header, Amazon SES uses
496      * the value of the <code>FromArn</code> parameter.</p>  <p>For information
497      * about when to use this parameter, see the description of
498      * <code>SendRawEmail</code> in this guide, or see the <a
499      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
500      * SES Developer Guide</a>.</p>
501      */
SetFromArn(const char * value)502     inline void SetFromArn(const char* value) { m_fromArnHasBeenSet = true; m_fromArn.assign(value); }
503 
504     /**
505      * <p>This parameter is used only for sending authorization. It is the ARN of the
506      * identity that is associated with the sending authorization policy that permits
507      * you to specify a particular "From" address in the header of the raw email.</p>
508      * <p>Instead of using this parameter, you can use the X-header
509      * <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use both the
510      * <code>FromArn</code> parameter and the corresponding X-header, Amazon SES uses
511      * the value of the <code>FromArn</code> parameter.</p>  <p>For information
512      * about when to use this parameter, see the description of
513      * <code>SendRawEmail</code> in this guide, or see the <a
514      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
515      * SES Developer Guide</a>.</p>
516      */
WithFromArn(const Aws::String & value)517     inline SendRawEmailRequest& WithFromArn(const Aws::String& value) { SetFromArn(value); return *this;}
518 
519     /**
520      * <p>This parameter is used only for sending authorization. It is the ARN of the
521      * identity that is associated with the sending authorization policy that permits
522      * you to specify a particular "From" address in the header of the raw email.</p>
523      * <p>Instead of using this parameter, you can use the X-header
524      * <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use both the
525      * <code>FromArn</code> parameter and the corresponding X-header, Amazon SES uses
526      * the value of the <code>FromArn</code> parameter.</p>  <p>For information
527      * about when to use this parameter, see the description of
528      * <code>SendRawEmail</code> in this guide, or see the <a
529      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
530      * SES Developer Guide</a>.</p>
531      */
WithFromArn(Aws::String && value)532     inline SendRawEmailRequest& WithFromArn(Aws::String&& value) { SetFromArn(std::move(value)); return *this;}
533 
534     /**
535      * <p>This parameter is used only for sending authorization. It is the ARN of the
536      * identity that is associated with the sending authorization policy that permits
537      * you to specify a particular "From" address in the header of the raw email.</p>
538      * <p>Instead of using this parameter, you can use the X-header
539      * <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use both the
540      * <code>FromArn</code> parameter and the corresponding X-header, Amazon SES uses
541      * the value of the <code>FromArn</code> parameter.</p>  <p>For information
542      * about when to use this parameter, see the description of
543      * <code>SendRawEmail</code> in this guide, or see the <a
544      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
545      * SES Developer Guide</a>.</p>
546      */
WithFromArn(const char * value)547     inline SendRawEmailRequest& WithFromArn(const char* value) { SetFromArn(value); return *this;}
548 
549 
550     /**
551      * <p>This parameter is used only for sending authorization. It is the ARN of the
552      * identity that is associated with the sending authorization policy that permits
553      * you to send for the email address specified in the <code>Source</code>
554      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
555      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
556      * attaches a policy to it that authorizes you to send from
557      * <code>user@example.com</code>, then you would specify the <code>SourceArn</code>
558      * to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
559      * the <code>Source</code> to be <code>user@example.com</code>.</p> <p>Instead of
560      * using this parameter, you can use the X-header <code>X-SES-SOURCE-ARN</code> in
561      * the raw message of the email. If you use both the <code>SourceArn</code>
562      * parameter and the corresponding X-header, Amazon SES uses the value of the
563      * <code>SourceArn</code> parameter.</p>  <p>For information about when to
564      * use this parameter, see the description of <code>SendRawEmail</code> in this
565      * guide, or see the <a
566      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
567      * SES Developer Guide</a>.</p>
568      */
GetSourceArn()569     inline const Aws::String& GetSourceArn() const{ return m_sourceArn; }
570 
571     /**
572      * <p>This parameter is used only for sending authorization. It is the ARN of the
573      * identity that is associated with the sending authorization policy that permits
574      * you to send for the email address specified in the <code>Source</code>
575      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
576      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
577      * attaches a policy to it that authorizes you to send from
578      * <code>user@example.com</code>, then you would specify the <code>SourceArn</code>
579      * to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
580      * the <code>Source</code> to be <code>user@example.com</code>.</p> <p>Instead of
581      * using this parameter, you can use the X-header <code>X-SES-SOURCE-ARN</code> in
582      * the raw message of the email. If you use both the <code>SourceArn</code>
583      * parameter and the corresponding X-header, Amazon SES uses the value of the
584      * <code>SourceArn</code> parameter.</p>  <p>For information about when to
585      * use this parameter, see the description of <code>SendRawEmail</code> in this
586      * guide, or see the <a
587      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
588      * SES Developer Guide</a>.</p>
589      */
SourceArnHasBeenSet()590     inline bool SourceArnHasBeenSet() const { return m_sourceArnHasBeenSet; }
591 
592     /**
593      * <p>This parameter is used only for sending authorization. It is the ARN of the
594      * identity that is associated with the sending authorization policy that permits
595      * you to send for the email address specified in the <code>Source</code>
596      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
597      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
598      * attaches a policy to it that authorizes you to send from
599      * <code>user@example.com</code>, then you would specify the <code>SourceArn</code>
600      * to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
601      * the <code>Source</code> to be <code>user@example.com</code>.</p> <p>Instead of
602      * using this parameter, you can use the X-header <code>X-SES-SOURCE-ARN</code> in
603      * the raw message of the email. If you use both the <code>SourceArn</code>
604      * parameter and the corresponding X-header, Amazon SES uses the value of the
605      * <code>SourceArn</code> parameter.</p>  <p>For information about when to
606      * use this parameter, see the description of <code>SendRawEmail</code> in this
607      * guide, or see the <a
608      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
609      * SES Developer Guide</a>.</p>
610      */
SetSourceArn(const Aws::String & value)611     inline void SetSourceArn(const Aws::String& value) { m_sourceArnHasBeenSet = true; m_sourceArn = value; }
612 
613     /**
614      * <p>This parameter is used only for sending authorization. It is the ARN of the
615      * identity that is associated with the sending authorization policy that permits
616      * you to send for the email address specified in the <code>Source</code>
617      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
618      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
619      * attaches a policy to it that authorizes you to send from
620      * <code>user@example.com</code>, then you would specify the <code>SourceArn</code>
621      * to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
622      * the <code>Source</code> to be <code>user@example.com</code>.</p> <p>Instead of
623      * using this parameter, you can use the X-header <code>X-SES-SOURCE-ARN</code> in
624      * the raw message of the email. If you use both the <code>SourceArn</code>
625      * parameter and the corresponding X-header, Amazon SES uses the value of the
626      * <code>SourceArn</code> parameter.</p>  <p>For information about when to
627      * use this parameter, see the description of <code>SendRawEmail</code> in this
628      * guide, or see the <a
629      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
630      * SES Developer Guide</a>.</p>
631      */
SetSourceArn(Aws::String && value)632     inline void SetSourceArn(Aws::String&& value) { m_sourceArnHasBeenSet = true; m_sourceArn = std::move(value); }
633 
634     /**
635      * <p>This parameter is used only for sending authorization. It is the ARN of the
636      * identity that is associated with the sending authorization policy that permits
637      * you to send for the email address specified in the <code>Source</code>
638      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
639      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
640      * attaches a policy to it that authorizes you to send from
641      * <code>user@example.com</code>, then you would specify the <code>SourceArn</code>
642      * to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
643      * the <code>Source</code> to be <code>user@example.com</code>.</p> <p>Instead of
644      * using this parameter, you can use the X-header <code>X-SES-SOURCE-ARN</code> in
645      * the raw message of the email. If you use both the <code>SourceArn</code>
646      * parameter and the corresponding X-header, Amazon SES uses the value of the
647      * <code>SourceArn</code> parameter.</p>  <p>For information about when to
648      * use this parameter, see the description of <code>SendRawEmail</code> in this
649      * guide, or see the <a
650      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
651      * SES Developer Guide</a>.</p>
652      */
SetSourceArn(const char * value)653     inline void SetSourceArn(const char* value) { m_sourceArnHasBeenSet = true; m_sourceArn.assign(value); }
654 
655     /**
656      * <p>This parameter is used only for sending authorization. It is the ARN of the
657      * identity that is associated with the sending authorization policy that permits
658      * you to send for the email address specified in the <code>Source</code>
659      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
660      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
661      * attaches a policy to it that authorizes you to send from
662      * <code>user@example.com</code>, then you would specify the <code>SourceArn</code>
663      * to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
664      * the <code>Source</code> to be <code>user@example.com</code>.</p> <p>Instead of
665      * using this parameter, you can use the X-header <code>X-SES-SOURCE-ARN</code> in
666      * the raw message of the email. If you use both the <code>SourceArn</code>
667      * parameter and the corresponding X-header, Amazon SES uses the value of the
668      * <code>SourceArn</code> parameter.</p>  <p>For information about when to
669      * use this parameter, see the description of <code>SendRawEmail</code> in this
670      * guide, or see the <a
671      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
672      * SES Developer Guide</a>.</p>
673      */
WithSourceArn(const Aws::String & value)674     inline SendRawEmailRequest& WithSourceArn(const Aws::String& value) { SetSourceArn(value); return *this;}
675 
676     /**
677      * <p>This parameter is used only for sending authorization. It is the ARN of the
678      * identity that is associated with the sending authorization policy that permits
679      * you to send for the email address specified in the <code>Source</code>
680      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
681      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
682      * attaches a policy to it that authorizes you to send from
683      * <code>user@example.com</code>, then you would specify the <code>SourceArn</code>
684      * to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
685      * the <code>Source</code> to be <code>user@example.com</code>.</p> <p>Instead of
686      * using this parameter, you can use the X-header <code>X-SES-SOURCE-ARN</code> in
687      * the raw message of the email. If you use both the <code>SourceArn</code>
688      * parameter and the corresponding X-header, Amazon SES uses the value of the
689      * <code>SourceArn</code> parameter.</p>  <p>For information about when to
690      * use this parameter, see the description of <code>SendRawEmail</code> in this
691      * guide, or see the <a
692      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
693      * SES Developer Guide</a>.</p>
694      */
WithSourceArn(Aws::String && value)695     inline SendRawEmailRequest& WithSourceArn(Aws::String&& value) { SetSourceArn(std::move(value)); return *this;}
696 
697     /**
698      * <p>This parameter is used only for sending authorization. It is the ARN of the
699      * identity that is associated with the sending authorization policy that permits
700      * you to send for the email address specified in the <code>Source</code>
701      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
702      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
703      * attaches a policy to it that authorizes you to send from
704      * <code>user@example.com</code>, then you would specify the <code>SourceArn</code>
705      * to be <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
706      * the <code>Source</code> to be <code>user@example.com</code>.</p> <p>Instead of
707      * using this parameter, you can use the X-header <code>X-SES-SOURCE-ARN</code> in
708      * the raw message of the email. If you use both the <code>SourceArn</code>
709      * parameter and the corresponding X-header, Amazon SES uses the value of the
710      * <code>SourceArn</code> parameter.</p>  <p>For information about when to
711      * use this parameter, see the description of <code>SendRawEmail</code> in this
712      * guide, or see the <a
713      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
714      * SES Developer Guide</a>.</p>
715      */
WithSourceArn(const char * value)716     inline SendRawEmailRequest& WithSourceArn(const char* value) { SetSourceArn(value); return *this;}
717 
718 
719     /**
720      * <p>This parameter is used only for sending authorization. It is the ARN of the
721      * identity that is associated with the sending authorization policy that permits
722      * you to use the email address specified in the <code>ReturnPath</code>
723      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
724      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
725      * attaches a policy to it that authorizes you to use
726      * <code>feedback@example.com</code>, then you would specify the
727      * <code>ReturnPathArn</code> to be
728      * <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the
729      * <code>ReturnPath</code> to be <code>feedback@example.com</code>.</p> <p>Instead
730      * of using this parameter, you can use the X-header
731      * <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If you use
732      * both the <code>ReturnPathArn</code> parameter and the corresponding X-header,
733      * Amazon SES uses the value of the <code>ReturnPathArn</code> parameter.</p>
734      *  <p>For information about when to use this parameter, see the description
735      * of <code>SendRawEmail</code> in this guide, or see the <a
736      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
737      * SES Developer Guide</a>.</p>
738      */
GetReturnPathArn()739     inline const Aws::String& GetReturnPathArn() const{ return m_returnPathArn; }
740 
741     /**
742      * <p>This parameter is used only for sending authorization. It is the ARN of the
743      * identity that is associated with the sending authorization policy that permits
744      * you to use the email address specified in the <code>ReturnPath</code>
745      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
746      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
747      * attaches a policy to it that authorizes you to use
748      * <code>feedback@example.com</code>, then you would specify the
749      * <code>ReturnPathArn</code> to be
750      * <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the
751      * <code>ReturnPath</code> to be <code>feedback@example.com</code>.</p> <p>Instead
752      * of using this parameter, you can use the X-header
753      * <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If you use
754      * both the <code>ReturnPathArn</code> parameter and the corresponding X-header,
755      * Amazon SES uses the value of the <code>ReturnPathArn</code> parameter.</p>
756      *  <p>For information about when to use this parameter, see the description
757      * of <code>SendRawEmail</code> in this guide, or see the <a
758      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
759      * SES Developer Guide</a>.</p>
760      */
ReturnPathArnHasBeenSet()761     inline bool ReturnPathArnHasBeenSet() const { return m_returnPathArnHasBeenSet; }
762 
763     /**
764      * <p>This parameter is used only for sending authorization. It is the ARN of the
765      * identity that is associated with the sending authorization policy that permits
766      * you to use the email address specified in the <code>ReturnPath</code>
767      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
768      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
769      * attaches a policy to it that authorizes you to use
770      * <code>feedback@example.com</code>, then you would specify the
771      * <code>ReturnPathArn</code> to be
772      * <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the
773      * <code>ReturnPath</code> to be <code>feedback@example.com</code>.</p> <p>Instead
774      * of using this parameter, you can use the X-header
775      * <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If you use
776      * both the <code>ReturnPathArn</code> parameter and the corresponding X-header,
777      * Amazon SES uses the value of the <code>ReturnPathArn</code> parameter.</p>
778      *  <p>For information about when to use this parameter, see the description
779      * of <code>SendRawEmail</code> in this guide, or see the <a
780      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
781      * SES Developer Guide</a>.</p>
782      */
SetReturnPathArn(const Aws::String & value)783     inline void SetReturnPathArn(const Aws::String& value) { m_returnPathArnHasBeenSet = true; m_returnPathArn = value; }
784 
785     /**
786      * <p>This parameter is used only for sending authorization. It is the ARN of the
787      * identity that is associated with the sending authorization policy that permits
788      * you to use the email address specified in the <code>ReturnPath</code>
789      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
790      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
791      * attaches a policy to it that authorizes you to use
792      * <code>feedback@example.com</code>, then you would specify the
793      * <code>ReturnPathArn</code> to be
794      * <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the
795      * <code>ReturnPath</code> to be <code>feedback@example.com</code>.</p> <p>Instead
796      * of using this parameter, you can use the X-header
797      * <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If you use
798      * both the <code>ReturnPathArn</code> parameter and the corresponding X-header,
799      * Amazon SES uses the value of the <code>ReturnPathArn</code> parameter.</p>
800      *  <p>For information about when to use this parameter, see the description
801      * of <code>SendRawEmail</code> in this guide, or see the <a
802      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
803      * SES Developer Guide</a>.</p>
804      */
SetReturnPathArn(Aws::String && value)805     inline void SetReturnPathArn(Aws::String&& value) { m_returnPathArnHasBeenSet = true; m_returnPathArn = std::move(value); }
806 
807     /**
808      * <p>This parameter is used only for sending authorization. It is the ARN of the
809      * identity that is associated with the sending authorization policy that permits
810      * you to use the email address specified in the <code>ReturnPath</code>
811      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
812      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
813      * attaches a policy to it that authorizes you to use
814      * <code>feedback@example.com</code>, then you would specify the
815      * <code>ReturnPathArn</code> to be
816      * <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the
817      * <code>ReturnPath</code> to be <code>feedback@example.com</code>.</p> <p>Instead
818      * of using this parameter, you can use the X-header
819      * <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If you use
820      * both the <code>ReturnPathArn</code> parameter and the corresponding X-header,
821      * Amazon SES uses the value of the <code>ReturnPathArn</code> parameter.</p>
822      *  <p>For information about when to use this parameter, see the description
823      * of <code>SendRawEmail</code> in this guide, or see the <a
824      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
825      * SES Developer Guide</a>.</p>
826      */
SetReturnPathArn(const char * value)827     inline void SetReturnPathArn(const char* value) { m_returnPathArnHasBeenSet = true; m_returnPathArn.assign(value); }
828 
829     /**
830      * <p>This parameter is used only for sending authorization. It is the ARN of the
831      * identity that is associated with the sending authorization policy that permits
832      * you to use the email address specified in the <code>ReturnPath</code>
833      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
834      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
835      * attaches a policy to it that authorizes you to use
836      * <code>feedback@example.com</code>, then you would specify the
837      * <code>ReturnPathArn</code> to be
838      * <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the
839      * <code>ReturnPath</code> to be <code>feedback@example.com</code>.</p> <p>Instead
840      * of using this parameter, you can use the X-header
841      * <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If you use
842      * both the <code>ReturnPathArn</code> parameter and the corresponding X-header,
843      * Amazon SES uses the value of the <code>ReturnPathArn</code> parameter.</p>
844      *  <p>For information about when to use this parameter, see the description
845      * of <code>SendRawEmail</code> in this guide, or see the <a
846      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
847      * SES Developer Guide</a>.</p>
848      */
WithReturnPathArn(const Aws::String & value)849     inline SendRawEmailRequest& WithReturnPathArn(const Aws::String& value) { SetReturnPathArn(value); return *this;}
850 
851     /**
852      * <p>This parameter is used only for sending authorization. It is the ARN of the
853      * identity that is associated with the sending authorization policy that permits
854      * you to use the email address specified in the <code>ReturnPath</code>
855      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
856      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
857      * attaches a policy to it that authorizes you to use
858      * <code>feedback@example.com</code>, then you would specify the
859      * <code>ReturnPathArn</code> to be
860      * <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the
861      * <code>ReturnPath</code> to be <code>feedback@example.com</code>.</p> <p>Instead
862      * of using this parameter, you can use the X-header
863      * <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If you use
864      * both the <code>ReturnPathArn</code> parameter and the corresponding X-header,
865      * Amazon SES uses the value of the <code>ReturnPathArn</code> parameter.</p>
866      *  <p>For information about when to use this parameter, see the description
867      * of <code>SendRawEmail</code> in this guide, or see the <a
868      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
869      * SES Developer Guide</a>.</p>
870      */
WithReturnPathArn(Aws::String && value)871     inline SendRawEmailRequest& WithReturnPathArn(Aws::String&& value) { SetReturnPathArn(std::move(value)); return *this;}
872 
873     /**
874      * <p>This parameter is used only for sending authorization. It is the ARN of the
875      * identity that is associated with the sending authorization policy that permits
876      * you to use the email address specified in the <code>ReturnPath</code>
877      * parameter.</p> <p>For example, if the owner of <code>example.com</code> (which
878      * has ARN <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
879      * attaches a policy to it that authorizes you to use
880      * <code>feedback@example.com</code>, then you would specify the
881      * <code>ReturnPathArn</code> to be
882      * <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and the
883      * <code>ReturnPath</code> to be <code>feedback@example.com</code>.</p> <p>Instead
884      * of using this parameter, you can use the X-header
885      * <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If you use
886      * both the <code>ReturnPathArn</code> parameter and the corresponding X-header,
887      * Amazon SES uses the value of the <code>ReturnPathArn</code> parameter.</p>
888      *  <p>For information about when to use this parameter, see the description
889      * of <code>SendRawEmail</code> in this guide, or see the <a
890      * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html">Amazon
891      * SES Developer Guide</a>.</p>
892      */
WithReturnPathArn(const char * value)893     inline SendRawEmailRequest& WithReturnPathArn(const char* value) { SetReturnPathArn(value); return *this;}
894 
895 
896     /**
897      * <p>A list of tags, in the form of name/value pairs, to apply to an email that
898      * you send using <code>SendRawEmail</code>. Tags correspond to characteristics of
899      * the email that you define, so that you can publish email sending events.</p>
900      */
GetTags()901     inline const Aws::Vector<MessageTag>& GetTags() const{ return m_tags; }
902 
903     /**
904      * <p>A list of tags, in the form of name/value pairs, to apply to an email that
905      * you send using <code>SendRawEmail</code>. Tags correspond to characteristics of
906      * the email that you define, so that you can publish email sending events.</p>
907      */
TagsHasBeenSet()908     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
909 
910     /**
911      * <p>A list of tags, in the form of name/value pairs, to apply to an email that
912      * you send using <code>SendRawEmail</code>. Tags correspond to characteristics of
913      * the email that you define, so that you can publish email sending events.</p>
914      */
SetTags(const Aws::Vector<MessageTag> & value)915     inline void SetTags(const Aws::Vector<MessageTag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
916 
917     /**
918      * <p>A list of tags, in the form of name/value pairs, to apply to an email that
919      * you send using <code>SendRawEmail</code>. Tags correspond to characteristics of
920      * the email that you define, so that you can publish email sending events.</p>
921      */
SetTags(Aws::Vector<MessageTag> && value)922     inline void SetTags(Aws::Vector<MessageTag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
923 
924     /**
925      * <p>A list of tags, in the form of name/value pairs, to apply to an email that
926      * you send using <code>SendRawEmail</code>. Tags correspond to characteristics of
927      * the email that you define, so that you can publish email sending events.</p>
928      */
WithTags(const Aws::Vector<MessageTag> & value)929     inline SendRawEmailRequest& WithTags(const Aws::Vector<MessageTag>& value) { SetTags(value); return *this;}
930 
931     /**
932      * <p>A list of tags, in the form of name/value pairs, to apply to an email that
933      * you send using <code>SendRawEmail</code>. Tags correspond to characteristics of
934      * the email that you define, so that you can publish email sending events.</p>
935      */
WithTags(Aws::Vector<MessageTag> && value)936     inline SendRawEmailRequest& WithTags(Aws::Vector<MessageTag>&& value) { SetTags(std::move(value)); return *this;}
937 
938     /**
939      * <p>A list of tags, in the form of name/value pairs, to apply to an email that
940      * you send using <code>SendRawEmail</code>. Tags correspond to characteristics of
941      * the email that you define, so that you can publish email sending events.</p>
942      */
AddTags(const MessageTag & value)943     inline SendRawEmailRequest& AddTags(const MessageTag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
944 
945     /**
946      * <p>A list of tags, in the form of name/value pairs, to apply to an email that
947      * you send using <code>SendRawEmail</code>. Tags correspond to characteristics of
948      * the email that you define, so that you can publish email sending events.</p>
949      */
AddTags(MessageTag && value)950     inline SendRawEmailRequest& AddTags(MessageTag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
951 
952 
953     /**
954      * <p>The name of the configuration set to use when you send an email using
955      * <code>SendRawEmail</code>.</p>
956      */
GetConfigurationSetName()957     inline const Aws::String& GetConfigurationSetName() const{ return m_configurationSetName; }
958 
959     /**
960      * <p>The name of the configuration set to use when you send an email using
961      * <code>SendRawEmail</code>.</p>
962      */
ConfigurationSetNameHasBeenSet()963     inline bool ConfigurationSetNameHasBeenSet() const { return m_configurationSetNameHasBeenSet; }
964 
965     /**
966      * <p>The name of the configuration set to use when you send an email using
967      * <code>SendRawEmail</code>.</p>
968      */
SetConfigurationSetName(const Aws::String & value)969     inline void SetConfigurationSetName(const Aws::String& value) { m_configurationSetNameHasBeenSet = true; m_configurationSetName = value; }
970 
971     /**
972      * <p>The name of the configuration set to use when you send an email using
973      * <code>SendRawEmail</code>.</p>
974      */
SetConfigurationSetName(Aws::String && value)975     inline void SetConfigurationSetName(Aws::String&& value) { m_configurationSetNameHasBeenSet = true; m_configurationSetName = std::move(value); }
976 
977     /**
978      * <p>The name of the configuration set to use when you send an email using
979      * <code>SendRawEmail</code>.</p>
980      */
SetConfigurationSetName(const char * value)981     inline void SetConfigurationSetName(const char* value) { m_configurationSetNameHasBeenSet = true; m_configurationSetName.assign(value); }
982 
983     /**
984      * <p>The name of the configuration set to use when you send an email using
985      * <code>SendRawEmail</code>.</p>
986      */
WithConfigurationSetName(const Aws::String & value)987     inline SendRawEmailRequest& WithConfigurationSetName(const Aws::String& value) { SetConfigurationSetName(value); return *this;}
988 
989     /**
990      * <p>The name of the configuration set to use when you send an email using
991      * <code>SendRawEmail</code>.</p>
992      */
WithConfigurationSetName(Aws::String && value)993     inline SendRawEmailRequest& WithConfigurationSetName(Aws::String&& value) { SetConfigurationSetName(std::move(value)); return *this;}
994 
995     /**
996      * <p>The name of the configuration set to use when you send an email using
997      * <code>SendRawEmail</code>.</p>
998      */
WithConfigurationSetName(const char * value)999     inline SendRawEmailRequest& WithConfigurationSetName(const char* value) { SetConfigurationSetName(value); return *this;}
1000 
1001   private:
1002 
1003     Aws::String m_source;
1004     bool m_sourceHasBeenSet;
1005 
1006     Aws::Vector<Aws::String> m_destinations;
1007     bool m_destinationsHasBeenSet;
1008 
1009     RawMessage m_rawMessage;
1010     bool m_rawMessageHasBeenSet;
1011 
1012     Aws::String m_fromArn;
1013     bool m_fromArnHasBeenSet;
1014 
1015     Aws::String m_sourceArn;
1016     bool m_sourceArnHasBeenSet;
1017 
1018     Aws::String m_returnPathArn;
1019     bool m_returnPathArnHasBeenSet;
1020 
1021     Aws::Vector<MessageTag> m_tags;
1022     bool m_tagsHasBeenSet;
1023 
1024     Aws::String m_configurationSetName;
1025     bool m_configurationSetNameHasBeenSet;
1026   };
1027 
1028 } // namespace Model
1029 } // namespace SES
1030 } // namespace Aws
1031