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

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

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2011-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