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/fms/FMS_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/core/utils/memory/stl/AWSVector.h> 10 #include <aws/core/utils/DateTime.h> 11 #include <aws/core/utils/memory/stl/AWSMap.h> 12 #include <aws/fms/model/ComplianceViolator.h> 13 #include <aws/fms/model/DependentServiceName.h> 14 #include <utility> 15 16 namespace Aws 17 { 18 namespace Utils 19 { 20 namespace Json 21 { 22 class JsonValue; 23 class JsonView; 24 } // namespace Json 25 } // namespace Utils 26 namespace FMS 27 { 28 namespace Model 29 { 30 31 /** 32 * <p>Describes the noncompliant resources in a member account for a specific 33 * Firewall Manager policy. A maximum of 100 entries are displayed. If more than 34 * 100 resources are noncompliant, <code>EvaluationLimitExceeded</code> is set to 35 * <code>True</code>.</p><p><h3>See Also:</h3> <a 36 * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PolicyComplianceDetail">AWS 37 * API Reference</a></p> 38 */ 39 class AWS_FMS_API PolicyComplianceDetail 40 { 41 public: 42 PolicyComplianceDetail(); 43 PolicyComplianceDetail(Aws::Utils::Json::JsonView jsonValue); 44 PolicyComplianceDetail& operator=(Aws::Utils::Json::JsonView jsonValue); 45 Aws::Utils::Json::JsonValue Jsonize() const; 46 47 48 /** 49 * <p>The Amazon Web Services account that created the Firewall Manager policy.</p> 50 */ GetPolicyOwner()51 inline const Aws::String& GetPolicyOwner() const{ return m_policyOwner; } 52 53 /** 54 * <p>The Amazon Web Services account that created the Firewall Manager policy.</p> 55 */ PolicyOwnerHasBeenSet()56 inline bool PolicyOwnerHasBeenSet() const { return m_policyOwnerHasBeenSet; } 57 58 /** 59 * <p>The Amazon Web Services account that created the Firewall Manager policy.</p> 60 */ SetPolicyOwner(const Aws::String & value)61 inline void SetPolicyOwner(const Aws::String& value) { m_policyOwnerHasBeenSet = true; m_policyOwner = value; } 62 63 /** 64 * <p>The Amazon Web Services account that created the Firewall Manager policy.</p> 65 */ SetPolicyOwner(Aws::String && value)66 inline void SetPolicyOwner(Aws::String&& value) { m_policyOwnerHasBeenSet = true; m_policyOwner = std::move(value); } 67 68 /** 69 * <p>The Amazon Web Services account that created the Firewall Manager policy.</p> 70 */ SetPolicyOwner(const char * value)71 inline void SetPolicyOwner(const char* value) { m_policyOwnerHasBeenSet = true; m_policyOwner.assign(value); } 72 73 /** 74 * <p>The Amazon Web Services account that created the Firewall Manager policy.</p> 75 */ WithPolicyOwner(const Aws::String & value)76 inline PolicyComplianceDetail& WithPolicyOwner(const Aws::String& value) { SetPolicyOwner(value); return *this;} 77 78 /** 79 * <p>The Amazon Web Services account that created the Firewall Manager policy.</p> 80 */ WithPolicyOwner(Aws::String && value)81 inline PolicyComplianceDetail& WithPolicyOwner(Aws::String&& value) { SetPolicyOwner(std::move(value)); return *this;} 82 83 /** 84 * <p>The Amazon Web Services account that created the Firewall Manager policy.</p> 85 */ WithPolicyOwner(const char * value)86 inline PolicyComplianceDetail& WithPolicyOwner(const char* value) { SetPolicyOwner(value); return *this;} 87 88 89 /** 90 * <p>The ID of the Firewall Manager policy.</p> 91 */ GetPolicyId()92 inline const Aws::String& GetPolicyId() const{ return m_policyId; } 93 94 /** 95 * <p>The ID of the Firewall Manager policy.</p> 96 */ PolicyIdHasBeenSet()97 inline bool PolicyIdHasBeenSet() const { return m_policyIdHasBeenSet; } 98 99 /** 100 * <p>The ID of the Firewall Manager policy.</p> 101 */ SetPolicyId(const Aws::String & value)102 inline void SetPolicyId(const Aws::String& value) { m_policyIdHasBeenSet = true; m_policyId = value; } 103 104 /** 105 * <p>The ID of the Firewall Manager policy.</p> 106 */ SetPolicyId(Aws::String && value)107 inline void SetPolicyId(Aws::String&& value) { m_policyIdHasBeenSet = true; m_policyId = std::move(value); } 108 109 /** 110 * <p>The ID of the Firewall Manager policy.</p> 111 */ SetPolicyId(const char * value)112 inline void SetPolicyId(const char* value) { m_policyIdHasBeenSet = true; m_policyId.assign(value); } 113 114 /** 115 * <p>The ID of the Firewall Manager policy.</p> 116 */ WithPolicyId(const Aws::String & value)117 inline PolicyComplianceDetail& WithPolicyId(const Aws::String& value) { SetPolicyId(value); return *this;} 118 119 /** 120 * <p>The ID of the Firewall Manager policy.</p> 121 */ WithPolicyId(Aws::String && value)122 inline PolicyComplianceDetail& WithPolicyId(Aws::String&& value) { SetPolicyId(std::move(value)); return *this;} 123 124 /** 125 * <p>The ID of the Firewall Manager policy.</p> 126 */ WithPolicyId(const char * value)127 inline PolicyComplianceDetail& WithPolicyId(const char* value) { SetPolicyId(value); return *this;} 128 129 130 /** 131 * <p>The Amazon Web Services account ID.</p> 132 */ GetMemberAccount()133 inline const Aws::String& GetMemberAccount() const{ return m_memberAccount; } 134 135 /** 136 * <p>The Amazon Web Services account ID.</p> 137 */ MemberAccountHasBeenSet()138 inline bool MemberAccountHasBeenSet() const { return m_memberAccountHasBeenSet; } 139 140 /** 141 * <p>The Amazon Web Services account ID.</p> 142 */ SetMemberAccount(const Aws::String & value)143 inline void SetMemberAccount(const Aws::String& value) { m_memberAccountHasBeenSet = true; m_memberAccount = value; } 144 145 /** 146 * <p>The Amazon Web Services account ID.</p> 147 */ SetMemberAccount(Aws::String && value)148 inline void SetMemberAccount(Aws::String&& value) { m_memberAccountHasBeenSet = true; m_memberAccount = std::move(value); } 149 150 /** 151 * <p>The Amazon Web Services account ID.</p> 152 */ SetMemberAccount(const char * value)153 inline void SetMemberAccount(const char* value) { m_memberAccountHasBeenSet = true; m_memberAccount.assign(value); } 154 155 /** 156 * <p>The Amazon Web Services account ID.</p> 157 */ WithMemberAccount(const Aws::String & value)158 inline PolicyComplianceDetail& WithMemberAccount(const Aws::String& value) { SetMemberAccount(value); return *this;} 159 160 /** 161 * <p>The Amazon Web Services account ID.</p> 162 */ WithMemberAccount(Aws::String && value)163 inline PolicyComplianceDetail& WithMemberAccount(Aws::String&& value) { SetMemberAccount(std::move(value)); return *this;} 164 165 /** 166 * <p>The Amazon Web Services account ID.</p> 167 */ WithMemberAccount(const char * value)168 inline PolicyComplianceDetail& WithMemberAccount(const char* value) { SetMemberAccount(value); return *this;} 169 170 171 /** 172 * <p>An array of resources that aren't protected by the WAF or Shield Advanced 173 * policy or that aren't in compliance with the security group policy.</p> 174 */ GetViolators()175 inline const Aws::Vector<ComplianceViolator>& GetViolators() const{ return m_violators; } 176 177 /** 178 * <p>An array of resources that aren't protected by the WAF or Shield Advanced 179 * policy or that aren't in compliance with the security group policy.</p> 180 */ ViolatorsHasBeenSet()181 inline bool ViolatorsHasBeenSet() const { return m_violatorsHasBeenSet; } 182 183 /** 184 * <p>An array of resources that aren't protected by the WAF or Shield Advanced 185 * policy or that aren't in compliance with the security group policy.</p> 186 */ SetViolators(const Aws::Vector<ComplianceViolator> & value)187 inline void SetViolators(const Aws::Vector<ComplianceViolator>& value) { m_violatorsHasBeenSet = true; m_violators = value; } 188 189 /** 190 * <p>An array of resources that aren't protected by the WAF or Shield Advanced 191 * policy or that aren't in compliance with the security group policy.</p> 192 */ SetViolators(Aws::Vector<ComplianceViolator> && value)193 inline void SetViolators(Aws::Vector<ComplianceViolator>&& value) { m_violatorsHasBeenSet = true; m_violators = std::move(value); } 194 195 /** 196 * <p>An array of resources that aren't protected by the WAF or Shield Advanced 197 * policy or that aren't in compliance with the security group policy.</p> 198 */ WithViolators(const Aws::Vector<ComplianceViolator> & value)199 inline PolicyComplianceDetail& WithViolators(const Aws::Vector<ComplianceViolator>& value) { SetViolators(value); return *this;} 200 201 /** 202 * <p>An array of resources that aren't protected by the WAF or Shield Advanced 203 * policy or that aren't in compliance with the security group policy.</p> 204 */ WithViolators(Aws::Vector<ComplianceViolator> && value)205 inline PolicyComplianceDetail& WithViolators(Aws::Vector<ComplianceViolator>&& value) { SetViolators(std::move(value)); return *this;} 206 207 /** 208 * <p>An array of resources that aren't protected by the WAF or Shield Advanced 209 * policy or that aren't in compliance with the security group policy.</p> 210 */ AddViolators(const ComplianceViolator & value)211 inline PolicyComplianceDetail& AddViolators(const ComplianceViolator& value) { m_violatorsHasBeenSet = true; m_violators.push_back(value); return *this; } 212 213 /** 214 * <p>An array of resources that aren't protected by the WAF or Shield Advanced 215 * policy or that aren't in compliance with the security group policy.</p> 216 */ AddViolators(ComplianceViolator && value)217 inline PolicyComplianceDetail& AddViolators(ComplianceViolator&& value) { m_violatorsHasBeenSet = true; m_violators.push_back(std::move(value)); return *this; } 218 219 220 /** 221 * <p>Indicates if over 100 resources are noncompliant with the Firewall Manager 222 * policy.</p> 223 */ GetEvaluationLimitExceeded()224 inline bool GetEvaluationLimitExceeded() const{ return m_evaluationLimitExceeded; } 225 226 /** 227 * <p>Indicates if over 100 resources are noncompliant with the Firewall Manager 228 * policy.</p> 229 */ EvaluationLimitExceededHasBeenSet()230 inline bool EvaluationLimitExceededHasBeenSet() const { return m_evaluationLimitExceededHasBeenSet; } 231 232 /** 233 * <p>Indicates if over 100 resources are noncompliant with the Firewall Manager 234 * policy.</p> 235 */ SetEvaluationLimitExceeded(bool value)236 inline void SetEvaluationLimitExceeded(bool value) { m_evaluationLimitExceededHasBeenSet = true; m_evaluationLimitExceeded = value; } 237 238 /** 239 * <p>Indicates if over 100 resources are noncompliant with the Firewall Manager 240 * policy.</p> 241 */ WithEvaluationLimitExceeded(bool value)242 inline PolicyComplianceDetail& WithEvaluationLimitExceeded(bool value) { SetEvaluationLimitExceeded(value); return *this;} 243 244 245 /** 246 * <p>A timestamp that indicates when the returned information should be considered 247 * out of date.</p> 248 */ GetExpiredAt()249 inline const Aws::Utils::DateTime& GetExpiredAt() const{ return m_expiredAt; } 250 251 /** 252 * <p>A timestamp that indicates when the returned information should be considered 253 * out of date.</p> 254 */ ExpiredAtHasBeenSet()255 inline bool ExpiredAtHasBeenSet() const { return m_expiredAtHasBeenSet; } 256 257 /** 258 * <p>A timestamp that indicates when the returned information should be considered 259 * out of date.</p> 260 */ SetExpiredAt(const Aws::Utils::DateTime & value)261 inline void SetExpiredAt(const Aws::Utils::DateTime& value) { m_expiredAtHasBeenSet = true; m_expiredAt = value; } 262 263 /** 264 * <p>A timestamp that indicates when the returned information should be considered 265 * out of date.</p> 266 */ SetExpiredAt(Aws::Utils::DateTime && value)267 inline void SetExpiredAt(Aws::Utils::DateTime&& value) { m_expiredAtHasBeenSet = true; m_expiredAt = std::move(value); } 268 269 /** 270 * <p>A timestamp that indicates when the returned information should be considered 271 * out of date.</p> 272 */ WithExpiredAt(const Aws::Utils::DateTime & value)273 inline PolicyComplianceDetail& WithExpiredAt(const Aws::Utils::DateTime& value) { SetExpiredAt(value); return *this;} 274 275 /** 276 * <p>A timestamp that indicates when the returned information should be considered 277 * out of date.</p> 278 */ WithExpiredAt(Aws::Utils::DateTime && value)279 inline PolicyComplianceDetail& WithExpiredAt(Aws::Utils::DateTime&& value) { SetExpiredAt(std::move(value)); return *this;} 280 281 282 /** 283 * <p>Details about problems with dependent services, such as WAF or Config, and 284 * the error message received that indicates the problem with the service.</p> 285 */ GetIssueInfoMap()286 inline const Aws::Map<DependentServiceName, Aws::String>& GetIssueInfoMap() const{ return m_issueInfoMap; } 287 288 /** 289 * <p>Details about problems with dependent services, such as WAF or Config, and 290 * the error message received that indicates the problem with the service.</p> 291 */ IssueInfoMapHasBeenSet()292 inline bool IssueInfoMapHasBeenSet() const { return m_issueInfoMapHasBeenSet; } 293 294 /** 295 * <p>Details about problems with dependent services, such as WAF or Config, and 296 * the error message received that indicates the problem with the service.</p> 297 */ SetIssueInfoMap(const Aws::Map<DependentServiceName,Aws::String> & value)298 inline void SetIssueInfoMap(const Aws::Map<DependentServiceName, Aws::String>& value) { m_issueInfoMapHasBeenSet = true; m_issueInfoMap = value; } 299 300 /** 301 * <p>Details about problems with dependent services, such as WAF or Config, and 302 * the error message received that indicates the problem with the service.</p> 303 */ SetIssueInfoMap(Aws::Map<DependentServiceName,Aws::String> && value)304 inline void SetIssueInfoMap(Aws::Map<DependentServiceName, Aws::String>&& value) { m_issueInfoMapHasBeenSet = true; m_issueInfoMap = std::move(value); } 305 306 /** 307 * <p>Details about problems with dependent services, such as WAF or Config, and 308 * the error message received that indicates the problem with the service.</p> 309 */ WithIssueInfoMap(const Aws::Map<DependentServiceName,Aws::String> & value)310 inline PolicyComplianceDetail& WithIssueInfoMap(const Aws::Map<DependentServiceName, Aws::String>& value) { SetIssueInfoMap(value); return *this;} 311 312 /** 313 * <p>Details about problems with dependent services, such as WAF or Config, and 314 * the error message received that indicates the problem with the service.</p> 315 */ WithIssueInfoMap(Aws::Map<DependentServiceName,Aws::String> && value)316 inline PolicyComplianceDetail& WithIssueInfoMap(Aws::Map<DependentServiceName, Aws::String>&& value) { SetIssueInfoMap(std::move(value)); return *this;} 317 318 /** 319 * <p>Details about problems with dependent services, such as WAF or Config, and 320 * the error message received that indicates the problem with the service.</p> 321 */ AddIssueInfoMap(const DependentServiceName & key,const Aws::String & value)322 inline PolicyComplianceDetail& AddIssueInfoMap(const DependentServiceName& key, const Aws::String& value) { m_issueInfoMapHasBeenSet = true; m_issueInfoMap.emplace(key, value); return *this; } 323 324 /** 325 * <p>Details about problems with dependent services, such as WAF or Config, and 326 * the error message received that indicates the problem with the service.</p> 327 */ AddIssueInfoMap(DependentServiceName && key,const Aws::String & value)328 inline PolicyComplianceDetail& AddIssueInfoMap(DependentServiceName&& key, const Aws::String& value) { m_issueInfoMapHasBeenSet = true; m_issueInfoMap.emplace(std::move(key), value); return *this; } 329 330 /** 331 * <p>Details about problems with dependent services, such as WAF or Config, and 332 * the error message received that indicates the problem with the service.</p> 333 */ AddIssueInfoMap(const DependentServiceName & key,Aws::String && value)334 inline PolicyComplianceDetail& AddIssueInfoMap(const DependentServiceName& key, Aws::String&& value) { m_issueInfoMapHasBeenSet = true; m_issueInfoMap.emplace(key, std::move(value)); return *this; } 335 336 /** 337 * <p>Details about problems with dependent services, such as WAF or Config, and 338 * the error message received that indicates the problem with the service.</p> 339 */ AddIssueInfoMap(DependentServiceName && key,Aws::String && value)340 inline PolicyComplianceDetail& AddIssueInfoMap(DependentServiceName&& key, Aws::String&& value) { m_issueInfoMapHasBeenSet = true; m_issueInfoMap.emplace(std::move(key), std::move(value)); return *this; } 341 342 /** 343 * <p>Details about problems with dependent services, such as WAF or Config, and 344 * the error message received that indicates the problem with the service.</p> 345 */ AddIssueInfoMap(DependentServiceName && key,const char * value)346 inline PolicyComplianceDetail& AddIssueInfoMap(DependentServiceName&& key, const char* value) { m_issueInfoMapHasBeenSet = true; m_issueInfoMap.emplace(std::move(key), value); return *this; } 347 348 /** 349 * <p>Details about problems with dependent services, such as WAF or Config, and 350 * the error message received that indicates the problem with the service.</p> 351 */ AddIssueInfoMap(const DependentServiceName & key,const char * value)352 inline PolicyComplianceDetail& AddIssueInfoMap(const DependentServiceName& key, const char* value) { m_issueInfoMapHasBeenSet = true; m_issueInfoMap.emplace(key, value); return *this; } 353 354 private: 355 356 Aws::String m_policyOwner; 357 bool m_policyOwnerHasBeenSet; 358 359 Aws::String m_policyId; 360 bool m_policyIdHasBeenSet; 361 362 Aws::String m_memberAccount; 363 bool m_memberAccountHasBeenSet; 364 365 Aws::Vector<ComplianceViolator> m_violators; 366 bool m_violatorsHasBeenSet; 367 368 bool m_evaluationLimitExceeded; 369 bool m_evaluationLimitExceededHasBeenSet; 370 371 Aws::Utils::DateTime m_expiredAt; 372 bool m_expiredAtHasBeenSet; 373 374 Aws::Map<DependentServiceName, Aws::String> m_issueInfoMap; 375 bool m_issueInfoMapHasBeenSet; 376 }; 377 378 } // namespace Model 379 } // namespace FMS 380 } // namespace Aws 381