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/ConformancePackComplianceType.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace ConfigService
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Provides the number of compliant and noncompliant rules within a conformance
28    * pack. Also provides the compliance status of the conformance pack and the total
29    * rule count which includes compliant rules, noncompliant rules, and rules that
30    * cannot be evaluated due to insufficient data.</p> <p>A conformance pack is
31    * compliant if all of the rules in a conformance packs are compliant. It is
32    * noncompliant if any of the rules are not compliant. The compliance status of a
33    * conformance pack is INSUFFICIENT_DATA only if all rules within a conformance
34    * pack cannot be evaluated due to insufficient data. If some of the rules in a
35    * conformance pack are compliant but the compliance status of other rules in that
36    * same conformance pack is INSUFFICIENT_DATA, the conformance pack shows
37    * compliant.</p><p><h3>See Also:</h3>   <a
38    * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/AggregateConformancePackCompliance">AWS
39    * API Reference</a></p>
40    */
41   class AWS_CONFIGSERVICE_API AggregateConformancePackCompliance
42   {
43   public:
44     AggregateConformancePackCompliance();
45     AggregateConformancePackCompliance(Aws::Utils::Json::JsonView jsonValue);
46     AggregateConformancePackCompliance& operator=(Aws::Utils::Json::JsonView jsonValue);
47     Aws::Utils::Json::JsonValue Jsonize() const;
48 
49 
50     /**
51      * <p>The compliance status of the conformance pack.</p>
52      */
GetComplianceType()53     inline const ConformancePackComplianceType& GetComplianceType() const{ return m_complianceType; }
54 
55     /**
56      * <p>The compliance status of the conformance pack.</p>
57      */
ComplianceTypeHasBeenSet()58     inline bool ComplianceTypeHasBeenSet() const { return m_complianceTypeHasBeenSet; }
59 
60     /**
61      * <p>The compliance status of the conformance pack.</p>
62      */
SetComplianceType(const ConformancePackComplianceType & value)63     inline void SetComplianceType(const ConformancePackComplianceType& value) { m_complianceTypeHasBeenSet = true; m_complianceType = value; }
64 
65     /**
66      * <p>The compliance status of the conformance pack.</p>
67      */
SetComplianceType(ConformancePackComplianceType && value)68     inline void SetComplianceType(ConformancePackComplianceType&& value) { m_complianceTypeHasBeenSet = true; m_complianceType = std::move(value); }
69 
70     /**
71      * <p>The compliance status of the conformance pack.</p>
72      */
WithComplianceType(const ConformancePackComplianceType & value)73     inline AggregateConformancePackCompliance& WithComplianceType(const ConformancePackComplianceType& value) { SetComplianceType(value); return *this;}
74 
75     /**
76      * <p>The compliance status of the conformance pack.</p>
77      */
WithComplianceType(ConformancePackComplianceType && value)78     inline AggregateConformancePackCompliance& WithComplianceType(ConformancePackComplianceType&& value) { SetComplianceType(std::move(value)); return *this;}
79 
80 
81     /**
82      * <p>The number of compliant Config Rules.</p>
83      */
GetCompliantRuleCount()84     inline int GetCompliantRuleCount() const{ return m_compliantRuleCount; }
85 
86     /**
87      * <p>The number of compliant Config Rules.</p>
88      */
CompliantRuleCountHasBeenSet()89     inline bool CompliantRuleCountHasBeenSet() const { return m_compliantRuleCountHasBeenSet; }
90 
91     /**
92      * <p>The number of compliant Config Rules.</p>
93      */
SetCompliantRuleCount(int value)94     inline void SetCompliantRuleCount(int value) { m_compliantRuleCountHasBeenSet = true; m_compliantRuleCount = value; }
95 
96     /**
97      * <p>The number of compliant Config Rules.</p>
98      */
WithCompliantRuleCount(int value)99     inline AggregateConformancePackCompliance& WithCompliantRuleCount(int value) { SetCompliantRuleCount(value); return *this;}
100 
101 
102     /**
103      * <p>The number of noncompliant Config Rules.</p>
104      */
GetNonCompliantRuleCount()105     inline int GetNonCompliantRuleCount() const{ return m_nonCompliantRuleCount; }
106 
107     /**
108      * <p>The number of noncompliant Config Rules.</p>
109      */
NonCompliantRuleCountHasBeenSet()110     inline bool NonCompliantRuleCountHasBeenSet() const { return m_nonCompliantRuleCountHasBeenSet; }
111 
112     /**
113      * <p>The number of noncompliant Config Rules.</p>
114      */
SetNonCompliantRuleCount(int value)115     inline void SetNonCompliantRuleCount(int value) { m_nonCompliantRuleCountHasBeenSet = true; m_nonCompliantRuleCount = value; }
116 
117     /**
118      * <p>The number of noncompliant Config Rules.</p>
119      */
WithNonCompliantRuleCount(int value)120     inline AggregateConformancePackCompliance& WithNonCompliantRuleCount(int value) { SetNonCompliantRuleCount(value); return *this;}
121 
122 
123     /**
124      * <p>Total number of compliant rules, noncompliant rules, and the rules that do
125      * not have any applicable resources to evaluate upon resulting in insufficient
126      * data.</p>
127      */
GetTotalRuleCount()128     inline int GetTotalRuleCount() const{ return m_totalRuleCount; }
129 
130     /**
131      * <p>Total number of compliant rules, noncompliant rules, and the rules that do
132      * not have any applicable resources to evaluate upon resulting in insufficient
133      * data.</p>
134      */
TotalRuleCountHasBeenSet()135     inline bool TotalRuleCountHasBeenSet() const { return m_totalRuleCountHasBeenSet; }
136 
137     /**
138      * <p>Total number of compliant rules, noncompliant rules, and the rules that do
139      * not have any applicable resources to evaluate upon resulting in insufficient
140      * data.</p>
141      */
SetTotalRuleCount(int value)142     inline void SetTotalRuleCount(int value) { m_totalRuleCountHasBeenSet = true; m_totalRuleCount = value; }
143 
144     /**
145      * <p>Total number of compliant rules, noncompliant rules, and the rules that do
146      * not have any applicable resources to evaluate upon resulting in insufficient
147      * data.</p>
148      */
WithTotalRuleCount(int value)149     inline AggregateConformancePackCompliance& WithTotalRuleCount(int value) { SetTotalRuleCount(value); return *this;}
150 
151   private:
152 
153     ConformancePackComplianceType m_complianceType;
154     bool m_complianceTypeHasBeenSet;
155 
156     int m_compliantRuleCount;
157     bool m_compliantRuleCountHasBeenSet;
158 
159     int m_nonCompliantRuleCount;
160     bool m_nonCompliantRuleCountHasBeenSet;
161 
162     int m_totalRuleCount;
163     bool m_totalRuleCountHasBeenSet;
164   };
165 
166 } // namespace Model
167 } // namespace ConfigService
168 } // namespace Aws
169