/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.securityhub.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Details for a rule in an WAF web ACL. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AwsWafWebAclRule implements Serializable, Cloneable, StructuredPojo { /** ** Specifies the action that CloudFront or WAF takes when a web request matches the conditions in the rule. *
*/ private WafAction action; /** ** Rules to exclude from a rule group. *
*/ private java.util.List
* Use the OverrideAction
to test your RuleGroup
.
*
* Any rule in a RuleGroup
can potentially block a request. If you set the OverrideAction
* to None
, the RuleGroup
blocks a request if any individual rule in the
* RuleGroup
matches the request and is configured to block that request.
*
* However, if you first want to test the RuleGroup
, set the OverrideAction
to
* Count
. The RuleGroup
then overrides any block action specified by individual rules
* contained within the group. Instead of blocking matching requests, those requests are counted.
*
* ActivatedRule
|OverrideAction
applies only when updating or adding a
* RuleGroup
to a web ACL. In this case you do not use ActivatedRule
Action
.
* For all other update requests, ActivatedRule
Action
is used instead of
* ActivatedRule
OverrideAction
.
*
* Specifies the order in which the rules in a web ACL are evaluated. Rules with a lower value for
* Priority
are evaluated before rules with a higher value. The value must be a unique integer. If you
* add multiple rules to a web ACL, the values do not need to be consecutive.
*
* The identifier for a rule. *
*/ private String ruleId; /** ** The rule type. *
*
* Valid values: REGULAR
| RATE_BASED
| GROUP
*
* The default is REGULAR
.
*
* Specifies the action that CloudFront or WAF takes when a web request matches the conditions in the rule. *
* * @param action * Specifies the action that CloudFront or WAF takes when a web request matches the conditions in the rule. */ public void setAction(WafAction action) { this.action = action; } /** ** Specifies the action that CloudFront or WAF takes when a web request matches the conditions in the rule. *
* * @return Specifies the action that CloudFront or WAF takes when a web request matches the conditions in the rule. */ public WafAction getAction() { return this.action; } /** ** Specifies the action that CloudFront or WAF takes when a web request matches the conditions in the rule. *
* * @param action * Specifies the action that CloudFront or WAF takes when a web request matches the conditions in the rule. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsWafWebAclRule withAction(WafAction action) { setAction(action); return this; } /** ** Rules to exclude from a rule group. *
* * @return Rules to exclude from a rule group. */ public java.util.List* Rules to exclude from a rule group. *
* * @param excludedRules * Rules to exclude from a rule group. */ public void setExcludedRules(java.util.Collection* Rules to exclude from a rule group. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setExcludedRules(java.util.Collection)} or {@link #withExcludedRules(java.util.Collection)} if you want * to override the existing values. *
* * @param excludedRules * Rules to exclude from a rule group. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsWafWebAclRule withExcludedRules(WafExcludedRule... excludedRules) { if (this.excludedRules == null) { setExcludedRules(new java.util.ArrayList* Rules to exclude from a rule group. *
* * @param excludedRules * Rules to exclude from a rule group. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsWafWebAclRule withExcludedRules(java.util.Collection
* Use the OverrideAction
to test your RuleGroup
.
*
* Any rule in a RuleGroup
can potentially block a request. If you set the OverrideAction
* to None
, the RuleGroup
blocks a request if any individual rule in the
* RuleGroup
matches the request and is configured to block that request.
*
* However, if you first want to test the RuleGroup
, set the OverrideAction
to
* Count
. The RuleGroup
then overrides any block action specified by individual rules
* contained within the group. Instead of blocking matching requests, those requests are counted.
*
* ActivatedRule
|OverrideAction
applies only when updating or adding a
* RuleGroup
to a web ACL. In this case you do not use ActivatedRule
Action
.
* For all other update requests, ActivatedRule
Action
is used instead of
* ActivatedRule
OverrideAction
.
*
OverrideAction
to test your RuleGroup
.
*
* Any rule in a RuleGroup
can potentially block a request. If you set the
* OverrideAction
to None
, the RuleGroup
blocks a request if any
* individual rule in the RuleGroup
matches the request and is configured to block that request.
*
* However, if you first want to test the RuleGroup
, set the OverrideAction
to
* Count
. The RuleGroup
then overrides any block action specified by individual
* rules contained within the group. Instead of blocking matching requests, those requests are counted.
*
* ActivatedRule
|OverrideAction
applies only when updating or adding a
* RuleGroup
to a web ACL. In this case you do not use ActivatedRule
* Action
. For all other update requests, ActivatedRule
Action
is used
* instead of ActivatedRule
OverrideAction
.
*/
public void setOverrideAction(WafOverrideAction overrideAction) {
this.overrideAction = overrideAction;
}
/**
*
* Use the OverrideAction
to test your RuleGroup
.
*
* Any rule in a RuleGroup
can potentially block a request. If you set the OverrideAction
* to None
, the RuleGroup
blocks a request if any individual rule in the
* RuleGroup
matches the request and is configured to block that request.
*
* However, if you first want to test the RuleGroup
, set the OverrideAction
to
* Count
. The RuleGroup
then overrides any block action specified by individual rules
* contained within the group. Instead of blocking matching requests, those requests are counted.
*
* ActivatedRule
|OverrideAction
applies only when updating or adding a
* RuleGroup
to a web ACL. In this case you do not use ActivatedRule
Action
.
* For all other update requests, ActivatedRule
Action
is used instead of
* ActivatedRule
OverrideAction
.
*
OverrideAction
to test your RuleGroup
.
*
* Any rule in a RuleGroup
can potentially block a request. If you set the
* OverrideAction
to None
, the RuleGroup
blocks a request if any
* individual rule in the RuleGroup
matches the request and is configured to block that
* request.
*
* However, if you first want to test the RuleGroup
, set the OverrideAction
to
* Count
. The RuleGroup
then overrides any block action specified by individual
* rules contained within the group. Instead of blocking matching requests, those requests are counted.
*
* ActivatedRule
|OverrideAction
applies only when updating or adding a
* RuleGroup
to a web ACL. In this case you do not use ActivatedRule
* Action
. For all other update requests, ActivatedRule
Action
is
* used instead of ActivatedRule
OverrideAction
.
*/
public WafOverrideAction getOverrideAction() {
return this.overrideAction;
}
/**
*
* Use the OverrideAction
to test your RuleGroup
.
*
* Any rule in a RuleGroup
can potentially block a request. If you set the OverrideAction
* to None
, the RuleGroup
blocks a request if any individual rule in the
* RuleGroup
matches the request and is configured to block that request.
*
* However, if you first want to test the RuleGroup
, set the OverrideAction
to
* Count
. The RuleGroup
then overrides any block action specified by individual rules
* contained within the group. Instead of blocking matching requests, those requests are counted.
*
* ActivatedRule
|OverrideAction
applies only when updating or adding a
* RuleGroup
to a web ACL. In this case you do not use ActivatedRule
Action
.
* For all other update requests, ActivatedRule
Action
is used instead of
* ActivatedRule
OverrideAction
.
*
OverrideAction
to test your RuleGroup
.
*
* Any rule in a RuleGroup
can potentially block a request. If you set the
* OverrideAction
to None
, the RuleGroup
blocks a request if any
* individual rule in the RuleGroup
matches the request and is configured to block that request.
*
* However, if you first want to test the RuleGroup
, set the OverrideAction
to
* Count
. The RuleGroup
then overrides any block action specified by individual
* rules contained within the group. Instead of blocking matching requests, those requests are counted.
*
* ActivatedRule
|OverrideAction
applies only when updating or adding a
* RuleGroup
to a web ACL. In this case you do not use ActivatedRule
* Action
. For all other update requests, ActivatedRule
Action
is used
* instead of ActivatedRule
OverrideAction
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AwsWafWebAclRule withOverrideAction(WafOverrideAction overrideAction) {
setOverrideAction(overrideAction);
return this;
}
/**
*
* Specifies the order in which the rules in a web ACL are evaluated. Rules with a lower value for
* Priority
are evaluated before rules with a higher value. The value must be a unique integer. If you
* add multiple rules to a web ACL, the values do not need to be consecutive.
*
Priority
are evaluated before rules with a higher value. The value must be a unique integer.
* If you add multiple rules to a web ACL, the values do not need to be consecutive.
*/
public void setPriority(Integer priority) {
this.priority = priority;
}
/**
*
* Specifies the order in which the rules in a web ACL are evaluated. Rules with a lower value for
* Priority
are evaluated before rules with a higher value. The value must be a unique integer. If you
* add multiple rules to a web ACL, the values do not need to be consecutive.
*
Priority
are evaluated before rules with a higher value. The value must be a unique integer.
* If you add multiple rules to a web ACL, the values do not need to be consecutive.
*/
public Integer getPriority() {
return this.priority;
}
/**
*
* Specifies the order in which the rules in a web ACL are evaluated. Rules with a lower value for
* Priority
are evaluated before rules with a higher value. The value must be a unique integer. If you
* add multiple rules to a web ACL, the values do not need to be consecutive.
*
Priority
are evaluated before rules with a higher value. The value must be a unique integer.
* If you add multiple rules to a web ACL, the values do not need to be consecutive.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AwsWafWebAclRule withPriority(Integer priority) {
setPriority(priority);
return this;
}
/**
* * The identifier for a rule. *
* * @param ruleId * The identifier for a rule. */ public void setRuleId(String ruleId) { this.ruleId = ruleId; } /** ** The identifier for a rule. *
* * @return The identifier for a rule. */ public String getRuleId() { return this.ruleId; } /** ** The identifier for a rule. *
* * @param ruleId * The identifier for a rule. * @return Returns a reference to this object so that method calls can be chained together. */ public AwsWafWebAclRule withRuleId(String ruleId) { setRuleId(ruleId); return this; } /** ** The rule type. *
*
* Valid values: REGULAR
| RATE_BASED
| GROUP
*
* The default is REGULAR
.
*
* Valid values: REGULAR
| RATE_BASED
| GROUP
*
* The default is REGULAR
.
*/
public void setType(String type) {
this.type = type;
}
/**
*
* The rule type. *
*
* Valid values: REGULAR
| RATE_BASED
| GROUP
*
* The default is REGULAR
.
*
* Valid values: REGULAR
| RATE_BASED
| GROUP
*
* The default is REGULAR
.
*/
public String getType() {
return this.type;
}
/**
*
* The rule type. *
*
* Valid values: REGULAR
| RATE_BASED
| GROUP
*
* The default is REGULAR
.
*
* Valid values: REGULAR
| RATE_BASED
| GROUP
*
* The default is REGULAR
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AwsWafWebAclRule withType(String type) {
setType(type);
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getAction() != null)
sb.append("Action: ").append(getAction()).append(",");
if (getExcludedRules() != null)
sb.append("ExcludedRules: ").append(getExcludedRules()).append(",");
if (getOverrideAction() != null)
sb.append("OverrideAction: ").append(getOverrideAction()).append(",");
if (getPriority() != null)
sb.append("Priority: ").append(getPriority()).append(",");
if (getRuleId() != null)
sb.append("RuleId: ").append(getRuleId()).append(",");
if (getType() != null)
sb.append("Type: ").append(getType());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof AwsWafWebAclRule == false)
return false;
AwsWafWebAclRule other = (AwsWafWebAclRule) obj;
if (other.getAction() == null ^ this.getAction() == null)
return false;
if (other.getAction() != null && other.getAction().equals(this.getAction()) == false)
return false;
if (other.getExcludedRules() == null ^ this.getExcludedRules() == null)
return false;
if (other.getExcludedRules() != null && other.getExcludedRules().equals(this.getExcludedRules()) == false)
return false;
if (other.getOverrideAction() == null ^ this.getOverrideAction() == null)
return false;
if (other.getOverrideAction() != null && other.getOverrideAction().equals(this.getOverrideAction()) == false)
return false;
if (other.getPriority() == null ^ this.getPriority() == null)
return false;
if (other.getPriority() != null && other.getPriority().equals(this.getPriority()) == false)
return false;
if (other.getRuleId() == null ^ this.getRuleId() == null)
return false;
if (other.getRuleId() != null && other.getRuleId().equals(this.getRuleId()) == false)
return false;
if (other.getType() == null ^ this.getType() == null)
return false;
if (other.getType() != null && other.getType().equals(this.getType()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getAction() == null) ? 0 : getAction().hashCode());
hashCode = prime * hashCode + ((getExcludedRules() == null) ? 0 : getExcludedRules().hashCode());
hashCode = prime * hashCode + ((getOverrideAction() == null) ? 0 : getOverrideAction().hashCode());
hashCode = prime * hashCode + ((getPriority() == null) ? 0 : getPriority().hashCode());
hashCode = prime * hashCode + ((getRuleId() == null) ? 0 : getRuleId().hashCode());
hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode());
return hashCode;
}
@Override
public AwsWafWebAclRule clone() {
try {
return (AwsWafWebAclRule) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
@com.amazonaws.annotation.SdkInternalApi
@Override
public void marshall(ProtocolMarshaller protocolMarshaller) {
com.amazonaws.services.securityhub.model.transform.AwsWafWebAclRuleMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}