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/devops-guru/DevOpsGuru_EXPORTS.h>
8 #include <aws/devops-guru/DevOpsGuruRequest.h>
9 #include <aws/devops-guru/model/NotificationChannelConfig.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace DevOpsGuru
15 {
16 namespace Model
17 {
18 
19   /**
20    */
21   class AWS_DEVOPSGURU_API AddNotificationChannelRequest : public DevOpsGuruRequest
22   {
23   public:
24     AddNotificationChannelRequest();
25 
26     // Service request name is the Operation name which will send this request out,
27     // each operation should has unique request name, so that we can get operation's name from this request.
28     // Note: this is not true for response, multiple operations may have the same response name,
29     // so we can not get operation's name from response.
GetServiceRequestName()30     inline virtual const char* GetServiceRequestName() const override { return "AddNotificationChannel"; }
31 
32     Aws::String SerializePayload() const override;
33 
34 
35     /**
36      * <p> A <code>NotificationChannelConfig</code> object that specifies what type of
37      * notification channel to add. The one supported notification channel is Amazon
38      * Simple Notification Service (Amazon SNS). </p>
39      */
GetConfig()40     inline const NotificationChannelConfig& GetConfig() const{ return m_config; }
41 
42     /**
43      * <p> A <code>NotificationChannelConfig</code> object that specifies what type of
44      * notification channel to add. The one supported notification channel is Amazon
45      * Simple Notification Service (Amazon SNS). </p>
46      */
ConfigHasBeenSet()47     inline bool ConfigHasBeenSet() const { return m_configHasBeenSet; }
48 
49     /**
50      * <p> A <code>NotificationChannelConfig</code> object that specifies what type of
51      * notification channel to add. The one supported notification channel is Amazon
52      * Simple Notification Service (Amazon SNS). </p>
53      */
SetConfig(const NotificationChannelConfig & value)54     inline void SetConfig(const NotificationChannelConfig& value) { m_configHasBeenSet = true; m_config = value; }
55 
56     /**
57      * <p> A <code>NotificationChannelConfig</code> object that specifies what type of
58      * notification channel to add. The one supported notification channel is Amazon
59      * Simple Notification Service (Amazon SNS). </p>
60      */
SetConfig(NotificationChannelConfig && value)61     inline void SetConfig(NotificationChannelConfig&& value) { m_configHasBeenSet = true; m_config = std::move(value); }
62 
63     /**
64      * <p> A <code>NotificationChannelConfig</code> object that specifies what type of
65      * notification channel to add. The one supported notification channel is Amazon
66      * Simple Notification Service (Amazon SNS). </p>
67      */
WithConfig(const NotificationChannelConfig & value)68     inline AddNotificationChannelRequest& WithConfig(const NotificationChannelConfig& value) { SetConfig(value); return *this;}
69 
70     /**
71      * <p> A <code>NotificationChannelConfig</code> object that specifies what type of
72      * notification channel to add. The one supported notification channel is Amazon
73      * Simple Notification Service (Amazon SNS). </p>
74      */
WithConfig(NotificationChannelConfig && value)75     inline AddNotificationChannelRequest& WithConfig(NotificationChannelConfig&& value) { SetConfig(std::move(value)); return *this;}
76 
77   private:
78 
79     NotificationChannelConfig m_config;
80     bool m_configHasBeenSet;
81   };
82 
83 } // namespace Model
84 } // namespace DevOpsGuru
85 } // namespace Aws
86