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 GCM channel for an application. This
28    * channel enables Amazon Pinpoint to send push notifications through the Firebase
29    * Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM),
30    * service.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/GCMChannelRequest">AWS
32    * API Reference</a></p>
33    */
34   class AWS_PINPOINT_API GCMChannelRequest
35   {
36   public:
37     GCMChannelRequest();
38     GCMChannelRequest(Aws::Utils::Json::JsonView jsonValue);
39     GCMChannelRequest& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>,
45      * that you received from Google to communicate with Google services.</p>
46      */
GetApiKey()47     inline const Aws::String& GetApiKey() const{ return m_apiKey; }
48 
49     /**
50      * <p>The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>,
51      * that you received from Google to communicate with Google services.</p>
52      */
ApiKeyHasBeenSet()53     inline bool ApiKeyHasBeenSet() const { return m_apiKeyHasBeenSet; }
54 
55     /**
56      * <p>The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>,
57      * that you received from Google to communicate with Google services.</p>
58      */
SetApiKey(const Aws::String & value)59     inline void SetApiKey(const Aws::String& value) { m_apiKeyHasBeenSet = true; m_apiKey = value; }
60 
61     /**
62      * <p>The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>,
63      * that you received from Google to communicate with Google services.</p>
64      */
SetApiKey(Aws::String && value)65     inline void SetApiKey(Aws::String&& value) { m_apiKeyHasBeenSet = true; m_apiKey = std::move(value); }
66 
67     /**
68      * <p>The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>,
69      * that you received from Google to communicate with Google services.</p>
70      */
SetApiKey(const char * value)71     inline void SetApiKey(const char* value) { m_apiKeyHasBeenSet = true; m_apiKey.assign(value); }
72 
73     /**
74      * <p>The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>,
75      * that you received from Google to communicate with Google services.</p>
76      */
WithApiKey(const Aws::String & value)77     inline GCMChannelRequest& WithApiKey(const Aws::String& value) { SetApiKey(value); return *this;}
78 
79     /**
80      * <p>The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>,
81      * that you received from Google to communicate with Google services.</p>
82      */
WithApiKey(Aws::String && value)83     inline GCMChannelRequest& WithApiKey(Aws::String&& value) { SetApiKey(std::move(value)); return *this;}
84 
85     /**
86      * <p>The Web API Key, also referred to as an <i>API_KEY</i> or <i>server key</i>,
87      * that you received from Google to communicate with Google services.</p>
88      */
WithApiKey(const char * value)89     inline GCMChannelRequest& WithApiKey(const char* value) { SetApiKey(value); return *this;}
90 
91 
92     /**
93      * <p>Specifies whether to enable the GCM channel for the application.</p>
94      */
GetEnabled()95     inline bool GetEnabled() const{ return m_enabled; }
96 
97     /**
98      * <p>Specifies whether to enable the GCM channel for the application.</p>
99      */
EnabledHasBeenSet()100     inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; }
101 
102     /**
103      * <p>Specifies whether to enable the GCM channel for the application.</p>
104      */
SetEnabled(bool value)105     inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; }
106 
107     /**
108      * <p>Specifies whether to enable the GCM channel for the application.</p>
109      */
WithEnabled(bool value)110     inline GCMChannelRequest& WithEnabled(bool value) { SetEnabled(value); return *this;}
111 
112   private:
113 
114     Aws::String m_apiKey;
115     bool m_apiKeyHasBeenSet;
116 
117     bool m_enabled;
118     bool m_enabledHasBeenSet;
119   };
120 
121 } // namespace Model
122 } // namespace Pinpoint
123 } // namespace Aws
124