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

Contains finding details that are specific to control-based findings. Only * returned for findings generated from controls.

See Also:

AWS * API Reference

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

The result of a standards check.

The valid values for * Status are as follows.

    • * PASSED - Standards check passed for all evaluated resources.

      *
    • WARNING - Some information is missing or this check * is not supported for your configuration.

    • FAILED * - Standards check failed for at least one evaluated resource.

    • * NOT_AVAILABLE - Check could not be performed due to a service * outage, API error, or because the result of the Config evaluation was * NOT_APPLICABLE. If the Config evaluation result was * NOT_APPLICABLE, then after 3 days, Security Hub automatically * archives the finding.

*/ inline const ComplianceStatus& GetStatus() const{ return m_status; } /** *

The result of a standards check.

The valid values for * Status are as follows.

    • * PASSED - Standards check passed for all evaluated resources.

      *
    • WARNING - Some information is missing or this check * is not supported for your configuration.

    • FAILED * - Standards check failed for at least one evaluated resource.

    • * NOT_AVAILABLE - Check could not be performed due to a service * outage, API error, or because the result of the Config evaluation was * NOT_APPLICABLE. If the Config evaluation result was * NOT_APPLICABLE, then after 3 days, Security Hub automatically * archives the finding.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The result of a standards check.

The valid values for * Status are as follows.

    • * PASSED - Standards check passed for all evaluated resources.

      *
    • WARNING - Some information is missing or this check * is not supported for your configuration.

    • FAILED * - Standards check failed for at least one evaluated resource.

    • * NOT_AVAILABLE - Check could not be performed due to a service * outage, API error, or because the result of the Config evaluation was * NOT_APPLICABLE. If the Config evaluation result was * NOT_APPLICABLE, then after 3 days, Security Hub automatically * archives the finding.

*/ inline void SetStatus(const ComplianceStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The result of a standards check.

The valid values for * Status are as follows.

    • * PASSED - Standards check passed for all evaluated resources.

      *
    • WARNING - Some information is missing or this check * is not supported for your configuration.

    • FAILED * - Standards check failed for at least one evaluated resource.

    • * NOT_AVAILABLE - Check could not be performed due to a service * outage, API error, or because the result of the Config evaluation was * NOT_APPLICABLE. If the Config evaluation result was * NOT_APPLICABLE, then after 3 days, Security Hub automatically * archives the finding.

*/ inline void SetStatus(ComplianceStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The result of a standards check.

The valid values for * Status are as follows.

    • * PASSED - Standards check passed for all evaluated resources.

      *
    • WARNING - Some information is missing or this check * is not supported for your configuration.

    • FAILED * - Standards check failed for at least one evaluated resource.

    • * NOT_AVAILABLE - Check could not be performed due to a service * outage, API error, or because the result of the Config evaluation was * NOT_APPLICABLE. If the Config evaluation result was * NOT_APPLICABLE, then after 3 days, Security Hub automatically * archives the finding.

*/ inline Compliance& WithStatus(const ComplianceStatus& value) { SetStatus(value); return *this;} /** *

The result of a standards check.

The valid values for * Status are as follows.

    • * PASSED - Standards check passed for all evaluated resources.

      *
    • WARNING - Some information is missing or this check * is not supported for your configuration.

    • FAILED * - Standards check failed for at least one evaluated resource.

    • * NOT_AVAILABLE - Check could not be performed due to a service * outage, API error, or because the result of the Config evaluation was * NOT_APPLICABLE. If the Config evaluation result was * NOT_APPLICABLE, then after 3 days, Security Hub automatically * archives the finding.

*/ inline Compliance& WithStatus(ComplianceStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::Vector& GetRelatedRequirements() const{ return m_relatedRequirements; } /** *

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.

*/ inline bool RelatedRequirementsHasBeenSet() const { return m_relatedRequirementsHasBeenSet; } /** *

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.

*/ inline void SetRelatedRequirements(const Aws::Vector& value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements = value; } /** *

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.

*/ inline void SetRelatedRequirements(Aws::Vector&& value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements = std::move(value); } /** *

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.

*/ inline Compliance& WithRelatedRequirements(const Aws::Vector& value) { SetRelatedRequirements(value); return *this;} /** *

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.

*/ inline Compliance& WithRelatedRequirements(Aws::Vector&& value) { SetRelatedRequirements(std::move(value)); return *this;} /** *

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.

*/ inline Compliance& AddRelatedRequirements(const Aws::String& value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements.push_back(value); return *this; } /** *

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.

*/ inline Compliance& AddRelatedRequirements(Aws::String&& value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements.push_back(std::move(value)); return *this; } /** *

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.

*/ inline Compliance& AddRelatedRequirements(const char* value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements.push_back(value); return *this; } /** *

For findings generated from controls, a list of reasons behind the value of * Status. For the list of status reason codes and their meanings, see * Standards-related * information in the ASFF in the Security Hub User Guide.

*/ inline const Aws::Vector& GetStatusReasons() const{ return m_statusReasons; } /** *

For findings generated from controls, a list of reasons behind the value of * Status. For the list of status reason codes and their meanings, see * Standards-related * information in the ASFF in the Security Hub User Guide.

*/ inline bool StatusReasonsHasBeenSet() const { return m_statusReasonsHasBeenSet; } /** *

For findings generated from controls, a list of reasons behind the value of * Status. For the list of status reason codes and their meanings, see * Standards-related * information in the ASFF in the Security Hub User Guide.

*/ inline void SetStatusReasons(const Aws::Vector& value) { m_statusReasonsHasBeenSet = true; m_statusReasons = value; } /** *

For findings generated from controls, a list of reasons behind the value of * Status. For the list of status reason codes and their meanings, see * Standards-related * information in the ASFF in the Security Hub User Guide.

*/ inline void SetStatusReasons(Aws::Vector&& value) { m_statusReasonsHasBeenSet = true; m_statusReasons = std::move(value); } /** *

For findings generated from controls, a list of reasons behind the value of * Status. For the list of status reason codes and their meanings, see * Standards-related * information in the ASFF in the Security Hub User Guide.

*/ inline Compliance& WithStatusReasons(const Aws::Vector& value) { SetStatusReasons(value); return *this;} /** *

For findings generated from controls, a list of reasons behind the value of * Status. For the list of status reason codes and their meanings, see * Standards-related * information in the ASFF in the Security Hub User Guide.

*/ inline Compliance& WithStatusReasons(Aws::Vector&& value) { SetStatusReasons(std::move(value)); return *this;} /** *

For findings generated from controls, a list of reasons behind the value of * Status. For the list of status reason codes and their meanings, see * Standards-related * information in the ASFF in the Security Hub User Guide.

*/ inline Compliance& AddStatusReasons(const StatusReason& value) { m_statusReasonsHasBeenSet = true; m_statusReasons.push_back(value); return *this; } /** *

For findings generated from controls, a list of reasons behind the value of * Status. For the list of status reason codes and their meanings, see * Standards-related * information in the ASFF in the Security Hub User Guide.

*/ inline Compliance& AddStatusReasons(StatusReason&& value) { m_statusReasonsHasBeenSet = true; m_statusReasons.push_back(std::move(value)); return *this; } /** *

The unique identifier of a control across standards. Values for this field * typically consist of an Amazon Web Service and a number, such as APIGateway.5. *

*/ inline const Aws::String& GetSecurityControlId() const{ return m_securityControlId; } /** *

The unique identifier of a control across standards. Values for this field * typically consist of an Amazon Web Service and a number, such as APIGateway.5. *

*/ inline bool SecurityControlIdHasBeenSet() const { return m_securityControlIdHasBeenSet; } /** *

The unique identifier of a control across standards. Values for this field * typically consist of an Amazon Web Service and a number, such as APIGateway.5. *

*/ inline void SetSecurityControlId(const Aws::String& value) { m_securityControlIdHasBeenSet = true; m_securityControlId = value; } /** *

The unique identifier of a control across standards. Values for this field * typically consist of an Amazon Web Service and a number, such as APIGateway.5. *

*/ inline void SetSecurityControlId(Aws::String&& value) { m_securityControlIdHasBeenSet = true; m_securityControlId = std::move(value); } /** *

The unique identifier of a control across standards. Values for this field * typically consist of an Amazon Web Service and a number, such as APIGateway.5. *

*/ inline void SetSecurityControlId(const char* value) { m_securityControlIdHasBeenSet = true; m_securityControlId.assign(value); } /** *

The unique identifier of a control across standards. Values for this field * typically consist of an Amazon Web Service and a number, such as APIGateway.5. *

*/ inline Compliance& WithSecurityControlId(const Aws::String& value) { SetSecurityControlId(value); return *this;} /** *

The unique identifier of a control across standards. Values for this field * typically consist of an Amazon Web Service and a number, such as APIGateway.5. *

*/ inline Compliance& WithSecurityControlId(Aws::String&& value) { SetSecurityControlId(std::move(value)); return *this;} /** *

The unique identifier of a control across standards. Values for this field * typically consist of an Amazon Web Service and a number, such as APIGateway.5. *

*/ inline Compliance& WithSecurityControlId(const char* value) { SetSecurityControlId(value); return *this;} /** *

The enabled security standards in which a security control is currently * enabled.

*/ inline const Aws::Vector& GetAssociatedStandards() const{ return m_associatedStandards; } /** *

The enabled security standards in which a security control is currently * enabled.

*/ inline bool AssociatedStandardsHasBeenSet() const { return m_associatedStandardsHasBeenSet; } /** *

The enabled security standards in which a security control is currently * enabled.

*/ inline void SetAssociatedStandards(const Aws::Vector& value) { m_associatedStandardsHasBeenSet = true; m_associatedStandards = value; } /** *

The enabled security standards in which a security control is currently * enabled.

*/ inline void SetAssociatedStandards(Aws::Vector&& value) { m_associatedStandardsHasBeenSet = true; m_associatedStandards = std::move(value); } /** *

The enabled security standards in which a security control is currently * enabled.

*/ inline Compliance& WithAssociatedStandards(const Aws::Vector& value) { SetAssociatedStandards(value); return *this;} /** *

The enabled security standards in which a security control is currently * enabled.

*/ inline Compliance& WithAssociatedStandards(Aws::Vector&& value) { SetAssociatedStandards(std::move(value)); return *this;} /** *

The enabled security standards in which a security control is currently * enabled.

*/ inline Compliance& AddAssociatedStandards(const AssociatedStandard& value) { m_associatedStandardsHasBeenSet = true; m_associatedStandards.push_back(value); return *this; } /** *

The enabled security standards in which a security control is currently * enabled.

*/ inline Compliance& AddAssociatedStandards(AssociatedStandard&& value) { m_associatedStandardsHasBeenSet = true; m_associatedStandards.push_back(std::move(value)); return *this; } private: ComplianceStatus m_status; bool m_statusHasBeenSet = false; Aws::Vector m_relatedRequirements; bool m_relatedRequirementsHasBeenSet = false; Aws::Vector m_statusReasons; bool m_statusReasonsHasBeenSet = false; Aws::String m_securityControlId; bool m_securityControlIdHasBeenSet = false; Aws::Vector m_associatedStandards; bool m_associatedStandardsHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws