/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The stateless or stateful rules definitions for use in a single rule group.
* Each rule group requires a single RulesSource
. You can use an
* instance of this for either stateless rules or stateful rules. See
* Also:
AWS
* API Reference
Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules. Suricata is an open-source network IPS that * includes a standard rule-based language for network traffic inspection.
*These rules contain the inspection criteria and the action to take for * traffic that matches the criteria, so this type of rule group doesn't have a * separate action setting.
*/ inline const Aws::String& GetRulesString() const{ return m_rulesString; } /** *Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules. Suricata is an open-source network IPS that * includes a standard rule-based language for network traffic inspection.
*These rules contain the inspection criteria and the action to take for * traffic that matches the criteria, so this type of rule group doesn't have a * separate action setting.
*/ inline bool RulesStringHasBeenSet() const { return m_rulesStringHasBeenSet; } /** *Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules. Suricata is an open-source network IPS that * includes a standard rule-based language for network traffic inspection.
*These rules contain the inspection criteria and the action to take for * traffic that matches the criteria, so this type of rule group doesn't have a * separate action setting.
*/ 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. Suricata is an open-source network IPS that * includes a standard rule-based language for network traffic inspection.
*These rules contain the inspection criteria and the action to take for * traffic that matches the criteria, so this type of rule group doesn't have a * separate action setting.
*/ 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. Suricata is an open-source network IPS that * includes a standard rule-based language for network traffic inspection.
*These rules contain the inspection criteria and the action to take for * traffic that matches the criteria, so this type of rule group doesn't have a * separate action setting.
*/ 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. Suricata is an open-source network IPS that * includes a standard rule-based language for network traffic inspection.
*These rules contain the inspection criteria and the action to take for * traffic that matches the criteria, so this type of rule group doesn't have a * separate action setting.
*/ inline RulesSource& WithRulesString(const Aws::String& value) { SetRulesString(value); return *this;} /** *Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules. Suricata is an open-source network IPS that * includes a standard rule-based language for network traffic inspection.
*These rules contain the inspection criteria and the action to take for * traffic that matches the criteria, so this type of rule group doesn't have a * separate action setting.
*/ inline RulesSource& WithRulesString(Aws::String&& value) { SetRulesString(std::move(value)); return *this;} /** *Stateful inspection criteria, provided in Suricata compatible intrusion * prevention system (IPS) rules. Suricata is an open-source network IPS that * includes a standard rule-based language for network traffic inspection.
*These rules contain the inspection criteria and the action to take for * traffic that matches the criteria, so this type of rule group doesn't have a * separate action setting.
*/ inline RulesSource& WithRulesString(const char* value) { SetRulesString(value); return *this;} /** *Stateful inspection criteria for a domain list rule group.
*/ inline const RulesSourceList& GetRulesSourceList() const{ return m_rulesSourceList; } /** *Stateful inspection criteria for a domain list rule group.
*/ inline bool RulesSourceListHasBeenSet() const { return m_rulesSourceListHasBeenSet; } /** *Stateful inspection criteria for a domain list rule group.
*/ inline void SetRulesSourceList(const RulesSourceList& value) { m_rulesSourceListHasBeenSet = true; m_rulesSourceList = value; } /** *Stateful inspection criteria for a domain list rule group.
*/ inline void SetRulesSourceList(RulesSourceList&& value) { m_rulesSourceListHasBeenSet = true; m_rulesSourceList = std::move(value); } /** *Stateful inspection criteria for a domain list rule group.
*/ inline RulesSource& WithRulesSourceList(const RulesSourceList& value) { SetRulesSourceList(value); return *this;} /** *Stateful inspection criteria for a domain list rule group.
*/ inline RulesSource& WithRulesSourceList(RulesSourceList&& value) { SetRulesSourceList(std::move(value)); return *this;} /** *An array of individual stateful rules inspection criteria to be used together
* in a stateful rule group. Use this option to specify simple Suricata rules with
* protocol, source and destination, ports, direction, and rule options. For
* information about the Suricata Rules
format, see Rules Format.
An array of individual stateful rules inspection criteria to be used together
* in a stateful rule group. Use this option to specify simple Suricata rules with
* protocol, source and destination, ports, direction, and rule options. For
* information about the Suricata Rules
format, see Rules Format.
An array of individual stateful rules inspection criteria to be used together
* in a stateful rule group. Use this option to specify simple Suricata rules with
* protocol, source and destination, ports, direction, and rule options. For
* information about the Suricata Rules
format, see Rules Format.
An array of individual stateful rules inspection criteria to be used together
* in a stateful rule group. Use this option to specify simple Suricata rules with
* protocol, source and destination, ports, direction, and rule options. For
* information about the Suricata Rules
format, see Rules Format.
An array of individual stateful rules inspection criteria to be used together
* in a stateful rule group. Use this option to specify simple Suricata rules with
* protocol, source and destination, ports, direction, and rule options. For
* information about the Suricata Rules
format, see Rules Format.
An array of individual stateful rules inspection criteria to be used together
* in a stateful rule group. Use this option to specify simple Suricata rules with
* protocol, source and destination, ports, direction, and rule options. For
* information about the Suricata Rules
format, see Rules Format.
An array of individual stateful rules inspection criteria to be used together
* in a stateful rule group. Use this option to specify simple Suricata rules with
* protocol, source and destination, ports, direction, and rule options. For
* information about the Suricata Rules
format, see Rules Format.
An array of individual stateful rules inspection criteria to be used together
* in a stateful rule group. Use this option to specify simple Suricata rules with
* protocol, source and destination, ports, direction, and rule options. For
* information about the Suricata Rules
format, see Rules Format.
Stateless inspection criteria to be used in a stateless rule group.
*/ inline const StatelessRulesAndCustomActions& GetStatelessRulesAndCustomActions() const{ return m_statelessRulesAndCustomActions; } /** *Stateless inspection criteria to be used in a stateless rule group.
*/ inline bool StatelessRulesAndCustomActionsHasBeenSet() const { return m_statelessRulesAndCustomActionsHasBeenSet; } /** *Stateless inspection criteria to be used in a stateless rule group.
*/ inline void SetStatelessRulesAndCustomActions(const StatelessRulesAndCustomActions& value) { m_statelessRulesAndCustomActionsHasBeenSet = true; m_statelessRulesAndCustomActions = value; } /** *Stateless inspection criteria to be used in a stateless rule group.
*/ inline void SetStatelessRulesAndCustomActions(StatelessRulesAndCustomActions&& value) { m_statelessRulesAndCustomActionsHasBeenSet = true; m_statelessRulesAndCustomActions = std::move(value); } /** *Stateless inspection criteria to be used in a stateless rule group.
*/ inline RulesSource& WithStatelessRulesAndCustomActions(const StatelessRulesAndCustomActions& value) { SetStatelessRulesAndCustomActions(value); return *this;} /** *Stateless inspection criteria to be used in a stateless rule group.
*/ inline RulesSource& WithStatelessRulesAndCustomActions(StatelessRulesAndCustomActions&& value) { SetStatelessRulesAndCustomActions(std::move(value)); return *this;} private: Aws::String m_rulesString; bool m_rulesStringHasBeenSet = false; RulesSourceList m_rulesSourceList; bool m_rulesSourceListHasBeenSet = false; Aws::Vector