/* * Copyright 2012-2017 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.cloudfront.model; import java.io.Serializable; import javax.annotation.Generated; /** * <p> * A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. * For more information about forwarding cookies to the origin, see <a * href="http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html">How CloudFront Forwards, * Caches, and Logs Cookies</a> in the <i>Amazon CloudFront Developer Guide</i>. * </p> * * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CookiePreference" target="_top">AWS API * Documentation</a> */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CookiePreference implements Serializable, Cloneable { /** * <p> * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies * specified in the <code>WhitelistedNames</code> complex type. * </p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify * none for the <code>Forward</code> element. * </p> */ private String forward; /** * <p> * Required if you specify <code>whitelist</code> for the value of <code>Forward:</code>. A complex type that * specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if * you want to forward selected cookies, the names of those cookies. * </p> * <p> * If you specify <code>all</code> or none for the value of <code>Forward</code>, omit <code>WhitelistedNames</code> * . If you change the value of <code>Forward</code> from <code>whitelist</code> to all or none and you don't delete * the <code>WhitelistedNames</code> element and its child elements, CloudFront deletes them automatically. * </p> * <p> * For the current limit on the number of cookie names that you can whitelist for each cache behavior, see <a * href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront">Amazon CloudFront * Limits</a> in the <i>AWS General Reference</i>. * </p> */ private CookieNames whitelistedNames; /** * <p> * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies * specified in the <code>WhitelistedNames</code> complex type. * </p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify * none for the <code>Forward</code> element. * </p> * * @param forward * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of * cookies specified in the <code>WhitelistedNames</code> complex type.</p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, * specify none for the <code>Forward</code> element. * @see ItemSelection */ public void setForward(String forward) { this.forward = forward; } /** * <p> * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies * specified in the <code>WhitelistedNames</code> complex type. * </p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify * none for the <code>Forward</code> element. * </p> * * @return Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of * cookies specified in the <code>WhitelistedNames</code> complex type.</p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, * specify none for the <code>Forward</code> element. * @see ItemSelection */ public String getForward() { return this.forward; } /** * <p> * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies * specified in the <code>WhitelistedNames</code> complex type. * </p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify * none for the <code>Forward</code> element. * </p> * * @param forward * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of * cookies specified in the <code>WhitelistedNames</code> complex type.</p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, * specify none for the <code>Forward</code> element. * @return Returns a reference to this object so that method calls can be chained together. * @see ItemSelection */ public CookiePreference withForward(String forward) { setForward(forward); return this; } /** * <p> * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies * specified in the <code>WhitelistedNames</code> complex type. * </p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify * none for the <code>Forward</code> element. * </p> * * @param forward * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of * cookies specified in the <code>WhitelistedNames</code> complex type.</p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, * specify none for the <code>Forward</code> element. * @see ItemSelection */ public void setForward(ItemSelection forward) { this.forward = forward.toString(); } /** * <p> * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies * specified in the <code>WhitelistedNames</code> complex type. * </p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify * none for the <code>Forward</code> element. * </p> * * @param forward * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of * cookies specified in the <code>WhitelistedNames</code> complex type.</p> * <p> * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, * specify none for the <code>Forward</code> element. * @return Returns a reference to this object so that method calls can be chained together. * @see ItemSelection */ public CookiePreference withForward(ItemSelection forward) { setForward(forward); return this; } /** * <p> * Required if you specify <code>whitelist</code> for the value of <code>Forward:</code>. A complex type that * specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if * you want to forward selected cookies, the names of those cookies. * </p> * <p> * If you specify <code>all</code> or none for the value of <code>Forward</code>, omit <code>WhitelistedNames</code> * . If you change the value of <code>Forward</code> from <code>whitelist</code> to all or none and you don't delete * the <code>WhitelistedNames</code> element and its child elements, CloudFront deletes them automatically. * </p> * <p> * For the current limit on the number of cookie names that you can whitelist for each cache behavior, see <a * href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront">Amazon CloudFront * Limits</a> in the <i>AWS General Reference</i>. * </p> * * @param whitelistedNames * Required if you specify <code>whitelist</code> for the value of <code>Forward:</code>. A complex type that * specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior * and, if you want to forward selected cookies, the names of those cookies.</p> * <p> * If you specify <code>all</code> or none for the value of <code>Forward</code>, omit * <code>WhitelistedNames</code>. If you change the value of <code>Forward</code> from <code>whitelist</code> * to all or none and you don't delete the <code>WhitelistedNames</code> element and its child elements, * CloudFront deletes them automatically. * </p> * <p> * For the current limit on the number of cookie names that you can whitelist for each cache behavior, see <a * href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront">Amazon * CloudFront Limits</a> in the <i>AWS General Reference</i>. */ public void setWhitelistedNames(CookieNames whitelistedNames) { this.whitelistedNames = whitelistedNames; } /** * <p> * Required if you specify <code>whitelist</code> for the value of <code>Forward:</code>. A complex type that * specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if * you want to forward selected cookies, the names of those cookies. * </p> * <p> * If you specify <code>all</code> or none for the value of <code>Forward</code>, omit <code>WhitelistedNames</code> * . If you change the value of <code>Forward</code> from <code>whitelist</code> to all or none and you don't delete * the <code>WhitelistedNames</code> element and its child elements, CloudFront deletes them automatically. * </p> * <p> * For the current limit on the number of cookie names that you can whitelist for each cache behavior, see <a * href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront">Amazon CloudFront * Limits</a> in the <i>AWS General Reference</i>. * </p> * * @return Required if you specify <code>whitelist</code> for the value of <code>Forward:</code>. A complex type * that specifies how many different cookies you want CloudFront to forward to the origin for this cache * behavior and, if you want to forward selected cookies, the names of those cookies.</p> * <p> * If you specify <code>all</code> or none for the value of <code>Forward</code>, omit * <code>WhitelistedNames</code>. If you change the value of <code>Forward</code> from * <code>whitelist</code> to all or none and you don't delete the <code>WhitelistedNames</code> element and * its child elements, CloudFront deletes them automatically. * </p> * <p> * For the current limit on the number of cookie names that you can whitelist for each cache behavior, see * <a href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront">Amazon * CloudFront Limits</a> in the <i>AWS General Reference</i>. */ public CookieNames getWhitelistedNames() { return this.whitelistedNames; } /** * <p> * Required if you specify <code>whitelist</code> for the value of <code>Forward:</code>. A complex type that * specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if * you want to forward selected cookies, the names of those cookies. * </p> * <p> * If you specify <code>all</code> or none for the value of <code>Forward</code>, omit <code>WhitelistedNames</code> * . If you change the value of <code>Forward</code> from <code>whitelist</code> to all or none and you don't delete * the <code>WhitelistedNames</code> element and its child elements, CloudFront deletes them automatically. * </p> * <p> * For the current limit on the number of cookie names that you can whitelist for each cache behavior, see <a * href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront">Amazon CloudFront * Limits</a> in the <i>AWS General Reference</i>. * </p> * * @param whitelistedNames * Required if you specify <code>whitelist</code> for the value of <code>Forward:</code>. A complex type that * specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior * and, if you want to forward selected cookies, the names of those cookies.</p> * <p> * If you specify <code>all</code> or none for the value of <code>Forward</code>, omit * <code>WhitelistedNames</code>. If you change the value of <code>Forward</code> from <code>whitelist</code> * to all or none and you don't delete the <code>WhitelistedNames</code> element and its child elements, * CloudFront deletes them automatically. * </p> * <p> * For the current limit on the number of cookie names that you can whitelist for each cache behavior, see <a * href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront">Amazon * CloudFront Limits</a> in the <i>AWS General Reference</i>. * @return Returns a reference to this object so that method calls can be chained together. */ public CookiePreference withWhitelistedNames(CookieNames whitelistedNames) { setWhitelistedNames(whitelistedNames); 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 (getForward() != null) sb.append("Forward: ").append(getForward()).append(","); if (getWhitelistedNames() != null) sb.append("WhitelistedNames: ").append(getWhitelistedNames()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CookiePreference == false) return false; CookiePreference other = (CookiePreference) obj; if (other.getForward() == null ^ this.getForward() == null) return false; if (other.getForward() != null && other.getForward().equals(this.getForward()) == false) return false; if (other.getWhitelistedNames() == null ^ this.getWhitelistedNames() == null) return false; if (other.getWhitelistedNames() != null && other.getWhitelistedNames().equals(this.getWhitelistedNames()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getForward() == null) ? 0 : getForward().hashCode()); hashCode = prime * hashCode + ((getWhitelistedNames() == null) ? 0 : getWhitelistedNames().hashCode()); return hashCode; } @Override public CookiePreference clone() { try { return (CookiePreference) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }