com.amazonaws.services.securityhub.model.AwsWafWebAclRule Maven / Gradle / Ivy
Show all versions of aws-java-sdk-securityhub Show documentation
/*
* Copyright 2019-2024 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 excludedRules;
/**
*
* 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
.
*
*/
private WafOverrideAction 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.
*
*/
private Integer priority;
/**
*
* The identifier for a rule.
*
*/
private String ruleId;
/**
*
* The rule type.
*
*
* Valid values: REGULAR
| RATE_BASED
| GROUP
*
*
* The default is REGULAR
.
*
*/
private String type;
/**
*
* 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 getExcludedRules() {
return excludedRules;
}
/**
*
* Rules to exclude from a rule group.
*
*
* @param excludedRules
* Rules to exclude from a rule group.
*/
public void setExcludedRules(java.util.Collection excludedRules) {
if (excludedRules == null) {
this.excludedRules = null;
return;
}
this.excludedRules = new java.util.ArrayList(excludedRules);
}
/**
*
* 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(excludedRules.length));
}
for (WafExcludedRule ele : excludedRules) {
this.excludedRules.add(ele);
}
return this;
}
/**
*
* 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 excludedRules) {
setExcludedRules(excludedRules);
return this;
}
/**
*
* 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
.
*
*
* @param 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
.
*/
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
.
*
*
* @return 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
.
*/
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
.
*
*
* @param 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
.
* @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.
*
*
* @param 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.
*/
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.
*
*
* @return 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.
*/
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.
*
*
* @param 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.
* @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
.
*
*
* @param type
* The rule type.
*
* 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
.
*
*
* @return The rule type.
*
* 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
.
*
*
* @param type
* The rule type.
*
* 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);
}
}