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

The rules and actions for the rule group.

See Also:

AWS * API Reference

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

Stateful inspection criteria for a domain list rule group. A domain list rule * group determines access by specific protocols to specific domains.

*/ inline const RuleGroupSourceListDetails& GetRulesSourceList() const{ return m_rulesSourceList; } /** *

Stateful inspection criteria for a domain list rule group. A domain list rule * group determines access by specific protocols to specific domains.

*/ inline bool RulesSourceListHasBeenSet() const { return m_rulesSourceListHasBeenSet; } /** *

Stateful inspection criteria for a domain list rule group. A domain list rule * group determines access by specific protocols to specific domains.

*/ inline void SetRulesSourceList(const RuleGroupSourceListDetails& value) { m_rulesSourceListHasBeenSet = true; m_rulesSourceList = value; } /** *

Stateful inspection criteria for a domain list rule group. A domain list rule * group determines access by specific protocols to specific domains.

*/ inline void SetRulesSourceList(RuleGroupSourceListDetails&& value) { m_rulesSourceListHasBeenSet = true; m_rulesSourceList = std::move(value); } /** *

Stateful inspection criteria for a domain list rule group. A domain list rule * group determines access by specific protocols to specific domains.

*/ inline RuleGroupSource& WithRulesSourceList(const RuleGroupSourceListDetails& value) { SetRulesSourceList(value); return *this;} /** *

Stateful inspection criteria for a domain list rule group. A domain list rule * group determines access by specific protocols to specific domains.

*/ inline RuleGroupSource& WithRulesSourceList(RuleGroupSourceListDetails&& value) { SetRulesSourceList(std::move(value)); return *this;} /** *

Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules.

*/ inline const Aws::String& GetRulesString() const{ return m_rulesString; } /** *

Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules.

*/ inline bool RulesStringHasBeenSet() const { return m_rulesStringHasBeenSet; } /** *

Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules.

*/ inline void SetRulesString(const Aws::String& value) { m_rulesStringHasBeenSet = true; m_rulesString = value; } /** *

Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules.

*/ inline void SetRulesString(Aws::String&& value) { m_rulesStringHasBeenSet = true; m_rulesString = std::move(value); } /** *

Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules.

*/ inline void SetRulesString(const char* value) { m_rulesStringHasBeenSet = true; m_rulesString.assign(value); } /** *

Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules.

*/ inline RuleGroupSource& WithRulesString(const Aws::String& value) { SetRulesString(value); return *this;} /** *

Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules.

*/ inline RuleGroupSource& WithRulesString(Aws::String&& value) { SetRulesString(std::move(value)); return *this;} /** *

Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules.

*/ inline RuleGroupSource& WithRulesString(const char* value) { SetRulesString(value); return *this;} /** *

Suricata rule specifications.

*/ inline const Aws::Vector& GetStatefulRules() const{ return m_statefulRules; } /** *

Suricata rule specifications.

*/ inline bool StatefulRulesHasBeenSet() const { return m_statefulRulesHasBeenSet; } /** *

Suricata rule specifications.

*/ inline void SetStatefulRules(const Aws::Vector& value) { m_statefulRulesHasBeenSet = true; m_statefulRules = value; } /** *

Suricata rule specifications.

*/ inline void SetStatefulRules(Aws::Vector&& value) { m_statefulRulesHasBeenSet = true; m_statefulRules = std::move(value); } /** *

Suricata rule specifications.

*/ inline RuleGroupSource& WithStatefulRules(const Aws::Vector& value) { SetStatefulRules(value); return *this;} /** *

Suricata rule specifications.

*/ inline RuleGroupSource& WithStatefulRules(Aws::Vector&& value) { SetStatefulRules(std::move(value)); return *this;} /** *

Suricata rule specifications.

*/ inline RuleGroupSource& AddStatefulRules(const RuleGroupSourceStatefulRulesDetails& value) { m_statefulRulesHasBeenSet = true; m_statefulRules.push_back(value); return *this; } /** *

Suricata rule specifications.

*/ inline RuleGroupSource& AddStatefulRules(RuleGroupSourceStatefulRulesDetails&& value) { m_statefulRulesHasBeenSet = true; m_statefulRules.push_back(std::move(value)); return *this; } /** *

The stateless rules and custom actions used by a stateless rule group.

*/ inline const RuleGroupSourceStatelessRulesAndCustomActionsDetails& GetStatelessRulesAndCustomActions() const{ return m_statelessRulesAndCustomActions; } /** *

The stateless rules and custom actions used by a stateless rule group.

*/ inline bool StatelessRulesAndCustomActionsHasBeenSet() const { return m_statelessRulesAndCustomActionsHasBeenSet; } /** *

The stateless rules and custom actions used by a stateless rule group.

*/ inline void SetStatelessRulesAndCustomActions(const RuleGroupSourceStatelessRulesAndCustomActionsDetails& value) { m_statelessRulesAndCustomActionsHasBeenSet = true; m_statelessRulesAndCustomActions = value; } /** *

The stateless rules and custom actions used by a stateless rule group.

*/ inline void SetStatelessRulesAndCustomActions(RuleGroupSourceStatelessRulesAndCustomActionsDetails&& value) { m_statelessRulesAndCustomActionsHasBeenSet = true; m_statelessRulesAndCustomActions = std::move(value); } /** *

The stateless rules and custom actions used by a stateless rule group.

*/ inline RuleGroupSource& WithStatelessRulesAndCustomActions(const RuleGroupSourceStatelessRulesAndCustomActionsDetails& value) { SetStatelessRulesAndCustomActions(value); return *this;} /** *

The stateless rules and custom actions used by a stateless rule group.

*/ inline RuleGroupSource& WithStatelessRulesAndCustomActions(RuleGroupSourceStatelessRulesAndCustomActionsDetails&& value) { SetStatelessRulesAndCustomActions(std::move(value)); return *this;} private: RuleGroupSourceListDetails m_rulesSourceList; bool m_rulesSourceListHasBeenSet = false; Aws::String m_rulesString; bool m_rulesStringHasBeenSet = false; Aws::Vector m_statefulRules; bool m_statefulRulesHasBeenSet = false; RuleGroupSourceStatelessRulesAndCustomActionsDetails m_statelessRulesAndCustomActions; bool m_statelessRulesAndCustomActionsHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws