/** * 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 WAFV2 { namespace Model { /** *

The properties of a managed product, such as an Amazon Web Services Managed * Rules rule group or an Amazon Web Services Marketplace managed rule group. *

See Also:

AWS * API Reference

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

The name of the managed rule group vendor. You use this, along with the rule * group name, to identify a rule group.

*/ inline const Aws::String& GetVendorName() const{ return m_vendorName; } /** *

The name of the managed rule group vendor. You use this, along with the rule * group name, to identify a rule group.

*/ inline bool VendorNameHasBeenSet() const { return m_vendorNameHasBeenSet; } /** *

The name of the managed rule group vendor. You use this, along with the rule * group name, to identify a rule group.

*/ inline void SetVendorName(const Aws::String& value) { m_vendorNameHasBeenSet = true; m_vendorName = value; } /** *

The name of the managed rule group vendor. You use this, along with the rule * group name, to identify a rule group.

*/ inline void SetVendorName(Aws::String&& value) { m_vendorNameHasBeenSet = true; m_vendorName = std::move(value); } /** *

The name of the managed rule group vendor. You use this, along with the rule * group name, to identify a rule group.

*/ inline void SetVendorName(const char* value) { m_vendorNameHasBeenSet = true; m_vendorName.assign(value); } /** *

The name of the managed rule group vendor. You use this, along with the rule * group name, to identify a rule group.

*/ inline ManagedProductDescriptor& WithVendorName(const Aws::String& value) { SetVendorName(value); return *this;} /** *

The name of the managed rule group vendor. You use this, along with the rule * group name, to identify a rule group.

*/ inline ManagedProductDescriptor& WithVendorName(Aws::String&& value) { SetVendorName(std::move(value)); return *this;} /** *

The name of the managed rule group vendor. You use this, along with the rule * group name, to identify a rule group.

*/ inline ManagedProductDescriptor& WithVendorName(const char* value) { SetVendorName(value); return *this;} /** *

The name of the managed rule group. For example, * AWSManagedRulesAnonymousIpList or * AWSManagedRulesATPRuleSet.

*/ inline const Aws::String& GetManagedRuleSetName() const{ return m_managedRuleSetName; } /** *

The name of the managed rule group. For example, * AWSManagedRulesAnonymousIpList or * AWSManagedRulesATPRuleSet.

*/ inline bool ManagedRuleSetNameHasBeenSet() const { return m_managedRuleSetNameHasBeenSet; } /** *

The name of the managed rule group. For example, * AWSManagedRulesAnonymousIpList or * AWSManagedRulesATPRuleSet.

*/ inline void SetManagedRuleSetName(const Aws::String& value) { m_managedRuleSetNameHasBeenSet = true; m_managedRuleSetName = value; } /** *

The name of the managed rule group. For example, * AWSManagedRulesAnonymousIpList or * AWSManagedRulesATPRuleSet.

*/ inline void SetManagedRuleSetName(Aws::String&& value) { m_managedRuleSetNameHasBeenSet = true; m_managedRuleSetName = std::move(value); } /** *

The name of the managed rule group. For example, * AWSManagedRulesAnonymousIpList or * AWSManagedRulesATPRuleSet.

*/ inline void SetManagedRuleSetName(const char* value) { m_managedRuleSetNameHasBeenSet = true; m_managedRuleSetName.assign(value); } /** *

The name of the managed rule group. For example, * AWSManagedRulesAnonymousIpList or * AWSManagedRulesATPRuleSet.

*/ inline ManagedProductDescriptor& WithManagedRuleSetName(const Aws::String& value) { SetManagedRuleSetName(value); return *this;} /** *

The name of the managed rule group. For example, * AWSManagedRulesAnonymousIpList or * AWSManagedRulesATPRuleSet.

*/ inline ManagedProductDescriptor& WithManagedRuleSetName(Aws::String&& value) { SetManagedRuleSetName(std::move(value)); return *this;} /** *

The name of the managed rule group. For example, * AWSManagedRulesAnonymousIpList or * AWSManagedRulesATPRuleSet.

*/ inline ManagedProductDescriptor& WithManagedRuleSetName(const char* value) { SetManagedRuleSetName(value); return *this;} /** *

A unique identifier for the rule group. This ID is returned in the responses * to create and list commands. You provide it to operations like update and * delete.

*/ inline const Aws::String& GetProductId() const{ return m_productId; } /** *

A unique identifier for the rule group. This ID is returned in the responses * to create and list commands. You provide it to operations like update and * delete.

*/ inline bool ProductIdHasBeenSet() const { return m_productIdHasBeenSet; } /** *

A unique identifier for the rule group. This ID is returned in the responses * to create and list commands. You provide it to operations like update and * delete.

*/ inline void SetProductId(const Aws::String& value) { m_productIdHasBeenSet = true; m_productId = value; } /** *

A unique identifier for the rule group. This ID is returned in the responses * to create and list commands. You provide it to operations like update and * delete.

*/ inline void SetProductId(Aws::String&& value) { m_productIdHasBeenSet = true; m_productId = std::move(value); } /** *

A unique identifier for the rule group. This ID is returned in the responses * to create and list commands. You provide it to operations like update and * delete.

*/ inline void SetProductId(const char* value) { m_productIdHasBeenSet = true; m_productId.assign(value); } /** *

A unique identifier for the rule group. This ID is returned in the responses * to create and list commands. You provide it to operations like update and * delete.

*/ inline ManagedProductDescriptor& WithProductId(const Aws::String& value) { SetProductId(value); return *this;} /** *

A unique identifier for the rule group. This ID is returned in the responses * to create and list commands. You provide it to operations like update and * delete.

*/ inline ManagedProductDescriptor& WithProductId(Aws::String&& value) { SetProductId(std::move(value)); return *this;} /** *

A unique identifier for the rule group. This ID is returned in the responses * to create and list commands. You provide it to operations like update and * delete.

*/ inline ManagedProductDescriptor& WithProductId(const char* value) { SetProductId(value); return *this;} /** *

For Amazon Web Services Marketplace managed rule groups only, the link to the * rule group product page.

*/ inline const Aws::String& GetProductLink() const{ return m_productLink; } /** *

For Amazon Web Services Marketplace managed rule groups only, the link to the * rule group product page.

*/ inline bool ProductLinkHasBeenSet() const { return m_productLinkHasBeenSet; } /** *

For Amazon Web Services Marketplace managed rule groups only, the link to the * rule group product page.

*/ inline void SetProductLink(const Aws::String& value) { m_productLinkHasBeenSet = true; m_productLink = value; } /** *

For Amazon Web Services Marketplace managed rule groups only, the link to the * rule group product page.

*/ inline void SetProductLink(Aws::String&& value) { m_productLinkHasBeenSet = true; m_productLink = std::move(value); } /** *

For Amazon Web Services Marketplace managed rule groups only, the link to the * rule group product page.

*/ inline void SetProductLink(const char* value) { m_productLinkHasBeenSet = true; m_productLink.assign(value); } /** *

For Amazon Web Services Marketplace managed rule groups only, the link to the * rule group product page.

*/ inline ManagedProductDescriptor& WithProductLink(const Aws::String& value) { SetProductLink(value); return *this;} /** *

For Amazon Web Services Marketplace managed rule groups only, the link to the * rule group product page.

*/ inline ManagedProductDescriptor& WithProductLink(Aws::String&& value) { SetProductLink(std::move(value)); return *this;} /** *

For Amazon Web Services Marketplace managed rule groups only, the link to the * rule group product page.

*/ inline ManagedProductDescriptor& WithProductLink(const char* value) { SetProductLink(value); return *this;} /** *

The display name for the managed rule group. For example, Anonymous IP * list or Account takeover prevention.

*/ inline const Aws::String& GetProductTitle() const{ return m_productTitle; } /** *

The display name for the managed rule group. For example, Anonymous IP * list or Account takeover prevention.

*/ inline bool ProductTitleHasBeenSet() const { return m_productTitleHasBeenSet; } /** *

The display name for the managed rule group. For example, Anonymous IP * list or Account takeover prevention.

*/ inline void SetProductTitle(const Aws::String& value) { m_productTitleHasBeenSet = true; m_productTitle = value; } /** *

The display name for the managed rule group. For example, Anonymous IP * list or Account takeover prevention.

*/ inline void SetProductTitle(Aws::String&& value) { m_productTitleHasBeenSet = true; m_productTitle = std::move(value); } /** *

The display name for the managed rule group. For example, Anonymous IP * list or Account takeover prevention.

*/ inline void SetProductTitle(const char* value) { m_productTitleHasBeenSet = true; m_productTitle.assign(value); } /** *

The display name for the managed rule group. For example, Anonymous IP * list or Account takeover prevention.

*/ inline ManagedProductDescriptor& WithProductTitle(const Aws::String& value) { SetProductTitle(value); return *this;} /** *

The display name for the managed rule group. For example, Anonymous IP * list or Account takeover prevention.

*/ inline ManagedProductDescriptor& WithProductTitle(Aws::String&& value) { SetProductTitle(std::move(value)); return *this;} /** *

The display name for the managed rule group. For example, Anonymous IP * list or Account takeover prevention.

*/ inline ManagedProductDescriptor& WithProductTitle(const char* value) { SetProductTitle(value); return *this;} /** *

A short description of the managed rule group.

*/ inline const Aws::String& GetProductDescription() const{ return m_productDescription; } /** *

A short description of the managed rule group.

*/ inline bool ProductDescriptionHasBeenSet() const { return m_productDescriptionHasBeenSet; } /** *

A short description of the managed rule group.

*/ inline void SetProductDescription(const Aws::String& value) { m_productDescriptionHasBeenSet = true; m_productDescription = value; } /** *

A short description of the managed rule group.

*/ inline void SetProductDescription(Aws::String&& value) { m_productDescriptionHasBeenSet = true; m_productDescription = std::move(value); } /** *

A short description of the managed rule group.

*/ inline void SetProductDescription(const char* value) { m_productDescriptionHasBeenSet = true; m_productDescription.assign(value); } /** *

A short description of the managed rule group.

*/ inline ManagedProductDescriptor& WithProductDescription(const Aws::String& value) { SetProductDescription(value); return *this;} /** *

A short description of the managed rule group.

*/ inline ManagedProductDescriptor& WithProductDescription(Aws::String&& value) { SetProductDescription(std::move(value)); return *this;} /** *

A short description of the managed rule group.

*/ inline ManagedProductDescriptor& WithProductDescription(const char* value) { SetProductDescription(value); return *this;} /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to provide notification of changes to the managed rule group. * You can subscribe to the SNS topic to receive notifications when the managed * rule group is modified, such as for new versions and for version expiration. For * more information, see the Amazon Simple * Notification Service Developer Guide.

*/ inline const Aws::String& GetSnsTopicArn() const{ return m_snsTopicArn; } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to provide notification of changes to the managed rule group. * You can subscribe to the SNS topic to receive notifications when the managed * rule group is modified, such as for new versions and for version expiration. For * more information, see the Amazon Simple * Notification Service Developer Guide.

*/ inline bool SnsTopicArnHasBeenSet() const { return m_snsTopicArnHasBeenSet; } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to provide notification of changes to the managed rule group. * You can subscribe to the SNS topic to receive notifications when the managed * rule group is modified, such as for new versions and for version expiration. For * more information, see the Amazon Simple * Notification Service Developer Guide.

*/ inline void SetSnsTopicArn(const Aws::String& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = value; } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to provide notification of changes to the managed rule group. * You can subscribe to the SNS topic to receive notifications when the managed * rule group is modified, such as for new versions and for version expiration. For * more information, see the Amazon Simple * Notification Service Developer Guide.

*/ inline void SetSnsTopicArn(Aws::String&& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = std::move(value); } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to provide notification of changes to the managed rule group. * You can subscribe to the SNS topic to receive notifications when the managed * rule group is modified, such as for new versions and for version expiration. For * more information, see the Amazon Simple * Notification Service Developer Guide.

*/ inline void SetSnsTopicArn(const char* value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn.assign(value); } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to provide notification of changes to the managed rule group. * You can subscribe to the SNS topic to receive notifications when the managed * rule group is modified, such as for new versions and for version expiration. For * more information, see the Amazon Simple * Notification Service Developer Guide.

*/ inline ManagedProductDescriptor& WithSnsTopicArn(const Aws::String& value) { SetSnsTopicArn(value); return *this;} /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to provide notification of changes to the managed rule group. * You can subscribe to the SNS topic to receive notifications when the managed * rule group is modified, such as for new versions and for version expiration. For * more information, see the Amazon Simple * Notification Service Developer Guide.

*/ inline ManagedProductDescriptor& WithSnsTopicArn(Aws::String&& value) { SetSnsTopicArn(std::move(value)); return *this;} /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to provide notification of changes to the managed rule group. * You can subscribe to the SNS topic to receive notifications when the managed * rule group is modified, such as for new versions and for version expiration. For * more information, see the Amazon Simple * Notification Service Developer Guide.

*/ inline ManagedProductDescriptor& WithSnsTopicArn(const char* value) { SetSnsTopicArn(value); return *this;} /** *

Indicates whether the rule group is versioned.

*/ inline bool GetIsVersioningSupported() const{ return m_isVersioningSupported; } /** *

Indicates whether the rule group is versioned.

*/ inline bool IsVersioningSupportedHasBeenSet() const { return m_isVersioningSupportedHasBeenSet; } /** *

Indicates whether the rule group is versioned.

*/ inline void SetIsVersioningSupported(bool value) { m_isVersioningSupportedHasBeenSet = true; m_isVersioningSupported = value; } /** *

Indicates whether the rule group is versioned.

*/ inline ManagedProductDescriptor& WithIsVersioningSupported(bool value) { SetIsVersioningSupported(value); return *this;} /** *

Indicates whether the rule group provides an advanced set of protections, * such as the the Amazon Web Services Managed Rules rule groups that are used for * WAF intelligent threat mitigation.

*/ inline bool GetIsAdvancedManagedRuleSet() const{ return m_isAdvancedManagedRuleSet; } /** *

Indicates whether the rule group provides an advanced set of protections, * such as the the Amazon Web Services Managed Rules rule groups that are used for * WAF intelligent threat mitigation.

*/ inline bool IsAdvancedManagedRuleSetHasBeenSet() const { return m_isAdvancedManagedRuleSetHasBeenSet; } /** *

Indicates whether the rule group provides an advanced set of protections, * such as the the Amazon Web Services Managed Rules rule groups that are used for * WAF intelligent threat mitigation.

*/ inline void SetIsAdvancedManagedRuleSet(bool value) { m_isAdvancedManagedRuleSetHasBeenSet = true; m_isAdvancedManagedRuleSet = value; } /** *

Indicates whether the rule group provides an advanced set of protections, * such as the the Amazon Web Services Managed Rules rule groups that are used for * WAF intelligent threat mitigation.

*/ inline ManagedProductDescriptor& WithIsAdvancedManagedRuleSet(bool value) { SetIsAdvancedManagedRuleSet(value); return *this;} private: Aws::String m_vendorName; bool m_vendorNameHasBeenSet = false; Aws::String m_managedRuleSetName; bool m_managedRuleSetNameHasBeenSet = false; Aws::String m_productId; bool m_productIdHasBeenSet = false; Aws::String m_productLink; bool m_productLinkHasBeenSet = false; Aws::String m_productTitle; bool m_productTitleHasBeenSet = false; Aws::String m_productDescription; bool m_productDescriptionHasBeenSet = false; Aws::String m_snsTopicArn; bool m_snsTopicArnHasBeenSet = false; bool m_isVersioningSupported; bool m_isVersioningSupportedHasBeenSet = false; bool m_isAdvancedManagedRuleSet; bool m_isAdvancedManagedRuleSetHasBeenSet = false; }; } // namespace Model } // namespace WAFV2 } // namespace Aws