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/config/ConfigService_EXPORTS.h>
8 #include <aws/config/model/EvaluationResultIdentifier.h>
9 #include <aws/config/model/ComplianceType.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace ConfigService
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>The details of an Config evaluation. Provides the Amazon Web Services
31    * resource that was evaluated, the compliance of the resource, related time
32    * stamps, and supplementary information.</p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/EvaluationResult">AWS
34    * API Reference</a></p>
35    */
36   class AWS_CONFIGSERVICE_API EvaluationResult
37   {
38   public:
39     EvaluationResult();
40     EvaluationResult(Aws::Utils::Json::JsonView jsonValue);
41     EvaluationResult& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>Uniquely identifies the evaluation result.</p>
47      */
GetEvaluationResultIdentifier()48     inline const EvaluationResultIdentifier& GetEvaluationResultIdentifier() const{ return m_evaluationResultIdentifier; }
49 
50     /**
51      * <p>Uniquely identifies the evaluation result.</p>
52      */
EvaluationResultIdentifierHasBeenSet()53     inline bool EvaluationResultIdentifierHasBeenSet() const { return m_evaluationResultIdentifierHasBeenSet; }
54 
55     /**
56      * <p>Uniquely identifies the evaluation result.</p>
57      */
SetEvaluationResultIdentifier(const EvaluationResultIdentifier & value)58     inline void SetEvaluationResultIdentifier(const EvaluationResultIdentifier& value) { m_evaluationResultIdentifierHasBeenSet = true; m_evaluationResultIdentifier = value; }
59 
60     /**
61      * <p>Uniquely identifies the evaluation result.</p>
62      */
SetEvaluationResultIdentifier(EvaluationResultIdentifier && value)63     inline void SetEvaluationResultIdentifier(EvaluationResultIdentifier&& value) { m_evaluationResultIdentifierHasBeenSet = true; m_evaluationResultIdentifier = std::move(value); }
64 
65     /**
66      * <p>Uniquely identifies the evaluation result.</p>
67      */
WithEvaluationResultIdentifier(const EvaluationResultIdentifier & value)68     inline EvaluationResult& WithEvaluationResultIdentifier(const EvaluationResultIdentifier& value) { SetEvaluationResultIdentifier(value); return *this;}
69 
70     /**
71      * <p>Uniquely identifies the evaluation result.</p>
72      */
WithEvaluationResultIdentifier(EvaluationResultIdentifier && value)73     inline EvaluationResult& WithEvaluationResultIdentifier(EvaluationResultIdentifier&& value) { SetEvaluationResultIdentifier(std::move(value)); return *this;}
74 
75 
76     /**
77      * <p>Indicates whether the Amazon Web Services resource complies with the Config
78      * rule that evaluated it.</p> <p>For the <code>EvaluationResult</code> data type,
79      * Config supports only the <code>COMPLIANT</code>, <code>NON_COMPLIANT</code>, and
80      * <code>NOT_APPLICABLE</code> values. Config does not support the
81      * <code>INSUFFICIENT_DATA</code> value for the <code>EvaluationResult</code> data
82      * type.</p>
83      */
GetComplianceType()84     inline const ComplianceType& GetComplianceType() const{ return m_complianceType; }
85 
86     /**
87      * <p>Indicates whether the Amazon Web Services resource complies with the Config
88      * rule that evaluated it.</p> <p>For the <code>EvaluationResult</code> data type,
89      * Config supports only the <code>COMPLIANT</code>, <code>NON_COMPLIANT</code>, and
90      * <code>NOT_APPLICABLE</code> values. Config does not support the
91      * <code>INSUFFICIENT_DATA</code> value for the <code>EvaluationResult</code> data
92      * type.</p>
93      */
ComplianceTypeHasBeenSet()94     inline bool ComplianceTypeHasBeenSet() const { return m_complianceTypeHasBeenSet; }
95 
96     /**
97      * <p>Indicates whether the Amazon Web Services resource complies with the Config
98      * rule that evaluated it.</p> <p>For the <code>EvaluationResult</code> data type,
99      * Config supports only the <code>COMPLIANT</code>, <code>NON_COMPLIANT</code>, and
100      * <code>NOT_APPLICABLE</code> values. Config does not support the
101      * <code>INSUFFICIENT_DATA</code> value for the <code>EvaluationResult</code> data
102      * type.</p>
103      */
SetComplianceType(const ComplianceType & value)104     inline void SetComplianceType(const ComplianceType& value) { m_complianceTypeHasBeenSet = true; m_complianceType = value; }
105 
106     /**
107      * <p>Indicates whether the Amazon Web Services resource complies with the Config
108      * rule that evaluated it.</p> <p>For the <code>EvaluationResult</code> data type,
109      * Config supports only the <code>COMPLIANT</code>, <code>NON_COMPLIANT</code>, and
110      * <code>NOT_APPLICABLE</code> values. Config does not support the
111      * <code>INSUFFICIENT_DATA</code> value for the <code>EvaluationResult</code> data
112      * type.</p>
113      */
SetComplianceType(ComplianceType && value)114     inline void SetComplianceType(ComplianceType&& value) { m_complianceTypeHasBeenSet = true; m_complianceType = std::move(value); }
115 
116     /**
117      * <p>Indicates whether the Amazon Web Services resource complies with the Config
118      * rule that evaluated it.</p> <p>For the <code>EvaluationResult</code> data type,
119      * Config supports only the <code>COMPLIANT</code>, <code>NON_COMPLIANT</code>, and
120      * <code>NOT_APPLICABLE</code> values. Config does not support the
121      * <code>INSUFFICIENT_DATA</code> value for the <code>EvaluationResult</code> data
122      * type.</p>
123      */
WithComplianceType(const ComplianceType & value)124     inline EvaluationResult& WithComplianceType(const ComplianceType& value) { SetComplianceType(value); return *this;}
125 
126     /**
127      * <p>Indicates whether the Amazon Web Services resource complies with the Config
128      * rule that evaluated it.</p> <p>For the <code>EvaluationResult</code> data type,
129      * Config supports only the <code>COMPLIANT</code>, <code>NON_COMPLIANT</code>, and
130      * <code>NOT_APPLICABLE</code> values. Config does not support the
131      * <code>INSUFFICIENT_DATA</code> value for the <code>EvaluationResult</code> data
132      * type.</p>
133      */
WithComplianceType(ComplianceType && value)134     inline EvaluationResult& WithComplianceType(ComplianceType&& value) { SetComplianceType(std::move(value)); return *this;}
135 
136 
137     /**
138      * <p>The time when Config recorded the evaluation result.</p>
139      */
GetResultRecordedTime()140     inline const Aws::Utils::DateTime& GetResultRecordedTime() const{ return m_resultRecordedTime; }
141 
142     /**
143      * <p>The time when Config recorded the evaluation result.</p>
144      */
ResultRecordedTimeHasBeenSet()145     inline bool ResultRecordedTimeHasBeenSet() const { return m_resultRecordedTimeHasBeenSet; }
146 
147     /**
148      * <p>The time when Config recorded the evaluation result.</p>
149      */
SetResultRecordedTime(const Aws::Utils::DateTime & value)150     inline void SetResultRecordedTime(const Aws::Utils::DateTime& value) { m_resultRecordedTimeHasBeenSet = true; m_resultRecordedTime = value; }
151 
152     /**
153      * <p>The time when Config recorded the evaluation result.</p>
154      */
SetResultRecordedTime(Aws::Utils::DateTime && value)155     inline void SetResultRecordedTime(Aws::Utils::DateTime&& value) { m_resultRecordedTimeHasBeenSet = true; m_resultRecordedTime = std::move(value); }
156 
157     /**
158      * <p>The time when Config recorded the evaluation result.</p>
159      */
WithResultRecordedTime(const Aws::Utils::DateTime & value)160     inline EvaluationResult& WithResultRecordedTime(const Aws::Utils::DateTime& value) { SetResultRecordedTime(value); return *this;}
161 
162     /**
163      * <p>The time when Config recorded the evaluation result.</p>
164      */
WithResultRecordedTime(Aws::Utils::DateTime && value)165     inline EvaluationResult& WithResultRecordedTime(Aws::Utils::DateTime&& value) { SetResultRecordedTime(std::move(value)); return *this;}
166 
167 
168     /**
169      * <p>The time when the Config rule evaluated the Amazon Web Services resource.</p>
170      */
GetConfigRuleInvokedTime()171     inline const Aws::Utils::DateTime& GetConfigRuleInvokedTime() const{ return m_configRuleInvokedTime; }
172 
173     /**
174      * <p>The time when the Config rule evaluated the Amazon Web Services resource.</p>
175      */
ConfigRuleInvokedTimeHasBeenSet()176     inline bool ConfigRuleInvokedTimeHasBeenSet() const { return m_configRuleInvokedTimeHasBeenSet; }
177 
178     /**
179      * <p>The time when the Config rule evaluated the Amazon Web Services resource.</p>
180      */
SetConfigRuleInvokedTime(const Aws::Utils::DateTime & value)181     inline void SetConfigRuleInvokedTime(const Aws::Utils::DateTime& value) { m_configRuleInvokedTimeHasBeenSet = true; m_configRuleInvokedTime = value; }
182 
183     /**
184      * <p>The time when the Config rule evaluated the Amazon Web Services resource.</p>
185      */
SetConfigRuleInvokedTime(Aws::Utils::DateTime && value)186     inline void SetConfigRuleInvokedTime(Aws::Utils::DateTime&& value) { m_configRuleInvokedTimeHasBeenSet = true; m_configRuleInvokedTime = std::move(value); }
187 
188     /**
189      * <p>The time when the Config rule evaluated the Amazon Web Services resource.</p>
190      */
WithConfigRuleInvokedTime(const Aws::Utils::DateTime & value)191     inline EvaluationResult& WithConfigRuleInvokedTime(const Aws::Utils::DateTime& value) { SetConfigRuleInvokedTime(value); return *this;}
192 
193     /**
194      * <p>The time when the Config rule evaluated the Amazon Web Services resource.</p>
195      */
WithConfigRuleInvokedTime(Aws::Utils::DateTime && value)196     inline EvaluationResult& WithConfigRuleInvokedTime(Aws::Utils::DateTime&& value) { SetConfigRuleInvokedTime(std::move(value)); return *this;}
197 
198 
199     /**
200      * <p>Supplementary information about how the evaluation determined the
201      * compliance.</p>
202      */
GetAnnotation()203     inline const Aws::String& GetAnnotation() const{ return m_annotation; }
204 
205     /**
206      * <p>Supplementary information about how the evaluation determined the
207      * compliance.</p>
208      */
AnnotationHasBeenSet()209     inline bool AnnotationHasBeenSet() const { return m_annotationHasBeenSet; }
210 
211     /**
212      * <p>Supplementary information about how the evaluation determined the
213      * compliance.</p>
214      */
SetAnnotation(const Aws::String & value)215     inline void SetAnnotation(const Aws::String& value) { m_annotationHasBeenSet = true; m_annotation = value; }
216 
217     /**
218      * <p>Supplementary information about how the evaluation determined the
219      * compliance.</p>
220      */
SetAnnotation(Aws::String && value)221     inline void SetAnnotation(Aws::String&& value) { m_annotationHasBeenSet = true; m_annotation = std::move(value); }
222 
223     /**
224      * <p>Supplementary information about how the evaluation determined the
225      * compliance.</p>
226      */
SetAnnotation(const char * value)227     inline void SetAnnotation(const char* value) { m_annotationHasBeenSet = true; m_annotation.assign(value); }
228 
229     /**
230      * <p>Supplementary information about how the evaluation determined the
231      * compliance.</p>
232      */
WithAnnotation(const Aws::String & value)233     inline EvaluationResult& WithAnnotation(const Aws::String& value) { SetAnnotation(value); return *this;}
234 
235     /**
236      * <p>Supplementary information about how the evaluation determined the
237      * compliance.</p>
238      */
WithAnnotation(Aws::String && value)239     inline EvaluationResult& WithAnnotation(Aws::String&& value) { SetAnnotation(std::move(value)); return *this;}
240 
241     /**
242      * <p>Supplementary information about how the evaluation determined the
243      * compliance.</p>
244      */
WithAnnotation(const char * value)245     inline EvaluationResult& WithAnnotation(const char* value) { SetAnnotation(value); return *this;}
246 
247 
248     /**
249      * <p>An encrypted token that associates an evaluation with an Config rule. The
250      * token identifies the rule, the Amazon Web Services resource being evaluated, and
251      * the event that triggered the evaluation.</p>
252      */
GetResultToken()253     inline const Aws::String& GetResultToken() const{ return m_resultToken; }
254 
255     /**
256      * <p>An encrypted token that associates an evaluation with an Config rule. The
257      * token identifies the rule, the Amazon Web Services resource being evaluated, and
258      * the event that triggered the evaluation.</p>
259      */
ResultTokenHasBeenSet()260     inline bool ResultTokenHasBeenSet() const { return m_resultTokenHasBeenSet; }
261 
262     /**
263      * <p>An encrypted token that associates an evaluation with an Config rule. The
264      * token identifies the rule, the Amazon Web Services resource being evaluated, and
265      * the event that triggered the evaluation.</p>
266      */
SetResultToken(const Aws::String & value)267     inline void SetResultToken(const Aws::String& value) { m_resultTokenHasBeenSet = true; m_resultToken = value; }
268 
269     /**
270      * <p>An encrypted token that associates an evaluation with an Config rule. The
271      * token identifies the rule, the Amazon Web Services resource being evaluated, and
272      * the event that triggered the evaluation.</p>
273      */
SetResultToken(Aws::String && value)274     inline void SetResultToken(Aws::String&& value) { m_resultTokenHasBeenSet = true; m_resultToken = std::move(value); }
275 
276     /**
277      * <p>An encrypted token that associates an evaluation with an Config rule. The
278      * token identifies the rule, the Amazon Web Services resource being evaluated, and
279      * the event that triggered the evaluation.</p>
280      */
SetResultToken(const char * value)281     inline void SetResultToken(const char* value) { m_resultTokenHasBeenSet = true; m_resultToken.assign(value); }
282 
283     /**
284      * <p>An encrypted token that associates an evaluation with an Config rule. The
285      * token identifies the rule, the Amazon Web Services resource being evaluated, and
286      * the event that triggered the evaluation.</p>
287      */
WithResultToken(const Aws::String & value)288     inline EvaluationResult& WithResultToken(const Aws::String& value) { SetResultToken(value); return *this;}
289 
290     /**
291      * <p>An encrypted token that associates an evaluation with an Config rule. The
292      * token identifies the rule, the Amazon Web Services resource being evaluated, and
293      * the event that triggered the evaluation.</p>
294      */
WithResultToken(Aws::String && value)295     inline EvaluationResult& WithResultToken(Aws::String&& value) { SetResultToken(std::move(value)); return *this;}
296 
297     /**
298      * <p>An encrypted token that associates an evaluation with an Config rule. The
299      * token identifies the rule, the Amazon Web Services resource being evaluated, and
300      * the event that triggered the evaluation.</p>
301      */
WithResultToken(const char * value)302     inline EvaluationResult& WithResultToken(const char* value) { SetResultToken(value); return *this;}
303 
304   private:
305 
306     EvaluationResultIdentifier m_evaluationResultIdentifier;
307     bool m_evaluationResultIdentifierHasBeenSet;
308 
309     ComplianceType m_complianceType;
310     bool m_complianceTypeHasBeenSet;
311 
312     Aws::Utils::DateTime m_resultRecordedTime;
313     bool m_resultRecordedTimeHasBeenSet;
314 
315     Aws::Utils::DateTime m_configRuleInvokedTime;
316     bool m_configRuleInvokedTimeHasBeenSet;
317 
318     Aws::String m_annotation;
319     bool m_annotationHasBeenSet;
320 
321     Aws::String m_resultToken;
322     bool m_resultTokenHasBeenSet;
323   };
324 
325 } // namespace Model
326 } // namespace ConfigService
327 } // namespace Aws
328