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/ComplianceType.h>
9 #include <aws/config/model/ComplianceContributorCount.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 ConfigService
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Indicates whether an Amazon Web Services resource or Config rule is compliant
29    * and provides the number of contributors that affect the
30    * compliance.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/Compliance">AWS
32    * API Reference</a></p>
33    */
34   class AWS_CONFIGSERVICE_API Compliance
35   {
36   public:
37     Compliance();
38     Compliance(Aws::Utils::Json::JsonView jsonValue);
39     Compliance& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>Indicates whether an Amazon Web Services resource or Config rule is
45      * compliant.</p> <p>A resource is compliant if it complies with all of the Config
46      * rules that evaluate it. A resource is noncompliant if it does not comply with
47      * one or more of these rules.</p> <p>A rule is compliant if all of the resources
48      * that the rule evaluates comply with it. A rule is noncompliant if any of these
49      * resources do not comply.</p> <p>Config returns the
50      * <code>INSUFFICIENT_DATA</code> value when no evaluation results are available
51      * for the Amazon Web Services resource or Config rule.</p> <p>For the
52      * <code>Compliance</code> data type, Config supports only <code>COMPLIANT</code>,
53      * <code>NON_COMPLIANT</code>, and <code>INSUFFICIENT_DATA</code> values. Config
54      * does not support the <code>NOT_APPLICABLE</code> value for the
55      * <code>Compliance</code> data type.</p>
56      */
GetComplianceType()57     inline const ComplianceType& GetComplianceType() const{ return m_complianceType; }
58 
59     /**
60      * <p>Indicates whether an Amazon Web Services resource or Config rule is
61      * compliant.</p> <p>A resource is compliant if it complies with all of the Config
62      * rules that evaluate it. A resource is noncompliant if it does not comply with
63      * one or more of these rules.</p> <p>A rule is compliant if all of the resources
64      * that the rule evaluates comply with it. A rule is noncompliant if any of these
65      * resources do not comply.</p> <p>Config returns the
66      * <code>INSUFFICIENT_DATA</code> value when no evaluation results are available
67      * for the Amazon Web Services resource or Config rule.</p> <p>For the
68      * <code>Compliance</code> data type, Config supports only <code>COMPLIANT</code>,
69      * <code>NON_COMPLIANT</code>, and <code>INSUFFICIENT_DATA</code> values. Config
70      * does not support the <code>NOT_APPLICABLE</code> value for the
71      * <code>Compliance</code> data type.</p>
72      */
ComplianceTypeHasBeenSet()73     inline bool ComplianceTypeHasBeenSet() const { return m_complianceTypeHasBeenSet; }
74 
75     /**
76      * <p>Indicates whether an Amazon Web Services resource or Config rule is
77      * compliant.</p> <p>A resource is compliant if it complies with all of the Config
78      * rules that evaluate it. A resource is noncompliant if it does not comply with
79      * one or more of these rules.</p> <p>A rule is compliant if all of the resources
80      * that the rule evaluates comply with it. A rule is noncompliant if any of these
81      * resources do not comply.</p> <p>Config returns the
82      * <code>INSUFFICIENT_DATA</code> value when no evaluation results are available
83      * for the Amazon Web Services resource or Config rule.</p> <p>For the
84      * <code>Compliance</code> data type, Config supports only <code>COMPLIANT</code>,
85      * <code>NON_COMPLIANT</code>, and <code>INSUFFICIENT_DATA</code> values. Config
86      * does not support the <code>NOT_APPLICABLE</code> value for the
87      * <code>Compliance</code> data type.</p>
88      */
SetComplianceType(const ComplianceType & value)89     inline void SetComplianceType(const ComplianceType& value) { m_complianceTypeHasBeenSet = true; m_complianceType = value; }
90 
91     /**
92      * <p>Indicates whether an Amazon Web Services resource or Config rule is
93      * compliant.</p> <p>A resource is compliant if it complies with all of the Config
94      * rules that evaluate it. A resource is noncompliant if it does not comply with
95      * one or more of these rules.</p> <p>A rule is compliant if all of the resources
96      * that the rule evaluates comply with it. A rule is noncompliant if any of these
97      * resources do not comply.</p> <p>Config returns the
98      * <code>INSUFFICIENT_DATA</code> value when no evaluation results are available
99      * for the Amazon Web Services resource or Config rule.</p> <p>For the
100      * <code>Compliance</code> data type, Config supports only <code>COMPLIANT</code>,
101      * <code>NON_COMPLIANT</code>, and <code>INSUFFICIENT_DATA</code> values. Config
102      * does not support the <code>NOT_APPLICABLE</code> value for the
103      * <code>Compliance</code> data type.</p>
104      */
SetComplianceType(ComplianceType && value)105     inline void SetComplianceType(ComplianceType&& value) { m_complianceTypeHasBeenSet = true; m_complianceType = std::move(value); }
106 
107     /**
108      * <p>Indicates whether an Amazon Web Services resource or Config rule is
109      * compliant.</p> <p>A resource is compliant if it complies with all of the Config
110      * rules that evaluate it. A resource is noncompliant if it does not comply with
111      * one or more of these rules.</p> <p>A rule is compliant if all of the resources
112      * that the rule evaluates comply with it. A rule is noncompliant if any of these
113      * resources do not comply.</p> <p>Config returns the
114      * <code>INSUFFICIENT_DATA</code> value when no evaluation results are available
115      * for the Amazon Web Services resource or Config rule.</p> <p>For the
116      * <code>Compliance</code> data type, Config supports only <code>COMPLIANT</code>,
117      * <code>NON_COMPLIANT</code>, and <code>INSUFFICIENT_DATA</code> values. Config
118      * does not support the <code>NOT_APPLICABLE</code> value for the
119      * <code>Compliance</code> data type.</p>
120      */
WithComplianceType(const ComplianceType & value)121     inline Compliance& WithComplianceType(const ComplianceType& value) { SetComplianceType(value); return *this;}
122 
123     /**
124      * <p>Indicates whether an Amazon Web Services resource or Config rule is
125      * compliant.</p> <p>A resource is compliant if it complies with all of the Config
126      * rules that evaluate it. A resource is noncompliant if it does not comply with
127      * one or more of these rules.</p> <p>A rule is compliant if all of the resources
128      * that the rule evaluates comply with it. A rule is noncompliant if any of these
129      * resources do not comply.</p> <p>Config returns the
130      * <code>INSUFFICIENT_DATA</code> value when no evaluation results are available
131      * for the Amazon Web Services resource or Config rule.</p> <p>For the
132      * <code>Compliance</code> data type, Config supports only <code>COMPLIANT</code>,
133      * <code>NON_COMPLIANT</code>, and <code>INSUFFICIENT_DATA</code> values. Config
134      * does not support the <code>NOT_APPLICABLE</code> value for the
135      * <code>Compliance</code> data type.</p>
136      */
WithComplianceType(ComplianceType && value)137     inline Compliance& WithComplianceType(ComplianceType&& value) { SetComplianceType(std::move(value)); return *this;}
138 
139 
140     /**
141      * <p>The number of Amazon Web Services resources or Config rules that cause a
142      * result of <code>NON_COMPLIANT</code>, up to a maximum number.</p>
143      */
GetComplianceContributorCount()144     inline const ComplianceContributorCount& GetComplianceContributorCount() const{ return m_complianceContributorCount; }
145 
146     /**
147      * <p>The number of Amazon Web Services resources or Config rules that cause a
148      * result of <code>NON_COMPLIANT</code>, up to a maximum number.</p>
149      */
ComplianceContributorCountHasBeenSet()150     inline bool ComplianceContributorCountHasBeenSet() const { return m_complianceContributorCountHasBeenSet; }
151 
152     /**
153      * <p>The number of Amazon Web Services resources or Config rules that cause a
154      * result of <code>NON_COMPLIANT</code>, up to a maximum number.</p>
155      */
SetComplianceContributorCount(const ComplianceContributorCount & value)156     inline void SetComplianceContributorCount(const ComplianceContributorCount& value) { m_complianceContributorCountHasBeenSet = true; m_complianceContributorCount = value; }
157 
158     /**
159      * <p>The number of Amazon Web Services resources or Config rules that cause a
160      * result of <code>NON_COMPLIANT</code>, up to a maximum number.</p>
161      */
SetComplianceContributorCount(ComplianceContributorCount && value)162     inline void SetComplianceContributorCount(ComplianceContributorCount&& value) { m_complianceContributorCountHasBeenSet = true; m_complianceContributorCount = std::move(value); }
163 
164     /**
165      * <p>The number of Amazon Web Services resources or Config rules that cause a
166      * result of <code>NON_COMPLIANT</code>, up to a maximum number.</p>
167      */
WithComplianceContributorCount(const ComplianceContributorCount & value)168     inline Compliance& WithComplianceContributorCount(const ComplianceContributorCount& value) { SetComplianceContributorCount(value); return *this;}
169 
170     /**
171      * <p>The number of Amazon Web Services resources or Config rules that cause a
172      * result of <code>NON_COMPLIANT</code>, up to a maximum number.</p>
173      */
WithComplianceContributorCount(ComplianceContributorCount && value)174     inline Compliance& WithComplianceContributorCount(ComplianceContributorCount&& value) { SetComplianceContributorCount(std::move(value)); return *this;}
175 
176   private:
177 
178     ComplianceType m_complianceType;
179     bool m_complianceTypeHasBeenSet;
180 
181     ComplianceContributorCount m_complianceContributorCount;
182     bool m_complianceContributorCountHasBeenSet;
183   };
184 
185 } // namespace Model
186 } // namespace ConfigService
187 } // namespace Aws
188