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/auditmanager/AuditManager_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/auditmanager/model/SourceSetUpOption.h>
10 #include <aws/auditmanager/model/SourceType.h>
11 #include <aws/auditmanager/model/SourceKeyword.h>
12 #include <aws/auditmanager/model/SourceFrequency.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace AuditManager
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p> The data source that determines from where Audit Manager collects evidence
32    * for the control. </p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/auditmanager-2017-07-25/ControlMappingSource">AWS
34    * API Reference</a></p>
35    */
36   class AWS_AUDITMANAGER_API ControlMappingSource
37   {
38   public:
39     ControlMappingSource();
40     ControlMappingSource(Aws::Utils::Json::JsonView jsonValue);
41     ControlMappingSource& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p> The unique identifier for the specified source. </p>
47      */
GetSourceId()48     inline const Aws::String& GetSourceId() const{ return m_sourceId; }
49 
50     /**
51      * <p> The unique identifier for the specified source. </p>
52      */
SourceIdHasBeenSet()53     inline bool SourceIdHasBeenSet() const { return m_sourceIdHasBeenSet; }
54 
55     /**
56      * <p> The unique identifier for the specified source. </p>
57      */
SetSourceId(const Aws::String & value)58     inline void SetSourceId(const Aws::String& value) { m_sourceIdHasBeenSet = true; m_sourceId = value; }
59 
60     /**
61      * <p> The unique identifier for the specified source. </p>
62      */
SetSourceId(Aws::String && value)63     inline void SetSourceId(Aws::String&& value) { m_sourceIdHasBeenSet = true; m_sourceId = std::move(value); }
64 
65     /**
66      * <p> The unique identifier for the specified source. </p>
67      */
SetSourceId(const char * value)68     inline void SetSourceId(const char* value) { m_sourceIdHasBeenSet = true; m_sourceId.assign(value); }
69 
70     /**
71      * <p> The unique identifier for the specified source. </p>
72      */
WithSourceId(const Aws::String & value)73     inline ControlMappingSource& WithSourceId(const Aws::String& value) { SetSourceId(value); return *this;}
74 
75     /**
76      * <p> The unique identifier for the specified source. </p>
77      */
WithSourceId(Aws::String && value)78     inline ControlMappingSource& WithSourceId(Aws::String&& value) { SetSourceId(std::move(value)); return *this;}
79 
80     /**
81      * <p> The unique identifier for the specified source. </p>
82      */
WithSourceId(const char * value)83     inline ControlMappingSource& WithSourceId(const char* value) { SetSourceId(value); return *this;}
84 
85 
86     /**
87      * <p> The name of the specified source. </p>
88      */
GetSourceName()89     inline const Aws::String& GetSourceName() const{ return m_sourceName; }
90 
91     /**
92      * <p> The name of the specified source. </p>
93      */
SourceNameHasBeenSet()94     inline bool SourceNameHasBeenSet() const { return m_sourceNameHasBeenSet; }
95 
96     /**
97      * <p> The name of the specified source. </p>
98      */
SetSourceName(const Aws::String & value)99     inline void SetSourceName(const Aws::String& value) { m_sourceNameHasBeenSet = true; m_sourceName = value; }
100 
101     /**
102      * <p> The name of the specified source. </p>
103      */
SetSourceName(Aws::String && value)104     inline void SetSourceName(Aws::String&& value) { m_sourceNameHasBeenSet = true; m_sourceName = std::move(value); }
105 
106     /**
107      * <p> The name of the specified source. </p>
108      */
SetSourceName(const char * value)109     inline void SetSourceName(const char* value) { m_sourceNameHasBeenSet = true; m_sourceName.assign(value); }
110 
111     /**
112      * <p> The name of the specified source. </p>
113      */
WithSourceName(const Aws::String & value)114     inline ControlMappingSource& WithSourceName(const Aws::String& value) { SetSourceName(value); return *this;}
115 
116     /**
117      * <p> The name of the specified source. </p>
118      */
WithSourceName(Aws::String && value)119     inline ControlMappingSource& WithSourceName(Aws::String&& value) { SetSourceName(std::move(value)); return *this;}
120 
121     /**
122      * <p> The name of the specified source. </p>
123      */
WithSourceName(const char * value)124     inline ControlMappingSource& WithSourceName(const char* value) { SetSourceName(value); return *this;}
125 
126 
127     /**
128      * <p> The description of the specified source. </p>
129      */
GetSourceDescription()130     inline const Aws::String& GetSourceDescription() const{ return m_sourceDescription; }
131 
132     /**
133      * <p> The description of the specified source. </p>
134      */
SourceDescriptionHasBeenSet()135     inline bool SourceDescriptionHasBeenSet() const { return m_sourceDescriptionHasBeenSet; }
136 
137     /**
138      * <p> The description of the specified source. </p>
139      */
SetSourceDescription(const Aws::String & value)140     inline void SetSourceDescription(const Aws::String& value) { m_sourceDescriptionHasBeenSet = true; m_sourceDescription = value; }
141 
142     /**
143      * <p> The description of the specified source. </p>
144      */
SetSourceDescription(Aws::String && value)145     inline void SetSourceDescription(Aws::String&& value) { m_sourceDescriptionHasBeenSet = true; m_sourceDescription = std::move(value); }
146 
147     /**
148      * <p> The description of the specified source. </p>
149      */
SetSourceDescription(const char * value)150     inline void SetSourceDescription(const char* value) { m_sourceDescriptionHasBeenSet = true; m_sourceDescription.assign(value); }
151 
152     /**
153      * <p> The description of the specified source. </p>
154      */
WithSourceDescription(const Aws::String & value)155     inline ControlMappingSource& WithSourceDescription(const Aws::String& value) { SetSourceDescription(value); return *this;}
156 
157     /**
158      * <p> The description of the specified source. </p>
159      */
WithSourceDescription(Aws::String && value)160     inline ControlMappingSource& WithSourceDescription(Aws::String&& value) { SetSourceDescription(std::move(value)); return *this;}
161 
162     /**
163      * <p> The description of the specified source. </p>
164      */
WithSourceDescription(const char * value)165     inline ControlMappingSource& WithSourceDescription(const char* value) { SetSourceDescription(value); return *this;}
166 
167 
168     /**
169      * <p> The setup option for the data source, which reflects if the evidence
170      * collection is automated or manual. </p>
171      */
GetSourceSetUpOption()172     inline const SourceSetUpOption& GetSourceSetUpOption() const{ return m_sourceSetUpOption; }
173 
174     /**
175      * <p> The setup option for the data source, which reflects if the evidence
176      * collection is automated or manual. </p>
177      */
SourceSetUpOptionHasBeenSet()178     inline bool SourceSetUpOptionHasBeenSet() const { return m_sourceSetUpOptionHasBeenSet; }
179 
180     /**
181      * <p> The setup option for the data source, which reflects if the evidence
182      * collection is automated or manual. </p>
183      */
SetSourceSetUpOption(const SourceSetUpOption & value)184     inline void SetSourceSetUpOption(const SourceSetUpOption& value) { m_sourceSetUpOptionHasBeenSet = true; m_sourceSetUpOption = value; }
185 
186     /**
187      * <p> The setup option for the data source, which reflects if the evidence
188      * collection is automated or manual. </p>
189      */
SetSourceSetUpOption(SourceSetUpOption && value)190     inline void SetSourceSetUpOption(SourceSetUpOption&& value) { m_sourceSetUpOptionHasBeenSet = true; m_sourceSetUpOption = std::move(value); }
191 
192     /**
193      * <p> The setup option for the data source, which reflects if the evidence
194      * collection is automated or manual. </p>
195      */
WithSourceSetUpOption(const SourceSetUpOption & value)196     inline ControlMappingSource& WithSourceSetUpOption(const SourceSetUpOption& value) { SetSourceSetUpOption(value); return *this;}
197 
198     /**
199      * <p> The setup option for the data source, which reflects if the evidence
200      * collection is automated or manual. </p>
201      */
WithSourceSetUpOption(SourceSetUpOption && value)202     inline ControlMappingSource& WithSourceSetUpOption(SourceSetUpOption&& value) { SetSourceSetUpOption(std::move(value)); return *this;}
203 
204 
205     /**
206      * <p> Specifies one of the five types of data sources for evidence collection.
207      * </p>
208      */
GetSourceType()209     inline const SourceType& GetSourceType() const{ return m_sourceType; }
210 
211     /**
212      * <p> Specifies one of the five types of data sources for evidence collection.
213      * </p>
214      */
SourceTypeHasBeenSet()215     inline bool SourceTypeHasBeenSet() const { return m_sourceTypeHasBeenSet; }
216 
217     /**
218      * <p> Specifies one of the five types of data sources for evidence collection.
219      * </p>
220      */
SetSourceType(const SourceType & value)221     inline void SetSourceType(const SourceType& value) { m_sourceTypeHasBeenSet = true; m_sourceType = value; }
222 
223     /**
224      * <p> Specifies one of the five types of data sources for evidence collection.
225      * </p>
226      */
SetSourceType(SourceType && value)227     inline void SetSourceType(SourceType&& value) { m_sourceTypeHasBeenSet = true; m_sourceType = std::move(value); }
228 
229     /**
230      * <p> Specifies one of the five types of data sources for evidence collection.
231      * </p>
232      */
WithSourceType(const SourceType & value)233     inline ControlMappingSource& WithSourceType(const SourceType& value) { SetSourceType(value); return *this;}
234 
235     /**
236      * <p> Specifies one of the five types of data sources for evidence collection.
237      * </p>
238      */
WithSourceType(SourceType && value)239     inline ControlMappingSource& WithSourceType(SourceType&& value) { SetSourceType(std::move(value)); return *this;}
240 
241 
242 
GetSourceKeyword()243     inline const SourceKeyword& GetSourceKeyword() const{ return m_sourceKeyword; }
244 
245 
SourceKeywordHasBeenSet()246     inline bool SourceKeywordHasBeenSet() const { return m_sourceKeywordHasBeenSet; }
247 
248 
SetSourceKeyword(const SourceKeyword & value)249     inline void SetSourceKeyword(const SourceKeyword& value) { m_sourceKeywordHasBeenSet = true; m_sourceKeyword = value; }
250 
251 
SetSourceKeyword(SourceKeyword && value)252     inline void SetSourceKeyword(SourceKeyword&& value) { m_sourceKeywordHasBeenSet = true; m_sourceKeyword = std::move(value); }
253 
254 
WithSourceKeyword(const SourceKeyword & value)255     inline ControlMappingSource& WithSourceKeyword(const SourceKeyword& value) { SetSourceKeyword(value); return *this;}
256 
257 
WithSourceKeyword(SourceKeyword && value)258     inline ControlMappingSource& WithSourceKeyword(SourceKeyword&& value) { SetSourceKeyword(std::move(value)); return *this;}
259 
260 
261     /**
262      * <p> The frequency of evidence collection for the specified control mapping
263      * source. </p>
264      */
GetSourceFrequency()265     inline const SourceFrequency& GetSourceFrequency() const{ return m_sourceFrequency; }
266 
267     /**
268      * <p> The frequency of evidence collection for the specified control mapping
269      * source. </p>
270      */
SourceFrequencyHasBeenSet()271     inline bool SourceFrequencyHasBeenSet() const { return m_sourceFrequencyHasBeenSet; }
272 
273     /**
274      * <p> The frequency of evidence collection for the specified control mapping
275      * source. </p>
276      */
SetSourceFrequency(const SourceFrequency & value)277     inline void SetSourceFrequency(const SourceFrequency& value) { m_sourceFrequencyHasBeenSet = true; m_sourceFrequency = value; }
278 
279     /**
280      * <p> The frequency of evidence collection for the specified control mapping
281      * source. </p>
282      */
SetSourceFrequency(SourceFrequency && value)283     inline void SetSourceFrequency(SourceFrequency&& value) { m_sourceFrequencyHasBeenSet = true; m_sourceFrequency = std::move(value); }
284 
285     /**
286      * <p> The frequency of evidence collection for the specified control mapping
287      * source. </p>
288      */
WithSourceFrequency(const SourceFrequency & value)289     inline ControlMappingSource& WithSourceFrequency(const SourceFrequency& value) { SetSourceFrequency(value); return *this;}
290 
291     /**
292      * <p> The frequency of evidence collection for the specified control mapping
293      * source. </p>
294      */
WithSourceFrequency(SourceFrequency && value)295     inline ControlMappingSource& WithSourceFrequency(SourceFrequency&& value) { SetSourceFrequency(std::move(value)); return *this;}
296 
297 
298     /**
299      * <p> The instructions for troubleshooting the specified control. </p>
300      */
GetTroubleshootingText()301     inline const Aws::String& GetTroubleshootingText() const{ return m_troubleshootingText; }
302 
303     /**
304      * <p> The instructions for troubleshooting the specified control. </p>
305      */
TroubleshootingTextHasBeenSet()306     inline bool TroubleshootingTextHasBeenSet() const { return m_troubleshootingTextHasBeenSet; }
307 
308     /**
309      * <p> The instructions for troubleshooting the specified control. </p>
310      */
SetTroubleshootingText(const Aws::String & value)311     inline void SetTroubleshootingText(const Aws::String& value) { m_troubleshootingTextHasBeenSet = true; m_troubleshootingText = value; }
312 
313     /**
314      * <p> The instructions for troubleshooting the specified control. </p>
315      */
SetTroubleshootingText(Aws::String && value)316     inline void SetTroubleshootingText(Aws::String&& value) { m_troubleshootingTextHasBeenSet = true; m_troubleshootingText = std::move(value); }
317 
318     /**
319      * <p> The instructions for troubleshooting the specified control. </p>
320      */
SetTroubleshootingText(const char * value)321     inline void SetTroubleshootingText(const char* value) { m_troubleshootingTextHasBeenSet = true; m_troubleshootingText.assign(value); }
322 
323     /**
324      * <p> The instructions for troubleshooting the specified control. </p>
325      */
WithTroubleshootingText(const Aws::String & value)326     inline ControlMappingSource& WithTroubleshootingText(const Aws::String& value) { SetTroubleshootingText(value); return *this;}
327 
328     /**
329      * <p> The instructions for troubleshooting the specified control. </p>
330      */
WithTroubleshootingText(Aws::String && value)331     inline ControlMappingSource& WithTroubleshootingText(Aws::String&& value) { SetTroubleshootingText(std::move(value)); return *this;}
332 
333     /**
334      * <p> The instructions for troubleshooting the specified control. </p>
335      */
WithTroubleshootingText(const char * value)336     inline ControlMappingSource& WithTroubleshootingText(const char* value) { SetTroubleshootingText(value); return *this;}
337 
338   private:
339 
340     Aws::String m_sourceId;
341     bool m_sourceIdHasBeenSet;
342 
343     Aws::String m_sourceName;
344     bool m_sourceNameHasBeenSet;
345 
346     Aws::String m_sourceDescription;
347     bool m_sourceDescriptionHasBeenSet;
348 
349     SourceSetUpOption m_sourceSetUpOption;
350     bool m_sourceSetUpOptionHasBeenSet;
351 
352     SourceType m_sourceType;
353     bool m_sourceTypeHasBeenSet;
354 
355     SourceKeyword m_sourceKeyword;
356     bool m_sourceKeywordHasBeenSet;
357 
358     SourceFrequency m_sourceFrequency;
359     bool m_sourceFrequencyHasBeenSet;
360 
361     Aws::String m_troubleshootingText;
362     bool m_troubleshootingTextHasBeenSet;
363   };
364 
365 } // namespace Model
366 } // namespace AuditManager
367 } // namespace Aws
368