com.amazonaws.services.waf.model.ActivatedRule Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi Show documentation
/*
 * 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;
/**
 * 
 * The ActivatedRule object in an UpdateWebACL request
 * specifies a Rule that you want to insert or delete, the priority
 * of the Rule in the WebACL, and the action that you
 * want AWS WAF to take when a web request matches the Rule (
 * ALLOW, BLOCK, or COUNT).
 * 
 * 
 * To specify whether to insert or delete a Rule, use the
 * Action parameter in the WebACLUpdate data type.
 * 
 */
public class ActivatedRule implements Serializable, Cloneable {
    /**
     * 
     * Specifies the order in which the Rules in a
     * WebACL 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 WebACL, the values don't need to be
     * consecutive.
     * 
     */
    private Integer priority;
    /**
     * 
     * The RuleId 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;
    /**
     * 
     * Specifies the action that CloudFront or AWS WAF takes when a web request
     * matches the conditions in the Rule. Valid values for
     * Action include the following:
     * 
     * 
     * ALLOW: CloudFront responds with the requested object. 
     * BLOCK: CloudFront responds with an HTTP 403 (Forbidden)
     * status code. 
     * COUNT: AWS WAF increments a counter of requests that
     * match the conditions in the rule and then continues to inspect the web
     * request based on the remaining rules in the web ACL. 
     * 
     */
    private WafAction action;
    /**
     * 
     * Specifies the order in which the Rules in a
     * WebACL 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 WebACL, the values don't need to be
     * consecutive.
     * 
     * 
     * @param priority
     *        Specifies the order in which the Rules in a
     *        WebACL 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 WebACL, the values
     *        don't need to be consecutive.
     */
    public void setPriority(Integer priority) {
        this.priority = priority;
    }
    /**
     * 
     * Specifies the order in which the Rules in a
     * WebACL 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 WebACL, the values don't need to be
     * consecutive.
     * 
     * 
     * @return Specifies the order in which the Rules in a
     *         WebACL 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 WebACL, the
     *         values don't need to be consecutive.
     */
    public Integer getPriority() {
        return this.priority;
    }
    /**
     * 
     * Specifies the order in which the Rules in a
     * WebACL 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 WebACL, the values don't need to be
     * consecutive.
     * 
     * 
     * @param priority
     *        Specifies the order in which the Rules in a
     *        WebACL 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 WebACL, the values
     *        don't need to be consecutive.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ActivatedRule withPriority(Integer priority) {
        setPriority(priority);
        return this;
    }
    /**
     * 
     * The RuleId 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
     *        The RuleId 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;
    }
    /**
     * 
     * The RuleId 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 The RuleId 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;
    }
    /**
     * 
     * The RuleId 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
     *        The RuleId 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 ActivatedRule withRuleId(String ruleId) {
        setRuleId(ruleId);
        return this;
    }
    /**
     * 
     * Specifies the action that CloudFront or AWS WAF takes when a web request
     * matches the conditions in the Rule. Valid values for
     * Action include the following:
     * 
     * 
     * ALLOW: CloudFront responds with the requested object. 
     * BLOCK: CloudFront responds with an HTTP 403 (Forbidden)
     * status code. 
     * COUNT: AWS WAF increments a counter of requests that
     * match the conditions in the rule and then continues to inspect the web
     * request based on the remaining rules in the web ACL. 
     * 
     * 
     * @param action
     *        Specifies the action that CloudFront or AWS WAF takes when a web
     *        request matches the conditions in the Rule. Valid
     *        values for Action include the following:
     *        
     *        ALLOW: CloudFront responds with the requested
     *        object. 
     *        BLOCK: CloudFront responds with an HTTP 403
     *        (Forbidden) status code. 
     *        COUNT: AWS WAF increments a counter of requests
     *        that match the conditions in the rule and then continues to
     *        inspect the web request based on the remaining rules in the web
     *        ACL. 
     */
    public void setAction(WafAction action) {
        this.action = action;
    }
    /**
     * 
     * Specifies the action that CloudFront or AWS WAF takes when a web request
     * matches the conditions in the Rule. Valid values for
     * Action include the following:
     * 
     * 
     * ALLOW: CloudFront responds with the requested object. 
     * BLOCK: CloudFront responds with an HTTP 403 (Forbidden)
     * status code. 
     * COUNT: AWS WAF increments a counter of requests that
     * match the conditions in the rule and then continues to inspect the web
     * request based on the remaining rules in the web ACL. 
     * 
     * 
     * @return Specifies the action that CloudFront or AWS WAF takes when a web
     *         request matches the conditions in the Rule. Valid
     *         values for Action include the following:
     *         
     *         ALLOW: CloudFront responds with the requested
     *         object. 
     *         BLOCK: CloudFront responds with an HTTP 403
     *         (Forbidden) status code. 
     *         COUNT: AWS WAF increments a counter of requests
     *         that match the conditions in the rule and then continues to
     *         inspect the web request based on the remaining rules in the web
     *         ACL. 
     */
    public WafAction getAction() {
        return this.action;
    }
    /**
     * 
     * Specifies the action that CloudFront or AWS WAF takes when a web request
     * matches the conditions in the Rule. Valid values for
     * Action include the following:
     * 
     * 
     * ALLOW: CloudFront responds with the requested object. 
     * BLOCK: CloudFront responds with an HTTP 403 (Forbidden)
     * status code. 
     * COUNT: AWS WAF increments a counter of requests that
     * match the conditions in the rule and then continues to inspect the web
     * request based on the remaining rules in the web ACL. 
     * 
     * 
     * @param action
     *        Specifies the action that CloudFront or AWS WAF takes when a web
     *        request matches the conditions in the Rule. Valid
     *        values for Action include the following:
     *        
     *        ALLOW: CloudFront responds with the requested
     *        object. 
     *        BLOCK: CloudFront responds with an HTTP 403
     *        (Forbidden) status code. 
     *        COUNT: AWS WAF increments a counter of requests
     *        that match the conditions in the rule and then continues to
     *        inspect the web request based on the remaining rules in the web
     *        ACL. 
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ActivatedRule withAction(WafAction action) {
        setAction(action);
        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 (getPriority() != null)
            sb.append("Priority: " + getPriority() + ",");
        if (getRuleId() != null)
            sb.append("RuleId: " + getRuleId() + ",");
        if (getAction() != null)
            sb.append("Action: " + getAction());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof ActivatedRule == false)
            return false;
        ActivatedRule other = (ActivatedRule) obj;
        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.getAction() == null ^ this.getAction() == null)
            return false;
        if (other.getAction() != null
                && other.getAction().equals(this.getAction()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime * hashCode
                + ((getPriority() == null) ? 0 : getPriority().hashCode());
        hashCode = prime * hashCode
                + ((getRuleId() == null) ? 0 : getRuleId().hashCode());
        hashCode = prime * hashCode
                + ((getAction() == null) ? 0 : getAction().hashCode());
        return hashCode;
    }
    @Override
    public ActivatedRule clone() {
        try {
            return (ActivatedRule) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException(
                    "Got a CloneNotSupportedException from Object.clone() "
                            + "even though we're Cloneable!", e);
        }
    }
}