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

The inspection criteria for a stateful rule.

See Also:

AWS * API Reference

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

The destination IP address or address range to inspect for, in CIDR notation. * To match with any address, specify ANY.

*/ inline const Aws::String& GetDestination() const{ return m_destination; } /** *

The destination IP address or address range to inspect for, in CIDR notation. * To match with any address, specify ANY.

*/ inline bool DestinationHasBeenSet() const { return m_destinationHasBeenSet; } /** *

The destination IP address or address range to inspect for, in CIDR notation. * To match with any address, specify ANY.

*/ inline void SetDestination(const Aws::String& value) { m_destinationHasBeenSet = true; m_destination = value; } /** *

The destination IP address or address range to inspect for, in CIDR notation. * To match with any address, specify ANY.

*/ inline void SetDestination(Aws::String&& value) { m_destinationHasBeenSet = true; m_destination = std::move(value); } /** *

The destination IP address or address range to inspect for, in CIDR notation. * To match with any address, specify ANY.

*/ inline void SetDestination(const char* value) { m_destinationHasBeenSet = true; m_destination.assign(value); } /** *

The destination IP address or address range to inspect for, in CIDR notation. * To match with any address, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithDestination(const Aws::String& value) { SetDestination(value); return *this;} /** *

The destination IP address or address range to inspect for, in CIDR notation. * To match with any address, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithDestination(Aws::String&& value) { SetDestination(std::move(value)); return *this;} /** *

The destination IP address or address range to inspect for, in CIDR notation. * To match with any address, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithDestination(const char* value) { SetDestination(value); return *this;} /** *

The destination port to inspect for. You can specify an individual port, such * as 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline const Aws::String& GetDestinationPort() const{ return m_destinationPort; } /** *

The destination port to inspect for. You can specify an individual port, such * as 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline bool DestinationPortHasBeenSet() const { return m_destinationPortHasBeenSet; } /** *

The destination port to inspect for. You can specify an individual port, such * as 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline void SetDestinationPort(const Aws::String& value) { m_destinationPortHasBeenSet = true; m_destinationPort = value; } /** *

The destination port to inspect for. You can specify an individual port, such * as 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline void SetDestinationPort(Aws::String&& value) { m_destinationPortHasBeenSet = true; m_destinationPort = std::move(value); } /** *

The destination port to inspect for. You can specify an individual port, such * as 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline void SetDestinationPort(const char* value) { m_destinationPortHasBeenSet = true; m_destinationPort.assign(value); } /** *

The destination port to inspect for. You can specify an individual port, such * as 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithDestinationPort(const Aws::String& value) { SetDestinationPort(value); return *this;} /** *

The destination port to inspect for. You can specify an individual port, such * as 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithDestinationPort(Aws::String&& value) { SetDestinationPort(std::move(value)); return *this;} /** *

The destination port to inspect for. You can specify an individual port, such * as 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithDestinationPort(const char* value) { SetDestinationPort(value); return *this;} /** *

The direction of traffic flow to inspect. If set to ANY, the * inspection matches bidirectional traffic, both from the source to the * destination and from the destination to the source. If set to * FORWARD, the inspection only matches traffic going from the source * to the destination.

*/ inline const Aws::String& GetDirection() const{ return m_direction; } /** *

The direction of traffic flow to inspect. If set to ANY, the * inspection matches bidirectional traffic, both from the source to the * destination and from the destination to the source. If set to * FORWARD, the inspection only matches traffic going from the source * to the destination.

*/ inline bool DirectionHasBeenSet() const { return m_directionHasBeenSet; } /** *

The direction of traffic flow to inspect. If set to ANY, the * inspection matches bidirectional traffic, both from the source to the * destination and from the destination to the source. If set to * FORWARD, the inspection only matches traffic going from the source * to the destination.

*/ inline void SetDirection(const Aws::String& value) { m_directionHasBeenSet = true; m_direction = value; } /** *

The direction of traffic flow to inspect. If set to ANY, the * inspection matches bidirectional traffic, both from the source to the * destination and from the destination to the source. If set to * FORWARD, the inspection only matches traffic going from the source * to the destination.

*/ inline void SetDirection(Aws::String&& value) { m_directionHasBeenSet = true; m_direction = std::move(value); } /** *

The direction of traffic flow to inspect. If set to ANY, the * inspection matches bidirectional traffic, both from the source to the * destination and from the destination to the source. If set to * FORWARD, the inspection only matches traffic going from the source * to the destination.

*/ inline void SetDirection(const char* value) { m_directionHasBeenSet = true; m_direction.assign(value); } /** *

The direction of traffic flow to inspect. If set to ANY, the * inspection matches bidirectional traffic, both from the source to the * destination and from the destination to the source. If set to * FORWARD, the inspection only matches traffic going from the source * to the destination.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithDirection(const Aws::String& value) { SetDirection(value); return *this;} /** *

The direction of traffic flow to inspect. If set to ANY, the * inspection matches bidirectional traffic, both from the source to the * destination and from the destination to the source. If set to * FORWARD, the inspection only matches traffic going from the source * to the destination.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithDirection(Aws::String&& value) { SetDirection(std::move(value)); return *this;} /** *

The direction of traffic flow to inspect. If set to ANY, the * inspection matches bidirectional traffic, both from the source to the * destination and from the destination to the source. If set to * FORWARD, the inspection only matches traffic going from the source * to the destination.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithDirection(const char* value) { SetDirection(value); return *this;} /** *

The protocol to inspect for. To inspector for all protocols, use * IP.

*/ inline const Aws::String& GetProtocol() const{ return m_protocol; } /** *

The protocol to inspect for. To inspector for all protocols, use * IP.

*/ inline bool ProtocolHasBeenSet() const { return m_protocolHasBeenSet; } /** *

The protocol to inspect for. To inspector for all protocols, use * IP.

*/ inline void SetProtocol(const Aws::String& value) { m_protocolHasBeenSet = true; m_protocol = value; } /** *

The protocol to inspect for. To inspector for all protocols, use * IP.

*/ inline void SetProtocol(Aws::String&& value) { m_protocolHasBeenSet = true; m_protocol = std::move(value); } /** *

The protocol to inspect for. To inspector for all protocols, use * IP.

*/ inline void SetProtocol(const char* value) { m_protocolHasBeenSet = true; m_protocol.assign(value); } /** *

The protocol to inspect for. To inspector for all protocols, use * IP.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithProtocol(const Aws::String& value) { SetProtocol(value); return *this;} /** *

The protocol to inspect for. To inspector for all protocols, use * IP.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithProtocol(Aws::String&& value) { SetProtocol(std::move(value)); return *this;} /** *

The protocol to inspect for. To inspector for all protocols, use * IP.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithProtocol(const char* value) { SetProtocol(value); return *this;} /** *

The source IP address or address range to inspect for, in CIDR notation. To * match with any address, specify ANY.

*/ inline const Aws::String& GetSource() const{ return m_source; } /** *

The source IP address or address range to inspect for, in CIDR notation. To * match with any address, specify ANY.

*/ inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; } /** *

The source IP address or address range to inspect for, in CIDR notation. To * match with any address, specify ANY.

*/ inline void SetSource(const Aws::String& value) { m_sourceHasBeenSet = true; m_source = value; } /** *

The source IP address or address range to inspect for, in CIDR notation. To * match with any address, specify ANY.

*/ inline void SetSource(Aws::String&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); } /** *

The source IP address or address range to inspect for, in CIDR notation. To * match with any address, specify ANY.

*/ inline void SetSource(const char* value) { m_sourceHasBeenSet = true; m_source.assign(value); } /** *

The source IP address or address range to inspect for, in CIDR notation. To * match with any address, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithSource(const Aws::String& value) { SetSource(value); return *this;} /** *

The source IP address or address range to inspect for, in CIDR notation. To * match with any address, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithSource(Aws::String&& value) { SetSource(std::move(value)); return *this;} /** *

The source IP address or address range to inspect for, in CIDR notation. To * match with any address, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithSource(const char* value) { SetSource(value); return *this;} /** *

The source port to inspect for. You can specify an individual port, such as * 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline const Aws::String& GetSourcePort() const{ return m_sourcePort; } /** *

The source port to inspect for. You can specify an individual port, such as * 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline bool SourcePortHasBeenSet() const { return m_sourcePortHasBeenSet; } /** *

The source port to inspect for. You can specify an individual port, such as * 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline void SetSourcePort(const Aws::String& value) { m_sourcePortHasBeenSet = true; m_sourcePort = value; } /** *

The source port to inspect for. You can specify an individual port, such as * 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline void SetSourcePort(Aws::String&& value) { m_sourcePortHasBeenSet = true; m_sourcePort = std::move(value); } /** *

The source port to inspect for. You can specify an individual port, such as * 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline void SetSourcePort(const char* value) { m_sourcePortHasBeenSet = true; m_sourcePort.assign(value); } /** *

The source port to inspect for. You can specify an individual port, such as * 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithSourcePort(const Aws::String& value) { SetSourcePort(value); return *this;} /** *

The source port to inspect for. You can specify an individual port, such as * 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithSourcePort(Aws::String&& value) { SetSourcePort(std::move(value)); return *this;} /** *

The source port to inspect for. You can specify an individual port, such as * 1994. You also can specify a port range, such as * 1990:1994. To match with any port, specify ANY.

*/ inline RuleGroupSourceStatefulRulesHeaderDetails& WithSourcePort(const char* value) { SetSourcePort(value); return *this;} private: Aws::String m_destination; bool m_destinationHasBeenSet = false; Aws::String m_destinationPort; bool m_destinationPortHasBeenSet = false; Aws::String m_direction; bool m_directionHasBeenSet = false; Aws::String m_protocol; bool m_protocolHasBeenSet = false; Aws::String m_source; bool m_sourceHasBeenSet = false; Aws::String m_sourcePort; bool m_sourcePortHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws