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

Information for a single version of a managed rule set.

This * is intended for use only by vendors of managed rule sets. Vendors are Amazon Web * Services and Amazon Web Services Marketplace sellers.

Vendors, you can * use the managed rule set APIs to provide controlled rollout of your versioned * managed rule group offerings for your customers. The APIs are * ListManagedRuleSets, GetManagedRuleSet, * PutManagedRuleSetVersions, and * UpdateManagedRuleSetVersionExpiryDate.

See * Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) of the vendor rule group that's used to define * the published version of your managed rule group.

*/ inline const Aws::String& GetAssociatedRuleGroupArn() const{ return m_associatedRuleGroupArn; } /** *

The Amazon Resource Name (ARN) of the vendor rule group that's used to define * the published version of your managed rule group.

*/ inline bool AssociatedRuleGroupArnHasBeenSet() const { return m_associatedRuleGroupArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the vendor rule group that's used to define * the published version of your managed rule group.

*/ inline void SetAssociatedRuleGroupArn(const Aws::String& value) { m_associatedRuleGroupArnHasBeenSet = true; m_associatedRuleGroupArn = value; } /** *

The Amazon Resource Name (ARN) of the vendor rule group that's used to define * the published version of your managed rule group.

*/ inline void SetAssociatedRuleGroupArn(Aws::String&& value) { m_associatedRuleGroupArnHasBeenSet = true; m_associatedRuleGroupArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the vendor rule group that's used to define * the published version of your managed rule group.

*/ inline void SetAssociatedRuleGroupArn(const char* value) { m_associatedRuleGroupArnHasBeenSet = true; m_associatedRuleGroupArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the vendor rule group that's used to define * the published version of your managed rule group.

*/ inline ManagedRuleSetVersion& WithAssociatedRuleGroupArn(const Aws::String& value) { SetAssociatedRuleGroupArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the vendor rule group that's used to define * the published version of your managed rule group.

*/ inline ManagedRuleSetVersion& WithAssociatedRuleGroupArn(Aws::String&& value) { SetAssociatedRuleGroupArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the vendor rule group that's used to define * the published version of your managed rule group.

*/ inline ManagedRuleSetVersion& WithAssociatedRuleGroupArn(const char* value) { SetAssociatedRuleGroupArn(value); return *this;} /** *

The web ACL capacity units (WCUs) required for this rule group.

WAF * uses WCUs to calculate and control the operating resources that are used to run * your rules, rule groups, and web ACLs. WAF calculates capacity differently for * each rule type, to reflect the relative cost of each rule. Simple rules that * cost little to run use fewer WCUs than more complex rules that use more * processing power. Rule group capacity is fixed at creation, which helps users * plan their web ACL WCU usage when they use a rule group. For more information, * see WAF * web ACL capacity units (WCU) in the WAF Developer Guide.

*/ inline long long GetCapacity() const{ return m_capacity; } /** *

The web ACL capacity units (WCUs) required for this rule group.

WAF * uses WCUs to calculate and control the operating resources that are used to run * your rules, rule groups, and web ACLs. WAF calculates capacity differently for * each rule type, to reflect the relative cost of each rule. Simple rules that * cost little to run use fewer WCUs than more complex rules that use more * processing power. Rule group capacity is fixed at creation, which helps users * plan their web ACL WCU usage when they use a rule group. For more information, * see WAF * web ACL capacity units (WCU) in the WAF Developer Guide.

*/ inline bool CapacityHasBeenSet() const { return m_capacityHasBeenSet; } /** *

The web ACL capacity units (WCUs) required for this rule group.

WAF * uses WCUs to calculate and control the operating resources that are used to run * your rules, rule groups, and web ACLs. WAF calculates capacity differently for * each rule type, to reflect the relative cost of each rule. Simple rules that * cost little to run use fewer WCUs than more complex rules that use more * processing power. Rule group capacity is fixed at creation, which helps users * plan their web ACL WCU usage when they use a rule group. For more information, * see WAF * web ACL capacity units (WCU) in the WAF Developer Guide.

*/ inline void SetCapacity(long long value) { m_capacityHasBeenSet = true; m_capacity = value; } /** *

The web ACL capacity units (WCUs) required for this rule group.

WAF * uses WCUs to calculate and control the operating resources that are used to run * your rules, rule groups, and web ACLs. WAF calculates capacity differently for * each rule type, to reflect the relative cost of each rule. Simple rules that * cost little to run use fewer WCUs than more complex rules that use more * processing power. Rule group capacity is fixed at creation, which helps users * plan their web ACL WCU usage when they use a rule group. For more information, * see WAF * web ACL capacity units (WCU) in the WAF Developer Guide.

*/ inline ManagedRuleSetVersion& WithCapacity(long long value) { SetCapacity(value); return *this;} /** *

The amount of time you expect this version of your managed rule group to * last, in days.

*/ inline int GetForecastedLifetime() const{ return m_forecastedLifetime; } /** *

The amount of time you expect this version of your managed rule group to * last, in days.

*/ inline bool ForecastedLifetimeHasBeenSet() const { return m_forecastedLifetimeHasBeenSet; } /** *

The amount of time you expect this version of your managed rule group to * last, in days.

*/ inline void SetForecastedLifetime(int value) { m_forecastedLifetimeHasBeenSet = true; m_forecastedLifetime = value; } /** *

The amount of time you expect this version of your managed rule group to * last, in days.

*/ inline ManagedRuleSetVersion& WithForecastedLifetime(int value) { SetForecastedLifetime(value); return *this;} /** *

The time that you first published this version.

Times are in * Coordinated Universal Time (UTC) format. UTC format includes the special * designator, Z. For example, "2016-09-27T14:50Z".

*/ inline const Aws::Utils::DateTime& GetPublishTimestamp() const{ return m_publishTimestamp; } /** *

The time that you first published this version.

Times are in * Coordinated Universal Time (UTC) format. UTC format includes the special * designator, Z. For example, "2016-09-27T14:50Z".

*/ inline bool PublishTimestampHasBeenSet() const { return m_publishTimestampHasBeenSet; } /** *

The time that you first published this version.

Times are in * Coordinated Universal Time (UTC) format. UTC format includes the special * designator, Z. For example, "2016-09-27T14:50Z".

*/ inline void SetPublishTimestamp(const Aws::Utils::DateTime& value) { m_publishTimestampHasBeenSet = true; m_publishTimestamp = value; } /** *

The time that you first published this version.

Times are in * Coordinated Universal Time (UTC) format. UTC format includes the special * designator, Z. For example, "2016-09-27T14:50Z".

*/ inline void SetPublishTimestamp(Aws::Utils::DateTime&& value) { m_publishTimestampHasBeenSet = true; m_publishTimestamp = std::move(value); } /** *

The time that you first published this version.

Times are in * Coordinated Universal Time (UTC) format. UTC format includes the special * designator, Z. For example, "2016-09-27T14:50Z".

*/ inline ManagedRuleSetVersion& WithPublishTimestamp(const Aws::Utils::DateTime& value) { SetPublishTimestamp(value); return *this;} /** *

The time that you first published this version.

Times are in * Coordinated Universal Time (UTC) format. UTC format includes the special * designator, Z. For example, "2016-09-27T14:50Z".

*/ inline ManagedRuleSetVersion& WithPublishTimestamp(Aws::Utils::DateTime&& value) { SetPublishTimestamp(std::move(value)); return *this;} /** *

The last time that you updated this version.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline const Aws::Utils::DateTime& GetLastUpdateTimestamp() const{ return m_lastUpdateTimestamp; } /** *

The last time that you updated this version.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline bool LastUpdateTimestampHasBeenSet() const { return m_lastUpdateTimestampHasBeenSet; } /** *

The last time that you updated this version.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline void SetLastUpdateTimestamp(const Aws::Utils::DateTime& value) { m_lastUpdateTimestampHasBeenSet = true; m_lastUpdateTimestamp = value; } /** *

The last time that you updated this version.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline void SetLastUpdateTimestamp(Aws::Utils::DateTime&& value) { m_lastUpdateTimestampHasBeenSet = true; m_lastUpdateTimestamp = std::move(value); } /** *

The last time that you updated this version.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline ManagedRuleSetVersion& WithLastUpdateTimestamp(const Aws::Utils::DateTime& value) { SetLastUpdateTimestamp(value); return *this;} /** *

The last time that you updated this version.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline ManagedRuleSetVersion& WithLastUpdateTimestamp(Aws::Utils::DateTime&& value) { SetLastUpdateTimestamp(std::move(value)); return *this;} /** *

The time that this version is set to expire.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline const Aws::Utils::DateTime& GetExpiryTimestamp() const{ return m_expiryTimestamp; } /** *

The time that this version is set to expire.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline bool ExpiryTimestampHasBeenSet() const { return m_expiryTimestampHasBeenSet; } /** *

The time that this version is set to expire.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline void SetExpiryTimestamp(const Aws::Utils::DateTime& value) { m_expiryTimestampHasBeenSet = true; m_expiryTimestamp = value; } /** *

The time that this version is set to expire.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline void SetExpiryTimestamp(Aws::Utils::DateTime&& value) { m_expiryTimestampHasBeenSet = true; m_expiryTimestamp = std::move(value); } /** *

The time that this version is set to expire.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline ManagedRuleSetVersion& WithExpiryTimestamp(const Aws::Utils::DateTime& value) { SetExpiryTimestamp(value); return *this;} /** *

The time that this version is set to expire.

Times are in Coordinated * Universal Time (UTC) format. UTC format includes the special designator, Z. For * example, "2016-09-27T14:50Z".

*/ inline ManagedRuleSetVersion& WithExpiryTimestamp(Aws::Utils::DateTime&& value) { SetExpiryTimestamp(std::move(value)); return *this;} private: Aws::String m_associatedRuleGroupArn; bool m_associatedRuleGroupArnHasBeenSet = false; long long m_capacity; bool m_capacityHasBeenSet = false; int m_forecastedLifetime; bool m_forecastedLifetimeHasBeenSet = false; Aws::Utils::DateTime m_publishTimestamp; bool m_publishTimestampHasBeenSet = false; Aws::Utils::DateTime m_lastUpdateTimestamp; bool m_lastUpdateTimestampHasBeenSet = false; Aws::Utils::DateTime m_expiryTimestamp; bool m_expiryTimestampHasBeenSet = false; }; } // namespace Model } // namespace WAFV2 } // namespace Aws