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/core/utils/memory/stl/AWSString.h>
9 #include <aws/config/model/Compliance.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 Config rule is compliant based on account ID, region,
29    * compliance, and rule name.</p> <p>A rule is compliant if all of the resources
30    * that the rule evaluated comply with it. It is noncompliant if any of these
31    * resources do not comply.</p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/AggregateComplianceByConfigRule">AWS
33    * API Reference</a></p>
34    */
35   class AWS_CONFIGSERVICE_API AggregateComplianceByConfigRule
36   {
37   public:
38     AggregateComplianceByConfigRule();
39     AggregateComplianceByConfigRule(Aws::Utils::Json::JsonView jsonValue);
40     AggregateComplianceByConfigRule& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>The name of the Config rule.</p>
46      */
GetConfigRuleName()47     inline const Aws::String& GetConfigRuleName() const{ return m_configRuleName; }
48 
49     /**
50      * <p>The name of the Config rule.</p>
51      */
ConfigRuleNameHasBeenSet()52     inline bool ConfigRuleNameHasBeenSet() const { return m_configRuleNameHasBeenSet; }
53 
54     /**
55      * <p>The name of the Config rule.</p>
56      */
SetConfigRuleName(const Aws::String & value)57     inline void SetConfigRuleName(const Aws::String& value) { m_configRuleNameHasBeenSet = true; m_configRuleName = value; }
58 
59     /**
60      * <p>The name of the Config rule.</p>
61      */
SetConfigRuleName(Aws::String && value)62     inline void SetConfigRuleName(Aws::String&& value) { m_configRuleNameHasBeenSet = true; m_configRuleName = std::move(value); }
63 
64     /**
65      * <p>The name of the Config rule.</p>
66      */
SetConfigRuleName(const char * value)67     inline void SetConfigRuleName(const char* value) { m_configRuleNameHasBeenSet = true; m_configRuleName.assign(value); }
68 
69     /**
70      * <p>The name of the Config rule.</p>
71      */
WithConfigRuleName(const Aws::String & value)72     inline AggregateComplianceByConfigRule& WithConfigRuleName(const Aws::String& value) { SetConfigRuleName(value); return *this;}
73 
74     /**
75      * <p>The name of the Config rule.</p>
76      */
WithConfigRuleName(Aws::String && value)77     inline AggregateComplianceByConfigRule& WithConfigRuleName(Aws::String&& value) { SetConfigRuleName(std::move(value)); return *this;}
78 
79     /**
80      * <p>The name of the Config rule.</p>
81      */
WithConfigRuleName(const char * value)82     inline AggregateComplianceByConfigRule& WithConfigRuleName(const char* value) { SetConfigRuleName(value); return *this;}
83 
84 
85     /**
86      * <p>Indicates whether an Amazon Web Services resource or Config rule is compliant
87      * and provides the number of contributors that affect the compliance.</p>
88      */
GetCompliance()89     inline const Compliance& GetCompliance() const{ return m_compliance; }
90 
91     /**
92      * <p>Indicates whether an Amazon Web Services resource or Config rule is compliant
93      * and provides the number of contributors that affect the compliance.</p>
94      */
ComplianceHasBeenSet()95     inline bool ComplianceHasBeenSet() const { return m_complianceHasBeenSet; }
96 
97     /**
98      * <p>Indicates whether an Amazon Web Services resource or Config rule is compliant
99      * and provides the number of contributors that affect the compliance.</p>
100      */
SetCompliance(const Compliance & value)101     inline void SetCompliance(const Compliance& value) { m_complianceHasBeenSet = true; m_compliance = value; }
102 
103     /**
104      * <p>Indicates whether an Amazon Web Services resource or Config rule is compliant
105      * and provides the number of contributors that affect the compliance.</p>
106      */
SetCompliance(Compliance && value)107     inline void SetCompliance(Compliance&& value) { m_complianceHasBeenSet = true; m_compliance = std::move(value); }
108 
109     /**
110      * <p>Indicates whether an Amazon Web Services resource or Config rule is compliant
111      * and provides the number of contributors that affect the compliance.</p>
112      */
WithCompliance(const Compliance & value)113     inline AggregateComplianceByConfigRule& WithCompliance(const Compliance& value) { SetCompliance(value); return *this;}
114 
115     /**
116      * <p>Indicates whether an Amazon Web Services resource or Config rule is compliant
117      * and provides the number of contributors that affect the compliance.</p>
118      */
WithCompliance(Compliance && value)119     inline AggregateComplianceByConfigRule& WithCompliance(Compliance&& value) { SetCompliance(std::move(value)); return *this;}
120 
121 
122     /**
123      * <p>The 12-digit account ID of the source account.</p>
124      */
GetAccountId()125     inline const Aws::String& GetAccountId() const{ return m_accountId; }
126 
127     /**
128      * <p>The 12-digit account ID of the source account.</p>
129      */
AccountIdHasBeenSet()130     inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
131 
132     /**
133      * <p>The 12-digit account ID of the source account.</p>
134      */
SetAccountId(const Aws::String & value)135     inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; }
136 
137     /**
138      * <p>The 12-digit account ID of the source account.</p>
139      */
SetAccountId(Aws::String && value)140     inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); }
141 
142     /**
143      * <p>The 12-digit account ID of the source account.</p>
144      */
SetAccountId(const char * value)145     inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); }
146 
147     /**
148      * <p>The 12-digit account ID of the source account.</p>
149      */
WithAccountId(const Aws::String & value)150     inline AggregateComplianceByConfigRule& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;}
151 
152     /**
153      * <p>The 12-digit account ID of the source account.</p>
154      */
WithAccountId(Aws::String && value)155     inline AggregateComplianceByConfigRule& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;}
156 
157     /**
158      * <p>The 12-digit account ID of the source account.</p>
159      */
WithAccountId(const char * value)160     inline AggregateComplianceByConfigRule& WithAccountId(const char* value) { SetAccountId(value); return *this;}
161 
162 
163     /**
164      * <p>The source region from where the data is aggregated.</p>
165      */
GetAwsRegion()166     inline const Aws::String& GetAwsRegion() const{ return m_awsRegion; }
167 
168     /**
169      * <p>The source region from where the data is aggregated.</p>
170      */
AwsRegionHasBeenSet()171     inline bool AwsRegionHasBeenSet() const { return m_awsRegionHasBeenSet; }
172 
173     /**
174      * <p>The source region from where the data is aggregated.</p>
175      */
SetAwsRegion(const Aws::String & value)176     inline void SetAwsRegion(const Aws::String& value) { m_awsRegionHasBeenSet = true; m_awsRegion = value; }
177 
178     /**
179      * <p>The source region from where the data is aggregated.</p>
180      */
SetAwsRegion(Aws::String && value)181     inline void SetAwsRegion(Aws::String&& value) { m_awsRegionHasBeenSet = true; m_awsRegion = std::move(value); }
182 
183     /**
184      * <p>The source region from where the data is aggregated.</p>
185      */
SetAwsRegion(const char * value)186     inline void SetAwsRegion(const char* value) { m_awsRegionHasBeenSet = true; m_awsRegion.assign(value); }
187 
188     /**
189      * <p>The source region from where the data is aggregated.</p>
190      */
WithAwsRegion(const Aws::String & value)191     inline AggregateComplianceByConfigRule& WithAwsRegion(const Aws::String& value) { SetAwsRegion(value); return *this;}
192 
193     /**
194      * <p>The source region from where the data is aggregated.</p>
195      */
WithAwsRegion(Aws::String && value)196     inline AggregateComplianceByConfigRule& WithAwsRegion(Aws::String&& value) { SetAwsRegion(std::move(value)); return *this;}
197 
198     /**
199      * <p>The source region from where the data is aggregated.</p>
200      */
WithAwsRegion(const char * value)201     inline AggregateComplianceByConfigRule& WithAwsRegion(const char* value) { SetAwsRegion(value); return *this;}
202 
203   private:
204 
205     Aws::String m_configRuleName;
206     bool m_configRuleNameHasBeenSet;
207 
208     Compliance m_compliance;
209     bool m_complianceHasBeenSet;
210 
211     Aws::String m_accountId;
212     bool m_accountIdHasBeenSet;
213 
214     Aws::String m_awsRegion;
215     bool m_awsRegionHasBeenSet;
216   };
217 
218 } // namespace Model
219 } // namespace ConfigService
220 } // namespace Aws
221