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/inspector/Inspector_EXPORTS.h>
8 #include <aws/inspector/InspectorRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/inspector/model/InspectorEvent.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Inspector
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_INSPECTOR_API UnsubscribeFromEventRequest : public InspectorRequest
23   {
24   public:
25     UnsubscribeFromEventRequest();
26 
27     // Service request name is the Operation name which will send this request out,
28     // each operation should has unique request name, so that we can get operation's name from this request.
29     // Note: this is not true for response, multiple operations may have the same response name,
30     // so we can not get operation's name from response.
GetServiceRequestName()31     inline virtual const char* GetServiceRequestName() const override { return "UnsubscribeFromEvent"; }
32 
33     Aws::String SerializePayload() const override;
34 
35     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
36 
37 
38     /**
39      * <p>The ARN of the assessment template that is used during the event for which
40      * you want to stop receiving SNS notifications.</p>
41      */
GetResourceArn()42     inline const Aws::String& GetResourceArn() const{ return m_resourceArn; }
43 
44     /**
45      * <p>The ARN of the assessment template that is used during the event for which
46      * you want to stop receiving SNS notifications.</p>
47      */
ResourceArnHasBeenSet()48     inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; }
49 
50     /**
51      * <p>The ARN of the assessment template that is used during the event for which
52      * you want to stop receiving SNS notifications.</p>
53      */
SetResourceArn(const Aws::String & value)54     inline void SetResourceArn(const Aws::String& value) { m_resourceArnHasBeenSet = true; m_resourceArn = value; }
55 
56     /**
57      * <p>The ARN of the assessment template that is used during the event for which
58      * you want to stop receiving SNS notifications.</p>
59      */
SetResourceArn(Aws::String && value)60     inline void SetResourceArn(Aws::String&& value) { m_resourceArnHasBeenSet = true; m_resourceArn = std::move(value); }
61 
62     /**
63      * <p>The ARN of the assessment template that is used during the event for which
64      * you want to stop receiving SNS notifications.</p>
65      */
SetResourceArn(const char * value)66     inline void SetResourceArn(const char* value) { m_resourceArnHasBeenSet = true; m_resourceArn.assign(value); }
67 
68     /**
69      * <p>The ARN of the assessment template that is used during the event for which
70      * you want to stop receiving SNS notifications.</p>
71      */
WithResourceArn(const Aws::String & value)72     inline UnsubscribeFromEventRequest& WithResourceArn(const Aws::String& value) { SetResourceArn(value); return *this;}
73 
74     /**
75      * <p>The ARN of the assessment template that is used during the event for which
76      * you want to stop receiving SNS notifications.</p>
77      */
WithResourceArn(Aws::String && value)78     inline UnsubscribeFromEventRequest& WithResourceArn(Aws::String&& value) { SetResourceArn(std::move(value)); return *this;}
79 
80     /**
81      * <p>The ARN of the assessment template that is used during the event for which
82      * you want to stop receiving SNS notifications.</p>
83      */
WithResourceArn(const char * value)84     inline UnsubscribeFromEventRequest& WithResourceArn(const char* value) { SetResourceArn(value); return *this;}
85 
86 
87     /**
88      * <p>The event for which you want to stop receiving SNS notifications.</p>
89      */
GetEvent()90     inline const InspectorEvent& GetEvent() const{ return m_event; }
91 
92     /**
93      * <p>The event for which you want to stop receiving SNS notifications.</p>
94      */
EventHasBeenSet()95     inline bool EventHasBeenSet() const { return m_eventHasBeenSet; }
96 
97     /**
98      * <p>The event for which you want to stop receiving SNS notifications.</p>
99      */
SetEvent(const InspectorEvent & value)100     inline void SetEvent(const InspectorEvent& value) { m_eventHasBeenSet = true; m_event = value; }
101 
102     /**
103      * <p>The event for which you want to stop receiving SNS notifications.</p>
104      */
SetEvent(InspectorEvent && value)105     inline void SetEvent(InspectorEvent&& value) { m_eventHasBeenSet = true; m_event = std::move(value); }
106 
107     /**
108      * <p>The event for which you want to stop receiving SNS notifications.</p>
109      */
WithEvent(const InspectorEvent & value)110     inline UnsubscribeFromEventRequest& WithEvent(const InspectorEvent& value) { SetEvent(value); return *this;}
111 
112     /**
113      * <p>The event for which you want to stop receiving SNS notifications.</p>
114      */
WithEvent(InspectorEvent && value)115     inline UnsubscribeFromEventRequest& WithEvent(InspectorEvent&& value) { SetEvent(std::move(value)); return *this;}
116 
117 
118     /**
119      * <p>The ARN of the SNS topic to which SNS notifications are sent.</p>
120      */
GetTopicArn()121     inline const Aws::String& GetTopicArn() const{ return m_topicArn; }
122 
123     /**
124      * <p>The ARN of the SNS topic to which SNS notifications are sent.</p>
125      */
TopicArnHasBeenSet()126     inline bool TopicArnHasBeenSet() const { return m_topicArnHasBeenSet; }
127 
128     /**
129      * <p>The ARN of the SNS topic to which SNS notifications are sent.</p>
130      */
SetTopicArn(const Aws::String & value)131     inline void SetTopicArn(const Aws::String& value) { m_topicArnHasBeenSet = true; m_topicArn = value; }
132 
133     /**
134      * <p>The ARN of the SNS topic to which SNS notifications are sent.</p>
135      */
SetTopicArn(Aws::String && value)136     inline void SetTopicArn(Aws::String&& value) { m_topicArnHasBeenSet = true; m_topicArn = std::move(value); }
137 
138     /**
139      * <p>The ARN of the SNS topic to which SNS notifications are sent.</p>
140      */
SetTopicArn(const char * value)141     inline void SetTopicArn(const char* value) { m_topicArnHasBeenSet = true; m_topicArn.assign(value); }
142 
143     /**
144      * <p>The ARN of the SNS topic to which SNS notifications are sent.</p>
145      */
WithTopicArn(const Aws::String & value)146     inline UnsubscribeFromEventRequest& WithTopicArn(const Aws::String& value) { SetTopicArn(value); return *this;}
147 
148     /**
149      * <p>The ARN of the SNS topic to which SNS notifications are sent.</p>
150      */
WithTopicArn(Aws::String && value)151     inline UnsubscribeFromEventRequest& WithTopicArn(Aws::String&& value) { SetTopicArn(std::move(value)); return *this;}
152 
153     /**
154      * <p>The ARN of the SNS topic to which SNS notifications are sent.</p>
155      */
WithTopicArn(const char * value)156     inline UnsubscribeFromEventRequest& WithTopicArn(const char* value) { SetTopicArn(value); return *this;}
157 
158   private:
159 
160     Aws::String m_resourceArn;
161     bool m_resourceArnHasBeenSet;
162 
163     InspectorEvent m_event;
164     bool m_eventHasBeenSet;
165 
166     Aws::String m_topicArn;
167     bool m_topicArnHasBeenSet;
168   };
169 
170 } // namespace Model
171 } // namespace Inspector
172 } // namespace Aws
173