/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace AccessAnalyzer { namespace Model { /** *

A finding in a policy. Each finding is an actionable recommendation that can * be used to improve the policy.

See Also:

AWS * API Reference

*/ class ValidatePolicyFinding { public: AWS_ACCESSANALYZER_API ValidatePolicyFinding(); AWS_ACCESSANALYZER_API ValidatePolicyFinding(Aws::Utils::Json::JsonView jsonValue); AWS_ACCESSANALYZER_API ValidatePolicyFinding& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_ACCESSANALYZER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

A localized message that explains the finding and provides guidance on how to * address it.

*/ inline const Aws::String& GetFindingDetails() const{ return m_findingDetails; } /** *

A localized message that explains the finding and provides guidance on how to * address it.

*/ inline bool FindingDetailsHasBeenSet() const { return m_findingDetailsHasBeenSet; } /** *

A localized message that explains the finding and provides guidance on how to * address it.

*/ inline void SetFindingDetails(const Aws::String& value) { m_findingDetailsHasBeenSet = true; m_findingDetails = value; } /** *

A localized message that explains the finding and provides guidance on how to * address it.

*/ inline void SetFindingDetails(Aws::String&& value) { m_findingDetailsHasBeenSet = true; m_findingDetails = std::move(value); } /** *

A localized message that explains the finding and provides guidance on how to * address it.

*/ inline void SetFindingDetails(const char* value) { m_findingDetailsHasBeenSet = true; m_findingDetails.assign(value); } /** *

A localized message that explains the finding and provides guidance on how to * address it.

*/ inline ValidatePolicyFinding& WithFindingDetails(const Aws::String& value) { SetFindingDetails(value); return *this;} /** *

A localized message that explains the finding and provides guidance on how to * address it.

*/ inline ValidatePolicyFinding& WithFindingDetails(Aws::String&& value) { SetFindingDetails(std::move(value)); return *this;} /** *

A localized message that explains the finding and provides guidance on how to * address it.

*/ inline ValidatePolicyFinding& WithFindingDetails(const char* value) { SetFindingDetails(value); return *this;} /** *

The impact of the finding.

Security warnings report when the policy * allows access that we consider overly permissive.

Errors report when a * part of the policy is not functional.

Warnings report non-security issues * when a policy does not conform to policy writing best practices.

*

Suggestions recommend stylistic improvements in the policy that do not impact * access.

*/ inline const ValidatePolicyFindingType& GetFindingType() const{ return m_findingType; } /** *

The impact of the finding.

Security warnings report when the policy * allows access that we consider overly permissive.

Errors report when a * part of the policy is not functional.

Warnings report non-security issues * when a policy does not conform to policy writing best practices.

*

Suggestions recommend stylistic improvements in the policy that do not impact * access.

*/ inline bool FindingTypeHasBeenSet() const { return m_findingTypeHasBeenSet; } /** *

The impact of the finding.

Security warnings report when the policy * allows access that we consider overly permissive.

Errors report when a * part of the policy is not functional.

Warnings report non-security issues * when a policy does not conform to policy writing best practices.

*

Suggestions recommend stylistic improvements in the policy that do not impact * access.

*/ inline void SetFindingType(const ValidatePolicyFindingType& value) { m_findingTypeHasBeenSet = true; m_findingType = value; } /** *

The impact of the finding.

Security warnings report when the policy * allows access that we consider overly permissive.

Errors report when a * part of the policy is not functional.

Warnings report non-security issues * when a policy does not conform to policy writing best practices.

*

Suggestions recommend stylistic improvements in the policy that do not impact * access.

*/ inline void SetFindingType(ValidatePolicyFindingType&& value) { m_findingTypeHasBeenSet = true; m_findingType = std::move(value); } /** *

The impact of the finding.

Security warnings report when the policy * allows access that we consider overly permissive.

Errors report when a * part of the policy is not functional.

Warnings report non-security issues * when a policy does not conform to policy writing best practices.

*

Suggestions recommend stylistic improvements in the policy that do not impact * access.

*/ inline ValidatePolicyFinding& WithFindingType(const ValidatePolicyFindingType& value) { SetFindingType(value); return *this;} /** *

The impact of the finding.

Security warnings report when the policy * allows access that we consider overly permissive.

Errors report when a * part of the policy is not functional.

Warnings report non-security issues * when a policy does not conform to policy writing best practices.

*

Suggestions recommend stylistic improvements in the policy that do not impact * access.

*/ inline ValidatePolicyFinding& WithFindingType(ValidatePolicyFindingType&& value) { SetFindingType(std::move(value)); return *this;} /** *

The issue code provides an identifier of the issue associated with this * finding.

*/ inline const Aws::String& GetIssueCode() const{ return m_issueCode; } /** *

The issue code provides an identifier of the issue associated with this * finding.

*/ inline bool IssueCodeHasBeenSet() const { return m_issueCodeHasBeenSet; } /** *

The issue code provides an identifier of the issue associated with this * finding.

*/ inline void SetIssueCode(const Aws::String& value) { m_issueCodeHasBeenSet = true; m_issueCode = value; } /** *

The issue code provides an identifier of the issue associated with this * finding.

*/ inline void SetIssueCode(Aws::String&& value) { m_issueCodeHasBeenSet = true; m_issueCode = std::move(value); } /** *

The issue code provides an identifier of the issue associated with this * finding.

*/ inline void SetIssueCode(const char* value) { m_issueCodeHasBeenSet = true; m_issueCode.assign(value); } /** *

The issue code provides an identifier of the issue associated with this * finding.

*/ inline ValidatePolicyFinding& WithIssueCode(const Aws::String& value) { SetIssueCode(value); return *this;} /** *

The issue code provides an identifier of the issue associated with this * finding.

*/ inline ValidatePolicyFinding& WithIssueCode(Aws::String&& value) { SetIssueCode(std::move(value)); return *this;} /** *

The issue code provides an identifier of the issue associated with this * finding.

*/ inline ValidatePolicyFinding& WithIssueCode(const char* value) { SetIssueCode(value); return *this;} /** *

A link to additional documentation about the type of finding.

*/ inline const Aws::String& GetLearnMoreLink() const{ return m_learnMoreLink; } /** *

A link to additional documentation about the type of finding.

*/ inline bool LearnMoreLinkHasBeenSet() const { return m_learnMoreLinkHasBeenSet; } /** *

A link to additional documentation about the type of finding.

*/ inline void SetLearnMoreLink(const Aws::String& value) { m_learnMoreLinkHasBeenSet = true; m_learnMoreLink = value; } /** *

A link to additional documentation about the type of finding.

*/ inline void SetLearnMoreLink(Aws::String&& value) { m_learnMoreLinkHasBeenSet = true; m_learnMoreLink = std::move(value); } /** *

A link to additional documentation about the type of finding.

*/ inline void SetLearnMoreLink(const char* value) { m_learnMoreLinkHasBeenSet = true; m_learnMoreLink.assign(value); } /** *

A link to additional documentation about the type of finding.

*/ inline ValidatePolicyFinding& WithLearnMoreLink(const Aws::String& value) { SetLearnMoreLink(value); return *this;} /** *

A link to additional documentation about the type of finding.

*/ inline ValidatePolicyFinding& WithLearnMoreLink(Aws::String&& value) { SetLearnMoreLink(std::move(value)); return *this;} /** *

A link to additional documentation about the type of finding.

*/ inline ValidatePolicyFinding& WithLearnMoreLink(const char* value) { SetLearnMoreLink(value); return *this;} /** *

The list of locations in the policy document that are related to the finding. * The issue code provides a summary of an issue identified by the finding.

*/ inline const Aws::Vector& GetLocations() const{ return m_locations; } /** *

The list of locations in the policy document that are related to the finding. * The issue code provides a summary of an issue identified by the finding.

*/ inline bool LocationsHasBeenSet() const { return m_locationsHasBeenSet; } /** *

The list of locations in the policy document that are related to the finding. * The issue code provides a summary of an issue identified by the finding.

*/ inline void SetLocations(const Aws::Vector& value) { m_locationsHasBeenSet = true; m_locations = value; } /** *

The list of locations in the policy document that are related to the finding. * The issue code provides a summary of an issue identified by the finding.

*/ inline void SetLocations(Aws::Vector&& value) { m_locationsHasBeenSet = true; m_locations = std::move(value); } /** *

The list of locations in the policy document that are related to the finding. * The issue code provides a summary of an issue identified by the finding.

*/ inline ValidatePolicyFinding& WithLocations(const Aws::Vector& value) { SetLocations(value); return *this;} /** *

The list of locations in the policy document that are related to the finding. * The issue code provides a summary of an issue identified by the finding.

*/ inline ValidatePolicyFinding& WithLocations(Aws::Vector&& value) { SetLocations(std::move(value)); return *this;} /** *

The list of locations in the policy document that are related to the finding. * The issue code provides a summary of an issue identified by the finding.

*/ inline ValidatePolicyFinding& AddLocations(const Location& value) { m_locationsHasBeenSet = true; m_locations.push_back(value); return *this; } /** *

The list of locations in the policy document that are related to the finding. * The issue code provides a summary of an issue identified by the finding.

*/ inline ValidatePolicyFinding& AddLocations(Location&& value) { m_locationsHasBeenSet = true; m_locations.push_back(std::move(value)); return *this; } private: Aws::String m_findingDetails; bool m_findingDetailsHasBeenSet = false; ValidatePolicyFindingType m_findingType; bool m_findingTypeHasBeenSet = false; Aws::String m_issueCode; bool m_issueCodeHasBeenSet = false; Aws::String m_learnMoreLink; bool m_learnMoreLinkHasBeenSet = false; Aws::Vector m_locations; bool m_locationsHasBeenSet = false; }; } // namespace Model } // namespace AccessAnalyzer } // namespace Aws