/** * 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 { /** *

Details for an individual security standard control.

See Also:

* AWS * API Reference

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

The ARN of the security standard control.

*/ inline const Aws::String& GetStandardsControlArn() const{ return m_standardsControlArn; } /** *

The ARN of the security standard control.

*/ inline bool StandardsControlArnHasBeenSet() const { return m_standardsControlArnHasBeenSet; } /** *

The ARN of the security standard control.

*/ inline void SetStandardsControlArn(const Aws::String& value) { m_standardsControlArnHasBeenSet = true; m_standardsControlArn = value; } /** *

The ARN of the security standard control.

*/ inline void SetStandardsControlArn(Aws::String&& value) { m_standardsControlArnHasBeenSet = true; m_standardsControlArn = std::move(value); } /** *

The ARN of the security standard control.

*/ inline void SetStandardsControlArn(const char* value) { m_standardsControlArnHasBeenSet = true; m_standardsControlArn.assign(value); } /** *

The ARN of the security standard control.

*/ inline StandardsControl& WithStandardsControlArn(const Aws::String& value) { SetStandardsControlArn(value); return *this;} /** *

The ARN of the security standard control.

*/ inline StandardsControl& WithStandardsControlArn(Aws::String&& value) { SetStandardsControlArn(std::move(value)); return *this;} /** *

The ARN of the security standard control.

*/ inline StandardsControl& WithStandardsControlArn(const char* value) { SetStandardsControlArn(value); return *this;} /** *

The current status of the security standard control. Indicates whether the * control is enabled or disabled. Security Hub does not check against disabled * controls.

*/ inline const ControlStatus& GetControlStatus() const{ return m_controlStatus; } /** *

The current status of the security standard control. Indicates whether the * control is enabled or disabled. Security Hub does not check against disabled * controls.

*/ inline bool ControlStatusHasBeenSet() const { return m_controlStatusHasBeenSet; } /** *

The current status of the security standard control. Indicates whether the * control is enabled or disabled. Security Hub does not check against disabled * controls.

*/ inline void SetControlStatus(const ControlStatus& value) { m_controlStatusHasBeenSet = true; m_controlStatus = value; } /** *

The current status of the security standard control. Indicates whether the * control is enabled or disabled. Security Hub does not check against disabled * controls.

*/ inline void SetControlStatus(ControlStatus&& value) { m_controlStatusHasBeenSet = true; m_controlStatus = std::move(value); } /** *

The current status of the security standard control. Indicates whether the * control is enabled or disabled. Security Hub does not check against disabled * controls.

*/ inline StandardsControl& WithControlStatus(const ControlStatus& value) { SetControlStatus(value); return *this;} /** *

The current status of the security standard control. Indicates whether the * control is enabled or disabled. Security Hub does not check against disabled * controls.

*/ inline StandardsControl& WithControlStatus(ControlStatus&& value) { SetControlStatus(std::move(value)); return *this;} /** *

The reason provided for the most recent change in status for the control.

*/ inline const Aws::String& GetDisabledReason() const{ return m_disabledReason; } /** *

The reason provided for the most recent change in status for the control.

*/ inline bool DisabledReasonHasBeenSet() const { return m_disabledReasonHasBeenSet; } /** *

The reason provided for the most recent change in status for the control.

*/ inline void SetDisabledReason(const Aws::String& value) { m_disabledReasonHasBeenSet = true; m_disabledReason = value; } /** *

The reason provided for the most recent change in status for the control.

*/ inline void SetDisabledReason(Aws::String&& value) { m_disabledReasonHasBeenSet = true; m_disabledReason = std::move(value); } /** *

The reason provided for the most recent change in status for the control.

*/ inline void SetDisabledReason(const char* value) { m_disabledReasonHasBeenSet = true; m_disabledReason.assign(value); } /** *

The reason provided for the most recent change in status for the control.

*/ inline StandardsControl& WithDisabledReason(const Aws::String& value) { SetDisabledReason(value); return *this;} /** *

The reason provided for the most recent change in status for the control.

*/ inline StandardsControl& WithDisabledReason(Aws::String&& value) { SetDisabledReason(std::move(value)); return *this;} /** *

The reason provided for the most recent change in status for the control.

*/ inline StandardsControl& WithDisabledReason(const char* value) { SetDisabledReason(value); return *this;} /** *

The date and time that the status of the security standard control was most * recently updated.

*/ inline const Aws::Utils::DateTime& GetControlStatusUpdatedAt() const{ return m_controlStatusUpdatedAt; } /** *

The date and time that the status of the security standard control was most * recently updated.

*/ inline bool ControlStatusUpdatedAtHasBeenSet() const { return m_controlStatusUpdatedAtHasBeenSet; } /** *

The date and time that the status of the security standard control was most * recently updated.

*/ inline void SetControlStatusUpdatedAt(const Aws::Utils::DateTime& value) { m_controlStatusUpdatedAtHasBeenSet = true; m_controlStatusUpdatedAt = value; } /** *

The date and time that the status of the security standard control was most * recently updated.

*/ inline void SetControlStatusUpdatedAt(Aws::Utils::DateTime&& value) { m_controlStatusUpdatedAtHasBeenSet = true; m_controlStatusUpdatedAt = std::move(value); } /** *

The date and time that the status of the security standard control was most * recently updated.

*/ inline StandardsControl& WithControlStatusUpdatedAt(const Aws::Utils::DateTime& value) { SetControlStatusUpdatedAt(value); return *this;} /** *

The date and time that the status of the security standard control was most * recently updated.

*/ inline StandardsControl& WithControlStatusUpdatedAt(Aws::Utils::DateTime&& value) { SetControlStatusUpdatedAt(std::move(value)); return *this;} /** *

The identifier of the security standard control.

*/ inline const Aws::String& GetControlId() const{ return m_controlId; } /** *

The identifier of the security standard control.

*/ inline bool ControlIdHasBeenSet() const { return m_controlIdHasBeenSet; } /** *

The identifier of the security standard control.

*/ inline void SetControlId(const Aws::String& value) { m_controlIdHasBeenSet = true; m_controlId = value; } /** *

The identifier of the security standard control.

*/ inline void SetControlId(Aws::String&& value) { m_controlIdHasBeenSet = true; m_controlId = std::move(value); } /** *

The identifier of the security standard control.

*/ inline void SetControlId(const char* value) { m_controlIdHasBeenSet = true; m_controlId.assign(value); } /** *

The identifier of the security standard control.

*/ inline StandardsControl& WithControlId(const Aws::String& value) { SetControlId(value); return *this;} /** *

The identifier of the security standard control.

*/ inline StandardsControl& WithControlId(Aws::String&& value) { SetControlId(std::move(value)); return *this;} /** *

The identifier of the security standard control.

*/ inline StandardsControl& WithControlId(const char* value) { SetControlId(value); return *this;} /** *

The title of the security standard control.

*/ inline const Aws::String& GetTitle() const{ return m_title; } /** *

The title of the security standard control.

*/ inline bool TitleHasBeenSet() const { return m_titleHasBeenSet; } /** *

The title of the security standard control.

*/ inline void SetTitle(const Aws::String& value) { m_titleHasBeenSet = true; m_title = value; } /** *

The title of the security standard control.

*/ inline void SetTitle(Aws::String&& value) { m_titleHasBeenSet = true; m_title = std::move(value); } /** *

The title of the security standard control.

*/ inline void SetTitle(const char* value) { m_titleHasBeenSet = true; m_title.assign(value); } /** *

The title of the security standard control.

*/ inline StandardsControl& WithTitle(const Aws::String& value) { SetTitle(value); return *this;} /** *

The title of the security standard control.

*/ inline StandardsControl& WithTitle(Aws::String&& value) { SetTitle(std::move(value)); return *this;} /** *

The title of the security standard control.

*/ inline StandardsControl& WithTitle(const char* value) { SetTitle(value); return *this;} /** *

The longer description of the security standard control. Provides information * about what the control is checking for.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The longer description of the security standard control. Provides information * about what the control is checking for.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The longer description of the security standard control. Provides information * about what the control is checking for.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The longer description of the security standard control. Provides information * about what the control is checking for.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The longer description of the security standard control. Provides information * about what the control is checking for.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The longer description of the security standard control. Provides information * about what the control is checking for.

*/ inline StandardsControl& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The longer description of the security standard control. Provides information * about what the control is checking for.

*/ inline StandardsControl& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The longer description of the security standard control. Provides information * about what the control is checking for.

*/ inline StandardsControl& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

A link to remediation information for the control in the Security Hub user * documentation.

*/ inline const Aws::String& GetRemediationUrl() const{ return m_remediationUrl; } /** *

A link to remediation information for the control in the Security Hub user * documentation.

*/ inline bool RemediationUrlHasBeenSet() const { return m_remediationUrlHasBeenSet; } /** *

A link to remediation information for the control in the Security Hub user * documentation.

*/ inline void SetRemediationUrl(const Aws::String& value) { m_remediationUrlHasBeenSet = true; m_remediationUrl = value; } /** *

A link to remediation information for the control in the Security Hub user * documentation.

*/ inline void SetRemediationUrl(Aws::String&& value) { m_remediationUrlHasBeenSet = true; m_remediationUrl = std::move(value); } /** *

A link to remediation information for the control in the Security Hub user * documentation.

*/ inline void SetRemediationUrl(const char* value) { m_remediationUrlHasBeenSet = true; m_remediationUrl.assign(value); } /** *

A link to remediation information for the control in the Security Hub user * documentation.

*/ inline StandardsControl& WithRemediationUrl(const Aws::String& value) { SetRemediationUrl(value); return *this;} /** *

A link to remediation information for the control in the Security Hub user * documentation.

*/ inline StandardsControl& WithRemediationUrl(Aws::String&& value) { SetRemediationUrl(std::move(value)); return *this;} /** *

A link to remediation information for the control in the Security Hub user * documentation.

*/ inline StandardsControl& WithRemediationUrl(const char* value) { SetRemediationUrl(value); return *this;} /** *

The severity of findings generated from this security standard control.

*

The finding severity is based on an assessment of how easy it would be to * compromise Amazon Web Services resources if the issue is detected.

*/ inline const SeverityRating& GetSeverityRating() const{ return m_severityRating; } /** *

The severity of findings generated from this security standard control.

*

The finding severity is based on an assessment of how easy it would be to * compromise Amazon Web Services resources if the issue is detected.

*/ inline bool SeverityRatingHasBeenSet() const { return m_severityRatingHasBeenSet; } /** *

The severity of findings generated from this security standard control.

*

The finding severity is based on an assessment of how easy it would be to * compromise Amazon Web Services resources if the issue is detected.

*/ inline void SetSeverityRating(const SeverityRating& value) { m_severityRatingHasBeenSet = true; m_severityRating = value; } /** *

The severity of findings generated from this security standard control.

*

The finding severity is based on an assessment of how easy it would be to * compromise Amazon Web Services resources if the issue is detected.

*/ inline void SetSeverityRating(SeverityRating&& value) { m_severityRatingHasBeenSet = true; m_severityRating = std::move(value); } /** *

The severity of findings generated from this security standard control.

*

The finding severity is based on an assessment of how easy it would be to * compromise Amazon Web Services resources if the issue is detected.

*/ inline StandardsControl& WithSeverityRating(const SeverityRating& value) { SetSeverityRating(value); return *this;} /** *

The severity of findings generated from this security standard control.

*

The finding severity is based on an assessment of how easy it would be to * compromise Amazon Web Services resources if the issue is detected.

*/ inline StandardsControl& WithSeverityRating(SeverityRating&& value) { SetSeverityRating(std::move(value)); return *this;} /** *

The list of requirements that are related to this control.

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

The list of requirements that are related to this control.

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

The list of requirements that are related to this control.

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

The list of requirements that are related to this control.

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

The list of requirements that are related to this control.

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

The list of requirements that are related to this control.

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

The list of requirements that are related to this control.

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

The list of requirements that are related to this control.

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

The list of requirements that are related to this control.

*/ inline StandardsControl& AddRelatedRequirements(const char* value) { m_relatedRequirementsHasBeenSet = true; m_relatedRequirements.push_back(value); return *this; } private: Aws::String m_standardsControlArn; bool m_standardsControlArnHasBeenSet = false; ControlStatus m_controlStatus; bool m_controlStatusHasBeenSet = false; Aws::String m_disabledReason; bool m_disabledReasonHasBeenSet = false; Aws::Utils::DateTime m_controlStatusUpdatedAt; bool m_controlStatusUpdatedAtHasBeenSet = false; Aws::String m_controlId; bool m_controlIdHasBeenSet = false; Aws::String m_title; bool m_titleHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_remediationUrl; bool m_remediationUrlHasBeenSet = false; SeverityRating m_severityRating; bool m_severityRatingHasBeenSet = false; Aws::Vector m_relatedRequirements; bool m_relatedRequirementsHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws