This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files

286 lines
15 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/securityhub/SecurityHub_EXPORTS.h>
#include <aws/securityhub/model/ComplianceStatus.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/securityhub/model/StatusReason.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace SecurityHub
{
namespace Model
{
/**
* <p>Contains finding details that are specific to control-based findings. Only
* returned for findings generated from controls.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/Compliance">AWS
* API Reference</a></p>
*/
class AWS_SECURITYHUB_API Compliance
{
public:
Compliance();
Compliance(Aws::Utils::Json::JsonView jsonValue);
Compliance& operator=(Aws::Utils::Json::JsonView jsonValue);
Aws::Utils::Json::JsonValue Jsonize() const;
/**
* <p>The result of a standards check.</p> <p>The valid values for
* <code>Status</code> are as follows.</p> <ul> <li> <ul> <li> <p>
* <code>PASSED</code> - Standards check passed for all evaluated resources.</p>
* </li> <li> <p> <code>WARNING</code> - Some information is missing or this check
* is not supported for your configuration.</p> </li> <li> <p> <code>FAILED</code>
* - Standards check failed for at least one evaluated resource.</p> </li> <li> <p>
* <code>NOT_AVAILABLE</code> - Check could not be performed due to a service
* outage, API error, or because the result of the AWS Config evaluation was
* <code>NOT_APPLICABLE</code>. If the AWS Config evaluation result was
* <code>NOT_APPLICABLE</code>, then after 3 days, Security Hub automatically
* archives the finding.</p> </li> </ul> </li> </ul>
*/
inline const ComplianceStatus& GetStatus() const{ return m_status; }
/**
* <p>The result of a standards check.</p> <p>The valid values for
* <code>Status</code> are as follows.</p> <ul> <li> <ul> <li> <p>
* <code>PASSED</code> - Standards check passed for all evaluated resources.</p>
* </li> <li> <p> <code>WARNING</code> - Some information is missing or this check
* is not supported for your configuration.</p> </li> <li> <p> <code>FAILED</code>
* - Standards check failed for at least one evaluated resource.</p> </li> <li> <p>
* <code>NOT_AVAILABLE</code> - Check could not be performed due to a service
* outage, API error, or because the result of the AWS Config evaluation was
* <code>NOT_APPLICABLE</code>. If the AWS Config evaluation result was
* <code>NOT_APPLICABLE</code>, then after 3 days, Security Hub automatically
* archives the finding.</p> </li> </ul> </li> </ul>
*/
inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
/**
* <p>The result of a standards check.</p> <p>The valid values for
* <code>Status</code> are as follows.</p> <ul> <li> <ul> <li> <p>
* <code>PASSED</code> - Standards check passed for all evaluated resources.</p>
* </li> <li> <p> <code>WARNING</code> - Some information is missing or this check
* is not supported for your configuration.</p> </li> <li> <p> <code>FAILED</code>
* - Standards check failed for at least one evaluated resource.</p> </li> <li> <p>
* <code>NOT_AVAILABLE</code> - Check could not be performed due to a service
* outage, API error, or because the result of the AWS Config evaluation was
* <code>NOT_APPLICABLE</code>. If the AWS Config evaluation result was
* <code>NOT_APPLICABLE</code>, then after 3 days, Security Hub automatically
* archives the finding.</p> </li> </ul> </li> </ul>
*/
inline void SetStatus(const ComplianceStatus& value) { m_statusHasBeenSet = true; m_status = value; }
/**
* <p>The result of a standards check.</p> <p>The valid values for
* <code>Status</code> are as follows.</p> <ul> <li> <ul> <li> <p>
* <code>PASSED</code> - Standards check passed for all evaluated resources.</p>
* </li> <li> <p> <code>WARNING</code> - Some information is missing or this check
* is not supported for your configuration.</p> </li> <li> <p> <code>FAILED</code>
* - Standards check failed for at least one evaluated resource.</p> </li> <li> <p>
* <code>NOT_AVAILABLE</code> - Check could not be performed due to a service
* outage, API error, or because the result of the AWS Config evaluation was
* <code>NOT_APPLICABLE</code>. If the AWS Config evaluation result was
* <code>NOT_APPLICABLE</code>, then after 3 days, Security Hub automatically
* archives the finding.</p> </li> </ul> </li> </ul>
*/
inline void SetStatus(ComplianceStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
/**
* <p>The result of a standards check.</p> <p>The valid values for
* <code>Status</code> are as follows.</p> <ul> <li> <ul> <li> <p>
* <code>PASSED</code> - Standards check passed for all evaluated resources.</p>
* </li> <li> <p> <code>WARNING</code> - Some information is missing or this check
* is not supported for your configuration.</p> </li> <li> <p> <code>FAILED</code>
* - Standards check failed for at least one evaluated resource.</p> </li> <li> <p>
* <code>NOT_AVAILABLE</code> - Check could not be performed due to a service
* outage, API error, or because the result of the AWS Config evaluation was
* <code>NOT_APPLICABLE</code>. If the AWS Config evaluation result was
* <code>NOT_APPLICABLE</code>, then after 3 days, Security Hub automatically
* archives the finding.</p> </li> </ul> </li> </ul>
*/
inline Compliance& WithStatus(const ComplianceStatus& value) { SetStatus(value); return *this;}
/**
* <p>The result of a standards check.</p> <p>The valid values for
* <code>Status</code> are as follows.</p> <ul> <li> <ul> <li> <p>
* <code>PASSED</code> - Standards check passed for all evaluated resources.</p>
* </li> <li> <p> <code>WARNING</code> - Some information is missing or this check
* is not supported for your configuration.</p> </li> <li> <p> <code>FAILED</code>
* - Standards check failed for at least one evaluated resource.</p> </li> <li> <p>
* <code>NOT_AVAILABLE</code> - Check could not be performed due to a service
* outage, API error, or because the result of the AWS Config evaluation was
* <code>NOT_APPLICABLE</code>. If the AWS Config evaluation result was
* <code>NOT_APPLICABLE</code>, then after 3 days, Security Hub automatically
* archives the finding.</p> </li> </ul> </li> </ul>
*/
inline Compliance& WithStatus(ComplianceStatus&& value) { SetStatus(std::move(value)); return *this;}
/**
* <p>For a control, the industry or regulatory framework requirements that are
* related to the control. The check for that control is aligned with these
* requirements.</p>
*/
inline const Aws::Vector<Aws::String>& GetRelatedRequirements() const{ return m_relatedRequirements; }
/**
* <p>For a control, the industry or regulatory framework requirements that are
* related to the control. The check for that control is aligned with these
* requirements.</p>
*/
inline bool RelatedRequirementsHasBeenSet() const { return m_relatedRequirementsHasBeenSet; }
/**
* <p>For a control, the industry or regulatory framework requirements that are
* related to the control. The check for that control is aligned with these
* requirements.</p>
*/
inline void SetRelatedRequirements(const Aws::Vector<Aws::String>& value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements = value; }
/**
* <p>For a control, the industry or regulatory framework requirements that are
* related to the control. The check for that control is aligned with these
* requirements.</p>
*/
inline void SetRelatedRequirements(Aws::Vector<Aws::String>&& value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements = std::move(value); }
/**
* <p>For a control, the industry or regulatory framework requirements that are
* related to the control. The check for that control is aligned with these
* requirements.</p>
*/
inline Compliance& WithRelatedRequirements(const Aws::Vector<Aws::String>& value) { SetRelatedRequirements(value); return *this;}
/**
* <p>For a control, the industry or regulatory framework requirements that are
* related to the control. The check for that control is aligned with these
* requirements.</p>
*/
inline Compliance& WithRelatedRequirements(Aws::Vector<Aws::String>&& value) { SetRelatedRequirements(std::move(value)); return *this;}
/**
* <p>For a control, the industry or regulatory framework requirements that are
* related to the control. The check for that control is aligned with these
* requirements.</p>
*/
inline Compliance& AddRelatedRequirements(const Aws::String& value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements.push_back(value); return *this; }
/**
* <p>For a control, the industry or regulatory framework requirements that are
* related to the control. The check for that control is aligned with these
* requirements.</p>
*/
inline Compliance& AddRelatedRequirements(Aws::String&& value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements.push_back(std::move(value)); return *this; }
/**
* <p>For a control, the industry or regulatory framework requirements that are
* related to the control. The check for that control is aligned with these
* requirements.</p>
*/
inline Compliance& AddRelatedRequirements(const char* value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements.push_back(value); return *this; }
/**
* <p>For findings generated from controls, a list of reasons behind the value of
* <code>Status</code>. For the list of status reason codes and their meanings, see
* <a
* href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-results.html#securityhub-standards-results-asff">Standards-related
* information in the ASFF</a> in the <i>AWS Security Hub User Guide</i>. </p>
*/
inline const Aws::Vector<StatusReason>& GetStatusReasons() const{ return m_statusReasons; }
/**
* <p>For findings generated from controls, a list of reasons behind the value of
* <code>Status</code>. For the list of status reason codes and their meanings, see
* <a
* href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-results.html#securityhub-standards-results-asff">Standards-related
* information in the ASFF</a> in the <i>AWS Security Hub User Guide</i>. </p>
*/
inline bool StatusReasonsHasBeenSet() const { return m_statusReasonsHasBeenSet; }
/**
* <p>For findings generated from controls, a list of reasons behind the value of
* <code>Status</code>. For the list of status reason codes and their meanings, see
* <a
* href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-results.html#securityhub-standards-results-asff">Standards-related
* information in the ASFF</a> in the <i>AWS Security Hub User Guide</i>. </p>
*/
inline void SetStatusReasons(const Aws::Vector<StatusReason>& value) { m_statusReasonsHasBeenSet = true; m_statusReasons = value; }
/**
* <p>For findings generated from controls, a list of reasons behind the value of
* <code>Status</code>. For the list of status reason codes and their meanings, see
* <a
* href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-results.html#securityhub-standards-results-asff">Standards-related
* information in the ASFF</a> in the <i>AWS Security Hub User Guide</i>. </p>
*/
inline void SetStatusReasons(Aws::Vector<StatusReason>&& value) { m_statusReasonsHasBeenSet = true; m_statusReasons = std::move(value); }
/**
* <p>For findings generated from controls, a list of reasons behind the value of
* <code>Status</code>. For the list of status reason codes and their meanings, see
* <a
* href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-results.html#securityhub-standards-results-asff">Standards-related
* information in the ASFF</a> in the <i>AWS Security Hub User Guide</i>. </p>
*/
inline Compliance& WithStatusReasons(const Aws::Vector<StatusReason>& value) { SetStatusReasons(value); return *this;}
/**
* <p>For findings generated from controls, a list of reasons behind the value of
* <code>Status</code>. For the list of status reason codes and their meanings, see
* <a
* href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-results.html#securityhub-standards-results-asff">Standards-related
* information in the ASFF</a> in the <i>AWS Security Hub User Guide</i>. </p>
*/
inline Compliance& WithStatusReasons(Aws::Vector<StatusReason>&& value) { SetStatusReasons(std::move(value)); return *this;}
/**
* <p>For findings generated from controls, a list of reasons behind the value of
* <code>Status</code>. For the list of status reason codes and their meanings, see
* <a
* href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-results.html#securityhub-standards-results-asff">Standards-related
* information in the ASFF</a> in the <i>AWS Security Hub User Guide</i>. </p>
*/
inline Compliance& AddStatusReasons(const StatusReason& value) { m_statusReasonsHasBeenSet = true; m_statusReasons.push_back(value); return *this; }
/**
* <p>For findings generated from controls, a list of reasons behind the value of
* <code>Status</code>. For the list of status reason codes and their meanings, see
* <a
* href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-results.html#securityhub-standards-results-asff">Standards-related
* information in the ASFF</a> in the <i>AWS Security Hub User Guide</i>. </p>
*/
inline Compliance& AddStatusReasons(StatusReason&& value) { m_statusReasonsHasBeenSet = true; m_statusReasons.push_back(std::move(value)); return *this; }
private:
ComplianceStatus m_status;
bool m_statusHasBeenSet;
Aws::Vector<Aws::String> m_relatedRequirements;
bool m_relatedRequirementsHasBeenSet;
Aws::Vector<StatusReason> m_statusReasons;
bool m_statusReasonsHasBeenSet;
};
} // namespace Model
} // namespace SecurityHub
} // namespace Aws