All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.waf.model.Rule Maven / Gradle / Ivy

/*
 * Copyright 2010-2016 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.waf.model;

import java.io.Serializable;

/**
 * 

* A combination of ByteMatchSet, IPSet, and/or * SqlInjectionMatchSet objects that identify the web requests that you * want to allow, block, or count. For example, you might create a * Rule that includes the following predicates: *

*
    *
  • An IPSet that causes AWS WAF to search for web requests that * originate from the IP address 192.0.2.44
  • *
  • A ByteMatchSet that causes AWS WAF to search for web * requests for which the value of the User-Agent header is * BadBot.
  • *
*

* To match the settings in this Rule, a request must originate * from 192.0.2.44 AND include a User-Agent header for * which the value is BadBot. *

*/ public class Rule implements Serializable, Cloneable { /** *

* A unique identifier for a Rule. You use RuleId * to get more information about a Rule (see GetRule), * update a Rule (see UpdateRule), insert a * Rule into a WebACL or delete a one from a * WebACL (see UpdateWebACL), or delete a * Rule from AWS WAF (see DeleteRule). *

*

* RuleId is returned by CreateRule and by * ListRules. *

*/ private String ruleId; /** *

* The friendly name or description for the Rule. You can't * change the name of a Rule after you create it. *

*/ private String name; private String metricName; /** *

* The Predicates object contains one Predicate * element for each ByteMatchSet, IPSet, or * SqlInjectionMatchSet object that you want to include in a * Rule. *

*/ private java.util.List predicates; /** *

* A unique identifier for a Rule. You use RuleId * to get more information about a Rule (see GetRule), * update a Rule (see UpdateRule), insert a * Rule into a WebACL or delete a one from a * WebACL (see UpdateWebACL), or delete a * Rule from AWS WAF (see DeleteRule). *

*

* RuleId is returned by CreateRule and by * ListRules. *

* * @param ruleId * A unique identifier for a Rule. You use * RuleId to get more information about a * Rule (see GetRule), update a Rule * (see UpdateRule), insert a Rule into a * WebACL or delete a one from a WebACL * (see UpdateWebACL), or delete a Rule from AWS * WAF (see DeleteRule).

*

* RuleId is returned by CreateRule and by * ListRules. */ public void setRuleId(String ruleId) { this.ruleId = ruleId; } /** *

* A unique identifier for a Rule. You use RuleId * to get more information about a Rule (see GetRule), * update a Rule (see UpdateRule), insert a * Rule into a WebACL or delete a one from a * WebACL (see UpdateWebACL), or delete a * Rule from AWS WAF (see DeleteRule). *

*

* RuleId is returned by CreateRule and by * ListRules. *

* * @return A unique identifier for a Rule. You use * RuleId to get more information about a * Rule (see GetRule), update a * Rule (see UpdateRule), insert a * Rule into a WebACL or delete a one from * a WebACL (see UpdateWebACL), or delete a * Rule from AWS WAF (see DeleteRule).

*

* RuleId is returned by CreateRule and by * ListRules. */ public String getRuleId() { return this.ruleId; } /** *

* A unique identifier for a Rule. You use RuleId * to get more information about a Rule (see GetRule), * update a Rule (see UpdateRule), insert a * Rule into a WebACL or delete a one from a * WebACL (see UpdateWebACL), or delete a * Rule from AWS WAF (see DeleteRule). *

*

* RuleId is returned by CreateRule and by * ListRules. *

* * @param ruleId * A unique identifier for a Rule. You use * RuleId to get more information about a * Rule (see GetRule), update a Rule * (see UpdateRule), insert a Rule into a * WebACL or delete a one from a WebACL * (see UpdateWebACL), or delete a Rule from AWS * WAF (see DeleteRule).

*

* RuleId is returned by CreateRule and by * ListRules. * @return Returns a reference to this object so that method calls can be * chained together. */ public Rule withRuleId(String ruleId) { setRuleId(ruleId); return this; } /** *

* The friendly name or description for the Rule. You can't * change the name of a Rule after you create it. *

* * @param name * The friendly name or description for the Rule. You * can't change the name of a Rule after you create it. */ public void setName(String name) { this.name = name; } /** *

* The friendly name or description for the Rule. You can't * change the name of a Rule after you create it. *

* * @return The friendly name or description for the Rule. You * can't change the name of a Rule after you create it. */ public String getName() { return this.name; } /** *

* The friendly name or description for the Rule. You can't * change the name of a Rule after you create it. *

* * @param name * The friendly name or description for the Rule. You * can't change the name of a Rule after you create it. * @return Returns a reference to this object so that method calls can be * chained together. */ public Rule withName(String name) { setName(name); return this; } /** * @param metricName */ public void setMetricName(String metricName) { this.metricName = metricName; } /** * @return */ public String getMetricName() { return this.metricName; } /** * @param metricName * @return Returns a reference to this object so that method calls can be * chained together. */ public Rule withMetricName(String metricName) { setMetricName(metricName); return this; } /** *

* The Predicates object contains one Predicate * element for each ByteMatchSet, IPSet, or * SqlInjectionMatchSet object that you want to include in a * Rule. *

* * @return The Predicates object contains one * Predicate element for each ByteMatchSet, * IPSet, or SqlInjectionMatchSet object that you want * to include in a Rule. */ public java.util.List getPredicates() { return predicates; } /** *

* The Predicates object contains one Predicate * element for each ByteMatchSet, IPSet, or * SqlInjectionMatchSet object that you want to include in a * Rule. *

* * @param predicates * The Predicates object contains one * Predicate element for each ByteMatchSet, * IPSet, or SqlInjectionMatchSet object that you want * to include in a Rule. */ public void setPredicates(java.util.Collection predicates) { if (predicates == null) { this.predicates = null; return; } this.predicates = new java.util.ArrayList(predicates); } /** *

* The Predicates object contains one Predicate * element for each ByteMatchSet, IPSet, or * SqlInjectionMatchSet object that you want to include in a * Rule. *

*

* NOTE: This method appends the values to the existing list (if * any). Use {@link #setPredicates(java.util.Collection)} or * {@link #withPredicates(java.util.Collection)} if you want to override the * existing values. *

* * @param predicates * The Predicates object contains one * Predicate element for each ByteMatchSet, * IPSet, or SqlInjectionMatchSet object that you want * to include in a Rule. * @return Returns a reference to this object so that method calls can be * chained together. */ public Rule withPredicates(Predicate... predicates) { if (this.predicates == null) { setPredicates(new java.util.ArrayList(predicates.length)); } for (Predicate ele : predicates) { this.predicates.add(ele); } return this; } /** *

* The Predicates object contains one Predicate * element for each ByteMatchSet, IPSet, or * SqlInjectionMatchSet object that you want to include in a * Rule. *

* * @param predicates * The Predicates object contains one * Predicate element for each ByteMatchSet, * IPSet, or SqlInjectionMatchSet object that you want * to include in a Rule. * @return Returns a reference to this object so that method calls can be * chained together. */ public Rule withPredicates(java.util.Collection predicates) { setPredicates(predicates); return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getRuleId() != null) sb.append("RuleId: " + getRuleId() + ","); if (getName() != null) sb.append("Name: " + getName() + ","); if (getMetricName() != null) sb.append("MetricName: " + getMetricName() + ","); if (getPredicates() != null) sb.append("Predicates: " + getPredicates()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof Rule == false) return false; Rule other = (Rule) obj; if (other.getRuleId() == null ^ this.getRuleId() == null) return false; if (other.getRuleId() != null && other.getRuleId().equals(this.getRuleId()) == false) return false; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; if (other.getMetricName() == null ^ this.getMetricName() == null) return false; if (other.getMetricName() != null && other.getMetricName().equals(this.getMetricName()) == false) return false; if (other.getPredicates() == null ^ this.getPredicates() == null) return false; if (other.getPredicates() != null && other.getPredicates().equals(this.getPredicates()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getRuleId() == null) ? 0 : getRuleId().hashCode()); hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode()); hashCode = prime * hashCode + ((getMetricName() == null) ? 0 : getMetricName().hashCode()); hashCode = prime * hashCode + ((getPredicates() == null) ? 0 : getPredicates().hashCode()); return hashCode; } @Override public Rule clone() { try { return (Rule) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException( "Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy