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/dms/DatabaseMigrationService_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace DatabaseMigrationService
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Lists categories of events subscribed to, and generated by, the applicable
29    * DMS resource type. This data type appears in response to the <a
30    * href="https://docs.aws.amazon.com/dms/latest/APIReference/API_EventCategoryGroup.html">
31    * <code>DescribeEventCategories</code> </a> action.</p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/EventCategoryGroup">AWS
33    * API Reference</a></p>
34    */
35   class AWS_DATABASEMIGRATIONSERVICE_API EventCategoryGroup
36   {
37   public:
38     EventCategoryGroup();
39     EventCategoryGroup(Aws::Utils::Json::JsonView jsonValue);
40     EventCategoryGroup& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p> The type of DMS resource that generates events. </p> <p>Valid values:
46      * replication-instance | replication-server | security-group |
47      * replication-task</p>
48      */
GetSourceType()49     inline const Aws::String& GetSourceType() const{ return m_sourceType; }
50 
51     /**
52      * <p> The type of DMS resource that generates events. </p> <p>Valid values:
53      * replication-instance | replication-server | security-group |
54      * replication-task</p>
55      */
SourceTypeHasBeenSet()56     inline bool SourceTypeHasBeenSet() const { return m_sourceTypeHasBeenSet; }
57 
58     /**
59      * <p> The type of DMS resource that generates events. </p> <p>Valid values:
60      * replication-instance | replication-server | security-group |
61      * replication-task</p>
62      */
SetSourceType(const Aws::String & value)63     inline void SetSourceType(const Aws::String& value) { m_sourceTypeHasBeenSet = true; m_sourceType = value; }
64 
65     /**
66      * <p> The type of DMS resource that generates events. </p> <p>Valid values:
67      * replication-instance | replication-server | security-group |
68      * replication-task</p>
69      */
SetSourceType(Aws::String && value)70     inline void SetSourceType(Aws::String&& value) { m_sourceTypeHasBeenSet = true; m_sourceType = std::move(value); }
71 
72     /**
73      * <p> The type of DMS resource that generates events. </p> <p>Valid values:
74      * replication-instance | replication-server | security-group |
75      * replication-task</p>
76      */
SetSourceType(const char * value)77     inline void SetSourceType(const char* value) { m_sourceTypeHasBeenSet = true; m_sourceType.assign(value); }
78 
79     /**
80      * <p> The type of DMS resource that generates events. </p> <p>Valid values:
81      * replication-instance | replication-server | security-group |
82      * replication-task</p>
83      */
WithSourceType(const Aws::String & value)84     inline EventCategoryGroup& WithSourceType(const Aws::String& value) { SetSourceType(value); return *this;}
85 
86     /**
87      * <p> The type of DMS resource that generates events. </p> <p>Valid values:
88      * replication-instance | replication-server | security-group |
89      * replication-task</p>
90      */
WithSourceType(Aws::String && value)91     inline EventCategoryGroup& WithSourceType(Aws::String&& value) { SetSourceType(std::move(value)); return *this;}
92 
93     /**
94      * <p> The type of DMS resource that generates events. </p> <p>Valid values:
95      * replication-instance | replication-server | security-group |
96      * replication-task</p>
97      */
WithSourceType(const char * value)98     inline EventCategoryGroup& WithSourceType(const char* value) { SetSourceType(value); return *this;}
99 
100 
101     /**
102      * <p> A list of event categories from a source type that you've chosen.</p>
103      */
GetEventCategories()104     inline const Aws::Vector<Aws::String>& GetEventCategories() const{ return m_eventCategories; }
105 
106     /**
107      * <p> A list of event categories from a source type that you've chosen.</p>
108      */
EventCategoriesHasBeenSet()109     inline bool EventCategoriesHasBeenSet() const { return m_eventCategoriesHasBeenSet; }
110 
111     /**
112      * <p> A list of event categories from a source type that you've chosen.</p>
113      */
SetEventCategories(const Aws::Vector<Aws::String> & value)114     inline void SetEventCategories(const Aws::Vector<Aws::String>& value) { m_eventCategoriesHasBeenSet = true; m_eventCategories = value; }
115 
116     /**
117      * <p> A list of event categories from a source type that you've chosen.</p>
118      */
SetEventCategories(Aws::Vector<Aws::String> && value)119     inline void SetEventCategories(Aws::Vector<Aws::String>&& value) { m_eventCategoriesHasBeenSet = true; m_eventCategories = std::move(value); }
120 
121     /**
122      * <p> A list of event categories from a source type that you've chosen.</p>
123      */
WithEventCategories(const Aws::Vector<Aws::String> & value)124     inline EventCategoryGroup& WithEventCategories(const Aws::Vector<Aws::String>& value) { SetEventCategories(value); return *this;}
125 
126     /**
127      * <p> A list of event categories from a source type that you've chosen.</p>
128      */
WithEventCategories(Aws::Vector<Aws::String> && value)129     inline EventCategoryGroup& WithEventCategories(Aws::Vector<Aws::String>&& value) { SetEventCategories(std::move(value)); return *this;}
130 
131     /**
132      * <p> A list of event categories from a source type that you've chosen.</p>
133      */
AddEventCategories(const Aws::String & value)134     inline EventCategoryGroup& AddEventCategories(const Aws::String& value) { m_eventCategoriesHasBeenSet = true; m_eventCategories.push_back(value); return *this; }
135 
136     /**
137      * <p> A list of event categories from a source type that you've chosen.</p>
138      */
AddEventCategories(Aws::String && value)139     inline EventCategoryGroup& AddEventCategories(Aws::String&& value) { m_eventCategoriesHasBeenSet = true; m_eventCategories.push_back(std::move(value)); return *this; }
140 
141     /**
142      * <p> A list of event categories from a source type that you've chosen.</p>
143      */
AddEventCategories(const char * value)144     inline EventCategoryGroup& AddEventCategories(const char* value) { m_eventCategoriesHasBeenSet = true; m_eventCategories.push_back(value); return *this; }
145 
146   private:
147 
148     Aws::String m_sourceType;
149     bool m_sourceTypeHasBeenSet;
150 
151     Aws::Vector<Aws::String> m_eventCategories;
152     bool m_eventCategoriesHasBeenSet;
153   };
154 
155 } // namespace Model
156 } // namespace DatabaseMigrationService
157 } // namespace Aws
158