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 status and settings of the APNs (Apple Push Notification
28    * service) VoIP channel for an application.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/APNSVoipChannelRequest">AWS
30    * API Reference</a></p>
31    */
32   class AWS_PINPOINT_API APNSVoipChannelRequest
33   {
34   public:
35     APNSVoipChannelRequest();
36     APNSVoipChannelRequest(Aws::Utils::Json::JsonView jsonValue);
37     APNSVoipChannelRequest& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The bundle identifier that's assigned to your iOS app. This identifier is
43      * used for APNs tokens.</p>
44      */
GetBundleId()45     inline const Aws::String& GetBundleId() const{ return m_bundleId; }
46 
47     /**
48      * <p>The bundle identifier that's assigned to your iOS app. This identifier is
49      * used for APNs tokens.</p>
50      */
BundleIdHasBeenSet()51     inline bool BundleIdHasBeenSet() const { return m_bundleIdHasBeenSet; }
52 
53     /**
54      * <p>The bundle identifier that's assigned to your iOS app. This identifier is
55      * used for APNs tokens.</p>
56      */
SetBundleId(const Aws::String & value)57     inline void SetBundleId(const Aws::String& value) { m_bundleIdHasBeenSet = true; m_bundleId = value; }
58 
59     /**
60      * <p>The bundle identifier that's assigned to your iOS app. This identifier is
61      * used for APNs tokens.</p>
62      */
SetBundleId(Aws::String && value)63     inline void SetBundleId(Aws::String&& value) { m_bundleIdHasBeenSet = true; m_bundleId = std::move(value); }
64 
65     /**
66      * <p>The bundle identifier that's assigned to your iOS app. This identifier is
67      * used for APNs tokens.</p>
68      */
SetBundleId(const char * value)69     inline void SetBundleId(const char* value) { m_bundleIdHasBeenSet = true; m_bundleId.assign(value); }
70 
71     /**
72      * <p>The bundle identifier that's assigned to your iOS app. This identifier is
73      * used for APNs tokens.</p>
74      */
WithBundleId(const Aws::String & value)75     inline APNSVoipChannelRequest& WithBundleId(const Aws::String& value) { SetBundleId(value); return *this;}
76 
77     /**
78      * <p>The bundle identifier that's assigned to your iOS app. This identifier is
79      * used for APNs tokens.</p>
80      */
WithBundleId(Aws::String && value)81     inline APNSVoipChannelRequest& WithBundleId(Aws::String&& value) { SetBundleId(std::move(value)); return *this;}
82 
83     /**
84      * <p>The bundle identifier that's assigned to your iOS app. This identifier is
85      * used for APNs tokens.</p>
86      */
WithBundleId(const char * value)87     inline APNSVoipChannelRequest& WithBundleId(const char* value) { SetBundleId(value); return *this;}
88 
89 
90     /**
91      * <p>The APNs client certificate that you received from Apple, if you want Amazon
92      * Pinpoint to communicate with APNs by using an APNs certificate.</p>
93      */
GetCertificate()94     inline const Aws::String& GetCertificate() const{ return m_certificate; }
95 
96     /**
97      * <p>The APNs client certificate that you received from Apple, if you want Amazon
98      * Pinpoint to communicate with APNs by using an APNs certificate.</p>
99      */
CertificateHasBeenSet()100     inline bool CertificateHasBeenSet() const { return m_certificateHasBeenSet; }
101 
102     /**
103      * <p>The APNs client certificate that you received from Apple, if you want Amazon
104      * Pinpoint to communicate with APNs by using an APNs certificate.</p>
105      */
SetCertificate(const Aws::String & value)106     inline void SetCertificate(const Aws::String& value) { m_certificateHasBeenSet = true; m_certificate = value; }
107 
108     /**
109      * <p>The APNs client certificate that you received from Apple, if you want Amazon
110      * Pinpoint to communicate with APNs by using an APNs certificate.</p>
111      */
SetCertificate(Aws::String && value)112     inline void SetCertificate(Aws::String&& value) { m_certificateHasBeenSet = true; m_certificate = std::move(value); }
113 
114     /**
115      * <p>The APNs client certificate that you received from Apple, if you want Amazon
116      * Pinpoint to communicate with APNs by using an APNs certificate.</p>
117      */
SetCertificate(const char * value)118     inline void SetCertificate(const char* value) { m_certificateHasBeenSet = true; m_certificate.assign(value); }
119 
120     /**
121      * <p>The APNs client certificate that you received from Apple, if you want Amazon
122      * Pinpoint to communicate with APNs by using an APNs certificate.</p>
123      */
WithCertificate(const Aws::String & value)124     inline APNSVoipChannelRequest& WithCertificate(const Aws::String& value) { SetCertificate(value); return *this;}
125 
126     /**
127      * <p>The APNs client certificate that you received from Apple, if you want Amazon
128      * Pinpoint to communicate with APNs by using an APNs certificate.</p>
129      */
WithCertificate(Aws::String && value)130     inline APNSVoipChannelRequest& WithCertificate(Aws::String&& value) { SetCertificate(std::move(value)); return *this;}
131 
132     /**
133      * <p>The APNs client certificate that you received from Apple, if you want Amazon
134      * Pinpoint to communicate with APNs by using an APNs certificate.</p>
135      */
WithCertificate(const char * value)136     inline APNSVoipChannelRequest& WithCertificate(const char* value) { SetCertificate(value); return *this;}
137 
138 
139     /**
140      * <p>The default authentication method that you want Amazon Pinpoint to use when
141      * authenticating with APNs, key or certificate.</p>
142      */
GetDefaultAuthenticationMethod()143     inline const Aws::String& GetDefaultAuthenticationMethod() const{ return m_defaultAuthenticationMethod; }
144 
145     /**
146      * <p>The default authentication method that you want Amazon Pinpoint to use when
147      * authenticating with APNs, key or certificate.</p>
148      */
DefaultAuthenticationMethodHasBeenSet()149     inline bool DefaultAuthenticationMethodHasBeenSet() const { return m_defaultAuthenticationMethodHasBeenSet; }
150 
151     /**
152      * <p>The default authentication method that you want Amazon Pinpoint to use when
153      * authenticating with APNs, key or certificate.</p>
154      */
SetDefaultAuthenticationMethod(const Aws::String & value)155     inline void SetDefaultAuthenticationMethod(const Aws::String& value) { m_defaultAuthenticationMethodHasBeenSet = true; m_defaultAuthenticationMethod = value; }
156 
157     /**
158      * <p>The default authentication method that you want Amazon Pinpoint to use when
159      * authenticating with APNs, key or certificate.</p>
160      */
SetDefaultAuthenticationMethod(Aws::String && value)161     inline void SetDefaultAuthenticationMethod(Aws::String&& value) { m_defaultAuthenticationMethodHasBeenSet = true; m_defaultAuthenticationMethod = std::move(value); }
162 
163     /**
164      * <p>The default authentication method that you want Amazon Pinpoint to use when
165      * authenticating with APNs, key or certificate.</p>
166      */
SetDefaultAuthenticationMethod(const char * value)167     inline void SetDefaultAuthenticationMethod(const char* value) { m_defaultAuthenticationMethodHasBeenSet = true; m_defaultAuthenticationMethod.assign(value); }
168 
169     /**
170      * <p>The default authentication method that you want Amazon Pinpoint to use when
171      * authenticating with APNs, key or certificate.</p>
172      */
WithDefaultAuthenticationMethod(const Aws::String & value)173     inline APNSVoipChannelRequest& WithDefaultAuthenticationMethod(const Aws::String& value) { SetDefaultAuthenticationMethod(value); return *this;}
174 
175     /**
176      * <p>The default authentication method that you want Amazon Pinpoint to use when
177      * authenticating with APNs, key or certificate.</p>
178      */
WithDefaultAuthenticationMethod(Aws::String && value)179     inline APNSVoipChannelRequest& WithDefaultAuthenticationMethod(Aws::String&& value) { SetDefaultAuthenticationMethod(std::move(value)); return *this;}
180 
181     /**
182      * <p>The default authentication method that you want Amazon Pinpoint to use when
183      * authenticating with APNs, key or certificate.</p>
184      */
WithDefaultAuthenticationMethod(const char * value)185     inline APNSVoipChannelRequest& WithDefaultAuthenticationMethod(const char* value) { SetDefaultAuthenticationMethod(value); return *this;}
186 
187 
188     /**
189      * <p>Specifies whether to enable the APNs VoIP channel for the application.</p>
190      */
GetEnabled()191     inline bool GetEnabled() const{ return m_enabled; }
192 
193     /**
194      * <p>Specifies whether to enable the APNs VoIP channel for the application.</p>
195      */
EnabledHasBeenSet()196     inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; }
197 
198     /**
199      * <p>Specifies whether to enable the APNs VoIP channel for the application.</p>
200      */
SetEnabled(bool value)201     inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; }
202 
203     /**
204      * <p>Specifies whether to enable the APNs VoIP channel for the application.</p>
205      */
WithEnabled(bool value)206     inline APNSVoipChannelRequest& WithEnabled(bool value) { SetEnabled(value); return *this;}
207 
208 
209     /**
210      * <p>The private key for the APNs client certificate that you want Amazon Pinpoint
211      * to use to communicate with APNs.</p>
212      */
GetPrivateKey()213     inline const Aws::String& GetPrivateKey() const{ return m_privateKey; }
214 
215     /**
216      * <p>The private key for the APNs client certificate that you want Amazon Pinpoint
217      * to use to communicate with APNs.</p>
218      */
PrivateKeyHasBeenSet()219     inline bool PrivateKeyHasBeenSet() const { return m_privateKeyHasBeenSet; }
220 
221     /**
222      * <p>The private key for the APNs client certificate that you want Amazon Pinpoint
223      * to use to communicate with APNs.</p>
224      */
SetPrivateKey(const Aws::String & value)225     inline void SetPrivateKey(const Aws::String& value) { m_privateKeyHasBeenSet = true; m_privateKey = value; }
226 
227     /**
228      * <p>The private key for the APNs client certificate that you want Amazon Pinpoint
229      * to use to communicate with APNs.</p>
230      */
SetPrivateKey(Aws::String && value)231     inline void SetPrivateKey(Aws::String&& value) { m_privateKeyHasBeenSet = true; m_privateKey = std::move(value); }
232 
233     /**
234      * <p>The private key for the APNs client certificate that you want Amazon Pinpoint
235      * to use to communicate with APNs.</p>
236      */
SetPrivateKey(const char * value)237     inline void SetPrivateKey(const char* value) { m_privateKeyHasBeenSet = true; m_privateKey.assign(value); }
238 
239     /**
240      * <p>The private key for the APNs client certificate that you want Amazon Pinpoint
241      * to use to communicate with APNs.</p>
242      */
WithPrivateKey(const Aws::String & value)243     inline APNSVoipChannelRequest& WithPrivateKey(const Aws::String& value) { SetPrivateKey(value); return *this;}
244 
245     /**
246      * <p>The private key for the APNs client certificate that you want Amazon Pinpoint
247      * to use to communicate with APNs.</p>
248      */
WithPrivateKey(Aws::String && value)249     inline APNSVoipChannelRequest& WithPrivateKey(Aws::String&& value) { SetPrivateKey(std::move(value)); return *this;}
250 
251     /**
252      * <p>The private key for the APNs client certificate that you want Amazon Pinpoint
253      * to use to communicate with APNs.</p>
254      */
WithPrivateKey(const char * value)255     inline APNSVoipChannelRequest& WithPrivateKey(const char* value) { SetPrivateKey(value); return *this;}
256 
257 
258     /**
259      * <p>The identifier that's assigned to your Apple developer account team. This
260      * identifier is used for APNs tokens.</p>
261      */
GetTeamId()262     inline const Aws::String& GetTeamId() const{ return m_teamId; }
263 
264     /**
265      * <p>The identifier that's assigned to your Apple developer account team. This
266      * identifier is used for APNs tokens.</p>
267      */
TeamIdHasBeenSet()268     inline bool TeamIdHasBeenSet() const { return m_teamIdHasBeenSet; }
269 
270     /**
271      * <p>The identifier that's assigned to your Apple developer account team. This
272      * identifier is used for APNs tokens.</p>
273      */
SetTeamId(const Aws::String & value)274     inline void SetTeamId(const Aws::String& value) { m_teamIdHasBeenSet = true; m_teamId = value; }
275 
276     /**
277      * <p>The identifier that's assigned to your Apple developer account team. This
278      * identifier is used for APNs tokens.</p>
279      */
SetTeamId(Aws::String && value)280     inline void SetTeamId(Aws::String&& value) { m_teamIdHasBeenSet = true; m_teamId = std::move(value); }
281 
282     /**
283      * <p>The identifier that's assigned to your Apple developer account team. This
284      * identifier is used for APNs tokens.</p>
285      */
SetTeamId(const char * value)286     inline void SetTeamId(const char* value) { m_teamIdHasBeenSet = true; m_teamId.assign(value); }
287 
288     /**
289      * <p>The identifier that's assigned to your Apple developer account team. This
290      * identifier is used for APNs tokens.</p>
291      */
WithTeamId(const Aws::String & value)292     inline APNSVoipChannelRequest& WithTeamId(const Aws::String& value) { SetTeamId(value); return *this;}
293 
294     /**
295      * <p>The identifier that's assigned to your Apple developer account team. This
296      * identifier is used for APNs tokens.</p>
297      */
WithTeamId(Aws::String && value)298     inline APNSVoipChannelRequest& WithTeamId(Aws::String&& value) { SetTeamId(std::move(value)); return *this;}
299 
300     /**
301      * <p>The identifier that's assigned to your Apple developer account team. This
302      * identifier is used for APNs tokens.</p>
303      */
WithTeamId(const char * value)304     inline APNSVoipChannelRequest& WithTeamId(const char* value) { SetTeamId(value); return *this;}
305 
306 
307     /**
308      * <p>The authentication key to use for APNs tokens.</p>
309      */
GetTokenKey()310     inline const Aws::String& GetTokenKey() const{ return m_tokenKey; }
311 
312     /**
313      * <p>The authentication key to use for APNs tokens.</p>
314      */
TokenKeyHasBeenSet()315     inline bool TokenKeyHasBeenSet() const { return m_tokenKeyHasBeenSet; }
316 
317     /**
318      * <p>The authentication key to use for APNs tokens.</p>
319      */
SetTokenKey(const Aws::String & value)320     inline void SetTokenKey(const Aws::String& value) { m_tokenKeyHasBeenSet = true; m_tokenKey = value; }
321 
322     /**
323      * <p>The authentication key to use for APNs tokens.</p>
324      */
SetTokenKey(Aws::String && value)325     inline void SetTokenKey(Aws::String&& value) { m_tokenKeyHasBeenSet = true; m_tokenKey = std::move(value); }
326 
327     /**
328      * <p>The authentication key to use for APNs tokens.</p>
329      */
SetTokenKey(const char * value)330     inline void SetTokenKey(const char* value) { m_tokenKeyHasBeenSet = true; m_tokenKey.assign(value); }
331 
332     /**
333      * <p>The authentication key to use for APNs tokens.</p>
334      */
WithTokenKey(const Aws::String & value)335     inline APNSVoipChannelRequest& WithTokenKey(const Aws::String& value) { SetTokenKey(value); return *this;}
336 
337     /**
338      * <p>The authentication key to use for APNs tokens.</p>
339      */
WithTokenKey(Aws::String && value)340     inline APNSVoipChannelRequest& WithTokenKey(Aws::String&& value) { SetTokenKey(std::move(value)); return *this;}
341 
342     /**
343      * <p>The authentication key to use for APNs tokens.</p>
344      */
WithTokenKey(const char * value)345     inline APNSVoipChannelRequest& WithTokenKey(const char* value) { SetTokenKey(value); return *this;}
346 
347 
348     /**
349      * <p>The key identifier that's assigned to your APNs signing key, if you want
350      * Amazon Pinpoint to communicate with APNs by using APNs tokens.</p>
351      */
GetTokenKeyId()352     inline const Aws::String& GetTokenKeyId() const{ return m_tokenKeyId; }
353 
354     /**
355      * <p>The key identifier that's assigned to your APNs signing key, if you want
356      * Amazon Pinpoint to communicate with APNs by using APNs tokens.</p>
357      */
TokenKeyIdHasBeenSet()358     inline bool TokenKeyIdHasBeenSet() const { return m_tokenKeyIdHasBeenSet; }
359 
360     /**
361      * <p>The key identifier that's assigned to your APNs signing key, if you want
362      * Amazon Pinpoint to communicate with APNs by using APNs tokens.</p>
363      */
SetTokenKeyId(const Aws::String & value)364     inline void SetTokenKeyId(const Aws::String& value) { m_tokenKeyIdHasBeenSet = true; m_tokenKeyId = value; }
365 
366     /**
367      * <p>The key identifier that's assigned to your APNs signing key, if you want
368      * Amazon Pinpoint to communicate with APNs by using APNs tokens.</p>
369      */
SetTokenKeyId(Aws::String && value)370     inline void SetTokenKeyId(Aws::String&& value) { m_tokenKeyIdHasBeenSet = true; m_tokenKeyId = std::move(value); }
371 
372     /**
373      * <p>The key identifier that's assigned to your APNs signing key, if you want
374      * Amazon Pinpoint to communicate with APNs by using APNs tokens.</p>
375      */
SetTokenKeyId(const char * value)376     inline void SetTokenKeyId(const char* value) { m_tokenKeyIdHasBeenSet = true; m_tokenKeyId.assign(value); }
377 
378     /**
379      * <p>The key identifier that's assigned to your APNs signing key, if you want
380      * Amazon Pinpoint to communicate with APNs by using APNs tokens.</p>
381      */
WithTokenKeyId(const Aws::String & value)382     inline APNSVoipChannelRequest& WithTokenKeyId(const Aws::String& value) { SetTokenKeyId(value); return *this;}
383 
384     /**
385      * <p>The key identifier that's assigned to your APNs signing key, if you want
386      * Amazon Pinpoint to communicate with APNs by using APNs tokens.</p>
387      */
WithTokenKeyId(Aws::String && value)388     inline APNSVoipChannelRequest& WithTokenKeyId(Aws::String&& value) { SetTokenKeyId(std::move(value)); return *this;}
389 
390     /**
391      * <p>The key identifier that's assigned to your APNs signing key, if you want
392      * Amazon Pinpoint to communicate with APNs by using APNs tokens.</p>
393      */
WithTokenKeyId(const char * value)394     inline APNSVoipChannelRequest& WithTokenKeyId(const char* value) { SetTokenKeyId(value); return *this;}
395 
396   private:
397 
398     Aws::String m_bundleId;
399     bool m_bundleIdHasBeenSet;
400 
401     Aws::String m_certificate;
402     bool m_certificateHasBeenSet;
403 
404     Aws::String m_defaultAuthenticationMethod;
405     bool m_defaultAuthenticationMethodHasBeenSet;
406 
407     bool m_enabled;
408     bool m_enabledHasBeenSet;
409 
410     Aws::String m_privateKey;
411     bool m_privateKeyHasBeenSet;
412 
413     Aws::String m_teamId;
414     bool m_teamIdHasBeenSet;
415 
416     Aws::String m_tokenKey;
417     bool m_tokenKeyHasBeenSet;
418 
419     Aws::String m_tokenKeyId;
420     bool m_tokenKeyIdHasBeenSet;
421   };
422 
423 } // namespace Model
424 } // namespace Pinpoint
425 } // namespace Aws
426