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/email/model/NotificationType.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace SES
16 {
17 namespace Model
18 {
19 
20   /**
21    * <p>Represents a request to set whether Amazon SES includes the original email
22    * headers in the Amazon SNS notifications of a specified type. For information
23    * about notifications, see the <a
24    * href="https://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications-via-sns.html">Amazon
25    * SES Developer Guide</a>.</p><p><h3>See Also:</h3>   <a
26    * href="http://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityHeadersInNotificationsEnabledRequest">AWS
27    * API Reference</a></p>
28    */
29   class AWS_SES_API SetIdentityHeadersInNotificationsEnabledRequest : public SESRequest
30   {
31   public:
32     SetIdentityHeadersInNotificationsEnabledRequest();
33 
34     // Service request name is the Operation name which will send this request out,
35     // each operation should has unique request name, so that we can get operation's name from this request.
36     // Note: this is not true for response, multiple operations may have the same response name,
37     // so we can not get operation's name from response.
GetServiceRequestName()38     inline virtual const char* GetServiceRequestName() const override { return "SetIdentityHeadersInNotificationsEnabled"; }
39 
40     Aws::String SerializePayload() const override;
41 
42   protected:
43     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
44 
45   public:
46 
47     /**
48      * <p>The identity for which to enable or disable headers in notifications.
49      * Examples: <code>user@example.com</code>, <code>example.com</code>.</p>
50      */
GetIdentity()51     inline const Aws::String& GetIdentity() const{ return m_identity; }
52 
53     /**
54      * <p>The identity for which to enable or disable headers in notifications.
55      * Examples: <code>user@example.com</code>, <code>example.com</code>.</p>
56      */
IdentityHasBeenSet()57     inline bool IdentityHasBeenSet() const { return m_identityHasBeenSet; }
58 
59     /**
60      * <p>The identity for which to enable or disable headers in notifications.
61      * Examples: <code>user@example.com</code>, <code>example.com</code>.</p>
62      */
SetIdentity(const Aws::String & value)63     inline void SetIdentity(const Aws::String& value) { m_identityHasBeenSet = true; m_identity = value; }
64 
65     /**
66      * <p>The identity for which to enable or disable headers in notifications.
67      * Examples: <code>user@example.com</code>, <code>example.com</code>.</p>
68      */
SetIdentity(Aws::String && value)69     inline void SetIdentity(Aws::String&& value) { m_identityHasBeenSet = true; m_identity = std::move(value); }
70 
71     /**
72      * <p>The identity for which to enable or disable headers in notifications.
73      * Examples: <code>user@example.com</code>, <code>example.com</code>.</p>
74      */
SetIdentity(const char * value)75     inline void SetIdentity(const char* value) { m_identityHasBeenSet = true; m_identity.assign(value); }
76 
77     /**
78      * <p>The identity for which to enable or disable headers in notifications.
79      * Examples: <code>user@example.com</code>, <code>example.com</code>.</p>
80      */
WithIdentity(const Aws::String & value)81     inline SetIdentityHeadersInNotificationsEnabledRequest& WithIdentity(const Aws::String& value) { SetIdentity(value); return *this;}
82 
83     /**
84      * <p>The identity for which to enable or disable headers in notifications.
85      * Examples: <code>user@example.com</code>, <code>example.com</code>.</p>
86      */
WithIdentity(Aws::String && value)87     inline SetIdentityHeadersInNotificationsEnabledRequest& WithIdentity(Aws::String&& value) { SetIdentity(std::move(value)); return *this;}
88 
89     /**
90      * <p>The identity for which to enable or disable headers in notifications.
91      * Examples: <code>user@example.com</code>, <code>example.com</code>.</p>
92      */
WithIdentity(const char * value)93     inline SetIdentityHeadersInNotificationsEnabledRequest& WithIdentity(const char* value) { SetIdentity(value); return *this;}
94 
95 
96     /**
97      * <p>The notification type for which to enable or disable headers in
98      * notifications. </p>
99      */
GetNotificationType()100     inline const NotificationType& GetNotificationType() const{ return m_notificationType; }
101 
102     /**
103      * <p>The notification type for which to enable or disable headers in
104      * notifications. </p>
105      */
NotificationTypeHasBeenSet()106     inline bool NotificationTypeHasBeenSet() const { return m_notificationTypeHasBeenSet; }
107 
108     /**
109      * <p>The notification type for which to enable or disable headers in
110      * notifications. </p>
111      */
SetNotificationType(const NotificationType & value)112     inline void SetNotificationType(const NotificationType& value) { m_notificationTypeHasBeenSet = true; m_notificationType = value; }
113 
114     /**
115      * <p>The notification type for which to enable or disable headers in
116      * notifications. </p>
117      */
SetNotificationType(NotificationType && value)118     inline void SetNotificationType(NotificationType&& value) { m_notificationTypeHasBeenSet = true; m_notificationType = std::move(value); }
119 
120     /**
121      * <p>The notification type for which to enable or disable headers in
122      * notifications. </p>
123      */
WithNotificationType(const NotificationType & value)124     inline SetIdentityHeadersInNotificationsEnabledRequest& WithNotificationType(const NotificationType& value) { SetNotificationType(value); return *this;}
125 
126     /**
127      * <p>The notification type for which to enable or disable headers in
128      * notifications. </p>
129      */
WithNotificationType(NotificationType && value)130     inline SetIdentityHeadersInNotificationsEnabledRequest& WithNotificationType(NotificationType&& value) { SetNotificationType(std::move(value)); return *this;}
131 
132 
133     /**
134      * <p>Sets whether Amazon SES includes the original email headers in Amazon SNS
135      * notifications of the specified notification type. A value of <code>true</code>
136      * specifies that Amazon SES will include headers in notifications, and a value of
137      * <code>false</code> specifies that Amazon SES will not include headers in
138      * notifications.</p> <p>This value can only be set when
139      * <code>NotificationType</code> is already set to use a particular Amazon SNS
140      * topic.</p>
141      */
GetEnabled()142     inline bool GetEnabled() const{ return m_enabled; }
143 
144     /**
145      * <p>Sets whether Amazon SES includes the original email headers in Amazon SNS
146      * notifications of the specified notification type. A value of <code>true</code>
147      * specifies that Amazon SES will include headers in notifications, and a value of
148      * <code>false</code> specifies that Amazon SES will not include headers in
149      * notifications.</p> <p>This value can only be set when
150      * <code>NotificationType</code> is already set to use a particular Amazon SNS
151      * topic.</p>
152      */
EnabledHasBeenSet()153     inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; }
154 
155     /**
156      * <p>Sets whether Amazon SES includes the original email headers in Amazon SNS
157      * notifications of the specified notification type. A value of <code>true</code>
158      * specifies that Amazon SES will include headers in notifications, and a value of
159      * <code>false</code> specifies that Amazon SES will not include headers in
160      * notifications.</p> <p>This value can only be set when
161      * <code>NotificationType</code> is already set to use a particular Amazon SNS
162      * topic.</p>
163      */
SetEnabled(bool value)164     inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; }
165 
166     /**
167      * <p>Sets whether Amazon SES includes the original email headers in Amazon SNS
168      * notifications of the specified notification type. A value of <code>true</code>
169      * specifies that Amazon SES will include headers in notifications, and a value of
170      * <code>false</code> specifies that Amazon SES will not include headers in
171      * notifications.</p> <p>This value can only be set when
172      * <code>NotificationType</code> is already set to use a particular Amazon SNS
173      * topic.</p>
174      */
WithEnabled(bool value)175     inline SetIdentityHeadersInNotificationsEnabledRequest& WithEnabled(bool value) { SetEnabled(value); return *this;}
176 
177   private:
178 
179     Aws::String m_identity;
180     bool m_identityHasBeenSet;
181 
182     NotificationType m_notificationType;
183     bool m_notificationTypeHasBeenSet;
184 
185     bool m_enabled;
186     bool m_enabledHasBeenSet;
187   };
188 
189 } // namespace Model
190 } // namespace SES
191 } // namespace Aws
192