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/ComplianceType.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>Filters the compliance results based on account ID, region, compliance type,
29    * and rule name.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigRuleComplianceFilters">AWS
31    * API Reference</a></p>
32    */
33   class AWS_CONFIGSERVICE_API ConfigRuleComplianceFilters
34   {
35   public:
36     ConfigRuleComplianceFilters();
37     ConfigRuleComplianceFilters(Aws::Utils::Json::JsonView jsonValue);
38     ConfigRuleComplianceFilters& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The name of the Config rule.</p>
44      */
GetConfigRuleName()45     inline const Aws::String& GetConfigRuleName() const{ return m_configRuleName; }
46 
47     /**
48      * <p>The name of the Config rule.</p>
49      */
ConfigRuleNameHasBeenSet()50     inline bool ConfigRuleNameHasBeenSet() const { return m_configRuleNameHasBeenSet; }
51 
52     /**
53      * <p>The name of the Config rule.</p>
54      */
SetConfigRuleName(const Aws::String & value)55     inline void SetConfigRuleName(const Aws::String& value) { m_configRuleNameHasBeenSet = true; m_configRuleName = value; }
56 
57     /**
58      * <p>The name of the Config rule.</p>
59      */
SetConfigRuleName(Aws::String && value)60     inline void SetConfigRuleName(Aws::String&& value) { m_configRuleNameHasBeenSet = true; m_configRuleName = std::move(value); }
61 
62     /**
63      * <p>The name of the Config rule.</p>
64      */
SetConfigRuleName(const char * value)65     inline void SetConfigRuleName(const char* value) { m_configRuleNameHasBeenSet = true; m_configRuleName.assign(value); }
66 
67     /**
68      * <p>The name of the Config rule.</p>
69      */
WithConfigRuleName(const Aws::String & value)70     inline ConfigRuleComplianceFilters& WithConfigRuleName(const Aws::String& value) { SetConfigRuleName(value); return *this;}
71 
72     /**
73      * <p>The name of the Config rule.</p>
74      */
WithConfigRuleName(Aws::String && value)75     inline ConfigRuleComplianceFilters& WithConfigRuleName(Aws::String&& value) { SetConfigRuleName(std::move(value)); return *this;}
76 
77     /**
78      * <p>The name of the Config rule.</p>
79      */
WithConfigRuleName(const char * value)80     inline ConfigRuleComplianceFilters& WithConfigRuleName(const char* value) { SetConfigRuleName(value); return *this;}
81 
82 
83     /**
84      * <p>The rule compliance status.</p> <p>For the
85      * <code>ConfigRuleComplianceFilters</code> data type, Config supports only
86      * <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. Config does not support
87      * the <code>NOT_APPLICABLE</code> and the <code>INSUFFICIENT_DATA</code>
88      * values.</p>
89      */
GetComplianceType()90     inline const ComplianceType& GetComplianceType() const{ return m_complianceType; }
91 
92     /**
93      * <p>The rule compliance status.</p> <p>For the
94      * <code>ConfigRuleComplianceFilters</code> data type, Config supports only
95      * <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. Config does not support
96      * the <code>NOT_APPLICABLE</code> and the <code>INSUFFICIENT_DATA</code>
97      * values.</p>
98      */
ComplianceTypeHasBeenSet()99     inline bool ComplianceTypeHasBeenSet() const { return m_complianceTypeHasBeenSet; }
100 
101     /**
102      * <p>The rule compliance status.</p> <p>For the
103      * <code>ConfigRuleComplianceFilters</code> data type, Config supports only
104      * <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. Config does not support
105      * the <code>NOT_APPLICABLE</code> and the <code>INSUFFICIENT_DATA</code>
106      * values.</p>
107      */
SetComplianceType(const ComplianceType & value)108     inline void SetComplianceType(const ComplianceType& value) { m_complianceTypeHasBeenSet = true; m_complianceType = value; }
109 
110     /**
111      * <p>The rule compliance status.</p> <p>For the
112      * <code>ConfigRuleComplianceFilters</code> data type, Config supports only
113      * <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. Config does not support
114      * the <code>NOT_APPLICABLE</code> and the <code>INSUFFICIENT_DATA</code>
115      * values.</p>
116      */
SetComplianceType(ComplianceType && value)117     inline void SetComplianceType(ComplianceType&& value) { m_complianceTypeHasBeenSet = true; m_complianceType = std::move(value); }
118 
119     /**
120      * <p>The rule compliance status.</p> <p>For the
121      * <code>ConfigRuleComplianceFilters</code> data type, Config supports only
122      * <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. Config does not support
123      * the <code>NOT_APPLICABLE</code> and the <code>INSUFFICIENT_DATA</code>
124      * values.</p>
125      */
WithComplianceType(const ComplianceType & value)126     inline ConfigRuleComplianceFilters& WithComplianceType(const ComplianceType& value) { SetComplianceType(value); return *this;}
127 
128     /**
129      * <p>The rule compliance status.</p> <p>For the
130      * <code>ConfigRuleComplianceFilters</code> data type, Config supports only
131      * <code>COMPLIANT</code> and <code>NON_COMPLIANT</code>. Config does not support
132      * the <code>NOT_APPLICABLE</code> and the <code>INSUFFICIENT_DATA</code>
133      * values.</p>
134      */
WithComplianceType(ComplianceType && value)135     inline ConfigRuleComplianceFilters& WithComplianceType(ComplianceType&& value) { SetComplianceType(std::move(value)); return *this;}
136 
137 
138     /**
139      * <p>The 12-digit account ID of the source account. </p>
140      */
GetAccountId()141     inline const Aws::String& GetAccountId() const{ return m_accountId; }
142 
143     /**
144      * <p>The 12-digit account ID of the source account. </p>
145      */
AccountIdHasBeenSet()146     inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
147 
148     /**
149      * <p>The 12-digit account ID of the source account. </p>
150      */
SetAccountId(const Aws::String & value)151     inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; }
152 
153     /**
154      * <p>The 12-digit account ID of the source account. </p>
155      */
SetAccountId(Aws::String && value)156     inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); }
157 
158     /**
159      * <p>The 12-digit account ID of the source account. </p>
160      */
SetAccountId(const char * value)161     inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); }
162 
163     /**
164      * <p>The 12-digit account ID of the source account. </p>
165      */
WithAccountId(const Aws::String & value)166     inline ConfigRuleComplianceFilters& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;}
167 
168     /**
169      * <p>The 12-digit account ID of the source account. </p>
170      */
WithAccountId(Aws::String && value)171     inline ConfigRuleComplianceFilters& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;}
172 
173     /**
174      * <p>The 12-digit account ID of the source account. </p>
175      */
WithAccountId(const char * value)176     inline ConfigRuleComplianceFilters& WithAccountId(const char* value) { SetAccountId(value); return *this;}
177 
178 
179     /**
180      * <p>The source region where the data is aggregated. </p>
181      */
GetAwsRegion()182     inline const Aws::String& GetAwsRegion() const{ return m_awsRegion; }
183 
184     /**
185      * <p>The source region where the data is aggregated. </p>
186      */
AwsRegionHasBeenSet()187     inline bool AwsRegionHasBeenSet() const { return m_awsRegionHasBeenSet; }
188 
189     /**
190      * <p>The source region where the data is aggregated. </p>
191      */
SetAwsRegion(const Aws::String & value)192     inline void SetAwsRegion(const Aws::String& value) { m_awsRegionHasBeenSet = true; m_awsRegion = value; }
193 
194     /**
195      * <p>The source region where the data is aggregated. </p>
196      */
SetAwsRegion(Aws::String && value)197     inline void SetAwsRegion(Aws::String&& value) { m_awsRegionHasBeenSet = true; m_awsRegion = std::move(value); }
198 
199     /**
200      * <p>The source region where the data is aggregated. </p>
201      */
SetAwsRegion(const char * value)202     inline void SetAwsRegion(const char* value) { m_awsRegionHasBeenSet = true; m_awsRegion.assign(value); }
203 
204     /**
205      * <p>The source region where the data is aggregated. </p>
206      */
WithAwsRegion(const Aws::String & value)207     inline ConfigRuleComplianceFilters& WithAwsRegion(const Aws::String& value) { SetAwsRegion(value); return *this;}
208 
209     /**
210      * <p>The source region where the data is aggregated. </p>
211      */
WithAwsRegion(Aws::String && value)212     inline ConfigRuleComplianceFilters& WithAwsRegion(Aws::String&& value) { SetAwsRegion(std::move(value)); return *this;}
213 
214     /**
215      * <p>The source region where the data is aggregated. </p>
216      */
WithAwsRegion(const char * value)217     inline ConfigRuleComplianceFilters& WithAwsRegion(const char* value) { SetAwsRegion(value); return *this;}
218 
219   private:
220 
221     Aws::String m_configRuleName;
222     bool m_configRuleNameHasBeenSet;
223 
224     ComplianceType m_complianceType;
225     bool m_complianceTypeHasBeenSet;
226 
227     Aws::String m_accountId;
228     bool m_accountIdHasBeenSet;
229 
230     Aws::String m_awsRegion;
231     bool m_awsRegionHasBeenSet;
232   };
233 
234 } // namespace Model
235 } // namespace ConfigService
236 } // namespace Aws
237