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

Stateful inspection criteria for a domain list rule group.

See * Also:

AWS * API Reference

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

Indicates whether to allow or deny access to the domains listed in * Targets.

*/ inline const Aws::String& GetGeneratedRulesType() const{ return m_generatedRulesType; } /** *

Indicates whether to allow or deny access to the domains listed in * Targets.

*/ inline bool GeneratedRulesTypeHasBeenSet() const { return m_generatedRulesTypeHasBeenSet; } /** *

Indicates whether to allow or deny access to the domains listed in * Targets.

*/ inline void SetGeneratedRulesType(const Aws::String& value) { m_generatedRulesTypeHasBeenSet = true; m_generatedRulesType = value; } /** *

Indicates whether to allow or deny access to the domains listed in * Targets.

*/ inline void SetGeneratedRulesType(Aws::String&& value) { m_generatedRulesTypeHasBeenSet = true; m_generatedRulesType = std::move(value); } /** *

Indicates whether to allow or deny access to the domains listed in * Targets.

*/ inline void SetGeneratedRulesType(const char* value) { m_generatedRulesTypeHasBeenSet = true; m_generatedRulesType.assign(value); } /** *

Indicates whether to allow or deny access to the domains listed in * Targets.

*/ inline RuleGroupSourceListDetails& WithGeneratedRulesType(const Aws::String& value) { SetGeneratedRulesType(value); return *this;} /** *

Indicates whether to allow or deny access to the domains listed in * Targets.

*/ inline RuleGroupSourceListDetails& WithGeneratedRulesType(Aws::String&& value) { SetGeneratedRulesType(std::move(value)); return *this;} /** *

Indicates whether to allow or deny access to the domains listed in * Targets.

*/ inline RuleGroupSourceListDetails& WithGeneratedRulesType(const char* value) { SetGeneratedRulesType(value); return *this;} /** *

The protocols that you want to inspect. Specify LS_SNI for * HTTPS. Specify HTTP_HOST for HTTP. You can specify either or * both.

*/ inline const Aws::Vector& GetTargetTypes() const{ return m_targetTypes; } /** *

The protocols that you want to inspect. Specify LS_SNI for * HTTPS. Specify HTTP_HOST for HTTP. You can specify either or * both.

*/ inline bool TargetTypesHasBeenSet() const { return m_targetTypesHasBeenSet; } /** *

The protocols that you want to inspect. Specify LS_SNI for * HTTPS. Specify HTTP_HOST for HTTP. You can specify either or * both.

*/ inline void SetTargetTypes(const Aws::Vector& value) { m_targetTypesHasBeenSet = true; m_targetTypes = value; } /** *

The protocols that you want to inspect. Specify LS_SNI for * HTTPS. Specify HTTP_HOST for HTTP. You can specify either or * both.

*/ inline void SetTargetTypes(Aws::Vector&& value) { m_targetTypesHasBeenSet = true; m_targetTypes = std::move(value); } /** *

The protocols that you want to inspect. Specify LS_SNI for * HTTPS. Specify HTTP_HOST for HTTP. You can specify either or * both.

*/ inline RuleGroupSourceListDetails& WithTargetTypes(const Aws::Vector& value) { SetTargetTypes(value); return *this;} /** *

The protocols that you want to inspect. Specify LS_SNI for * HTTPS. Specify HTTP_HOST for HTTP. You can specify either or * both.

*/ inline RuleGroupSourceListDetails& WithTargetTypes(Aws::Vector&& value) { SetTargetTypes(std::move(value)); return *this;} /** *

The protocols that you want to inspect. Specify LS_SNI for * HTTPS. Specify HTTP_HOST for HTTP. You can specify either or * both.

*/ inline RuleGroupSourceListDetails& AddTargetTypes(const Aws::String& value) { m_targetTypesHasBeenSet = true; m_targetTypes.push_back(value); return *this; } /** *

The protocols that you want to inspect. Specify LS_SNI for * HTTPS. Specify HTTP_HOST for HTTP. You can specify either or * both.

*/ inline RuleGroupSourceListDetails& AddTargetTypes(Aws::String&& value) { m_targetTypesHasBeenSet = true; m_targetTypes.push_back(std::move(value)); return *this; } /** *

The protocols that you want to inspect. Specify LS_SNI for * HTTPS. Specify HTTP_HOST for HTTP. You can specify either or * both.

*/ inline RuleGroupSourceListDetails& AddTargetTypes(const char* value) { m_targetTypesHasBeenSet = true; m_targetTypes.push_back(value); return *this; } /** *

The domains that you want to inspect for in your traffic flows. You can * provide full domain names, or use the '.' prefix as a wildcard. For example, * .example.com matches all domains that end with * example.com.

*/ inline const Aws::Vector& GetTargets() const{ return m_targets; } /** *

The domains that you want to inspect for in your traffic flows. You can * provide full domain names, or use the '.' prefix as a wildcard. For example, * .example.com matches all domains that end with * example.com.

*/ inline bool TargetsHasBeenSet() const { return m_targetsHasBeenSet; } /** *

The domains that you want to inspect for in your traffic flows. You can * provide full domain names, or use the '.' prefix as a wildcard. For example, * .example.com matches all domains that end with * example.com.

*/ inline void SetTargets(const Aws::Vector& value) { m_targetsHasBeenSet = true; m_targets = value; } /** *

The domains that you want to inspect for in your traffic flows. You can * provide full domain names, or use the '.' prefix as a wildcard. For example, * .example.com matches all domains that end with * example.com.

*/ inline void SetTargets(Aws::Vector&& value) { m_targetsHasBeenSet = true; m_targets = std::move(value); } /** *

The domains that you want to inspect for in your traffic flows. You can * provide full domain names, or use the '.' prefix as a wildcard. For example, * .example.com matches all domains that end with * example.com.

*/ inline RuleGroupSourceListDetails& WithTargets(const Aws::Vector& value) { SetTargets(value); return *this;} /** *

The domains that you want to inspect for in your traffic flows. You can * provide full domain names, or use the '.' prefix as a wildcard. For example, * .example.com matches all domains that end with * example.com.

*/ inline RuleGroupSourceListDetails& WithTargets(Aws::Vector&& value) { SetTargets(std::move(value)); return *this;} /** *

The domains that you want to inspect for in your traffic flows. You can * provide full domain names, or use the '.' prefix as a wildcard. For example, * .example.com matches all domains that end with * example.com.

*/ inline RuleGroupSourceListDetails& AddTargets(const Aws::String& value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; } /** *

The domains that you want to inspect for in your traffic flows. You can * provide full domain names, or use the '.' prefix as a wildcard. For example, * .example.com matches all domains that end with * example.com.

*/ inline RuleGroupSourceListDetails& AddTargets(Aws::String&& value) { m_targetsHasBeenSet = true; m_targets.push_back(std::move(value)); return *this; } /** *

The domains that you want to inspect for in your traffic flows. You can * provide full domain names, or use the '.' prefix as a wildcard. For example, * .example.com matches all domains that end with * example.com.

*/ inline RuleGroupSourceListDetails& AddTargets(const char* value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; } private: Aws::String m_generatedRulesType; bool m_generatedRulesTypeHasBeenSet = false; Aws::Vector m_targetTypes; bool m_targetTypesHasBeenSet = false; Aws::Vector m_targets; bool m_targetsHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws