/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the cloudfront-2020-05-31.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.CloudFront.Model { /// /// A complex type that describes how CloudFront processes requests. /// /// /// /// You must create at least as many cache behaviors (including the default cache behavior) /// as you have origins if you want CloudFront to serve objects from all of the origins. /// Each cache behavior specifies the one origin from which you want CloudFront to get /// objects. If you have two origins and only the default cache behavior, the default /// cache behavior will cause CloudFront to get objects from one of the origins, but the /// other origin is never used. /// /// /// /// For the current quota (formerly known as limit) on the number of cache behaviors that /// you can add to a distribution, see Quotas /// in the Amazon CloudFront Developer Guide. /// /// /// /// If you don't want to specify any cache behaviors, include only an empty CacheBehaviors /// element. Don't include an empty CacheBehavior element because this is /// invalid. /// /// /// /// To delete all cache behaviors in an existing distribution, update the distribution /// configuration and include only an empty CacheBehaviors element. /// /// /// /// To add, change, or remove one or more cache behaviors, update the distribution configuration /// and specify all of the cache behaviors that you want to include in the updated distribution. /// /// /// /// For more information about cache behaviors, see Cache /// Behavior Settings in the Amazon CloudFront Developer Guide. /// /// public partial class CacheBehavior { private AllowedMethods _allowedMethods; private string _cachePolicyId; private bool? _compress; private long? _defaultTTL; private string _fieldLevelEncryptionId; private ForwardedValues _forwardedValues; private FunctionAssociations _functionAssociations; private LambdaFunctionAssociations _lambdaFunctionAssociations; private long? _maxTTL; private long? _minTTL; private string _originRequestPolicyId; private string _pathPattern; private string _realtimeLogConfigArn; private string _responseHeadersPolicyId; private bool? _smoothStreaming; private string _targetOriginId; private TrustedKeyGroups _trustedKeyGroups; private TrustedSigners _trustedSigners; private ViewerProtocolPolicy _viewerProtocolPolicy; /// /// Gets and sets the property AllowedMethods. /// public AllowedMethods AllowedMethods { get { return this._allowedMethods; } set { this._allowedMethods = value; } } // Check to see if AllowedMethods property is set internal bool IsSetAllowedMethods() { return this._allowedMethods != null; } /// /// Gets and sets the property CachePolicyId. /// /// The unique identifier of the cache policy that is attached to this cache behavior. /// For more information, see Creating /// cache policies or Using /// the managed cache policies in the Amazon CloudFront Developer Guide. /// /// /// /// A CacheBehavior must include either a CachePolicyId or ForwardedValues. /// We recommend that you use a CachePolicyId. /// /// public string CachePolicyId { get { return this._cachePolicyId; } set { this._cachePolicyId = value; } } // Check to see if CachePolicyId property is set internal bool IsSetCachePolicyId() { return this._cachePolicyId != null; } /// /// Gets and sets the property Compress. /// /// Whether you want CloudFront to automatically compress certain files for this cache /// behavior. If so, specify true; if not, specify false. For more information, see Serving /// Compressed Files in the Amazon CloudFront Developer Guide. /// /// public bool Compress { get { return this._compress.GetValueOrDefault(); } set { this._compress = value; } } // Check to see if Compress property is set internal bool IsSetCompress() { return this._compress.HasValue; } /// /// Gets and sets the property DefaultTTL. /// /// This field is deprecated. We recommend that you use the DefaultTTL field /// in a cache policy instead of this field. For more information, see Creating /// cache policies or Using /// the managed cache policies in the Amazon CloudFront Developer Guide. /// /// /// /// The default amount of time that you want objects to stay in CloudFront caches before /// CloudFront forwards another request to your origin to determine whether the object /// has been updated. The value that you specify applies only when your origin does not /// add HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, /// and Expires to objects. For more information, see Managing /// How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront /// Developer Guide. /// /// [Obsolete("This field is deprecated. Use CachePolicy instead.")] public long DefaultTTL { get { return this._defaultTTL.GetValueOrDefault(); } set { this._defaultTTL = value; } } // Check to see if DefaultTTL property is set internal bool IsSetDefaultTTL() { return this._defaultTTL.HasValue; } /// /// Gets and sets the property FieldLevelEncryptionId. /// /// The value of ID for the field-level encryption configuration that you /// want CloudFront to use for encrypting specific fields of data for this cache behavior. /// /// public string FieldLevelEncryptionId { get { return this._fieldLevelEncryptionId; } set { this._fieldLevelEncryptionId = value; } } // Check to see if FieldLevelEncryptionId property is set internal bool IsSetFieldLevelEncryptionId() { return this._fieldLevelEncryptionId != null; } /// /// Gets and sets the property ForwardedValues. /// /// This field is deprecated. We recommend that you use a cache policy or an origin request /// policy instead of this field. For more information, see Working /// with policies in the Amazon CloudFront Developer Guide. /// /// /// /// If you want to include values in the cache key, use a cache policy. For more information, /// see Creating /// cache policies or Using /// the managed cache policies in the Amazon CloudFront Developer Guide. /// /// /// /// If you want to send values to the origin but not include them in the cache key, use /// an origin request policy. For more information, see Creating /// origin request policies or Using /// the managed origin request policies in the Amazon CloudFront Developer Guide. /// /// /// /// A CacheBehavior must include either a CachePolicyId or ForwardedValues. /// We recommend that you use a CachePolicyId. /// /// /// /// A complex type that specifies how CloudFront handles query strings, cookies, and HTTP /// headers. /// /// [Obsolete("This field is deprecated. Use CachePolicy instead.")] public ForwardedValues ForwardedValues { get { return this._forwardedValues; } set { this._forwardedValues = value; } } // Check to see if ForwardedValues property is set internal bool IsSetForwardedValues() { return this._forwardedValues != null; } /// /// Gets and sets the property FunctionAssociations. /// /// A list of CloudFront functions that are associated with this cache behavior. CloudFront /// functions must be published to the LIVE stage to associate them with /// a cache behavior. /// /// public FunctionAssociations FunctionAssociations { get { return this._functionAssociations; } set { this._functionAssociations = value; } } // Check to see if FunctionAssociations property is set internal bool IsSetFunctionAssociations() { return this._functionAssociations != null; } /// /// Gets and sets the property LambdaFunctionAssociations. /// /// A complex type that contains zero or more Lambda@Edge function associations for a /// cache behavior. /// /// public LambdaFunctionAssociations LambdaFunctionAssociations { get { return this._lambdaFunctionAssociations; } set { this._lambdaFunctionAssociations = value; } } // Check to see if LambdaFunctionAssociations property is set internal bool IsSetLambdaFunctionAssociations() { return this._lambdaFunctionAssociations != null; } /// /// Gets and sets the property MaxTTL. /// /// This field is deprecated. We recommend that you use the MaxTTL field /// in a cache policy instead of this field. For more information, see Creating /// cache policies or Using /// the managed cache policies in the Amazon CloudFront Developer Guide. /// /// /// /// The maximum amount of time that you want objects to stay in CloudFront caches before /// CloudFront forwards another request to your origin to determine whether the object /// has been updated. The value that you specify applies only when your origin adds HTTP /// headers such as Cache-Control max-age, Cache-Control s-maxage, /// and Expires to objects. For more information, see Managing /// How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront /// Developer Guide. /// /// [Obsolete("This field is deprecated. Use CachePolicy instead.")] public long MaxTTL { get { return this._maxTTL.GetValueOrDefault(); } set { this._maxTTL = value; } } // Check to see if MaxTTL property is set internal bool IsSetMaxTTL() { return this._maxTTL.HasValue; } /// /// Gets and sets the property MinTTL. /// /// This field is deprecated. We recommend that you use the MinTTL field /// in a cache policy instead of this field. For more information, see Creating /// cache policies or Using /// the managed cache policies in the Amazon CloudFront Developer Guide. /// /// /// /// The minimum amount of time that you want objects to stay in CloudFront caches before /// CloudFront forwards another request to your origin to determine whether the object /// has been updated. For more information, see /// Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon /// CloudFront Developer Guide. /// /// /// /// You must specify 0 for MinTTL if you configure CloudFront /// to forward all headers to your origin (under Headers, if you specify /// 1 for Quantity and * for Name). /// /// [Obsolete("This field is deprecated. Use CachePolicy instead.")] public long MinTTL { get { return this._minTTL.GetValueOrDefault(); } set { this._minTTL = value; } } // Check to see if MinTTL property is set internal bool IsSetMinTTL() { return this._minTTL.HasValue; } /// /// Gets and sets the property OriginRequestPolicyId. /// /// The unique identifier of the origin request policy that is attached to this cache /// behavior. For more information, see Creating /// origin request policies or Using /// the managed origin request policies in the Amazon CloudFront Developer Guide. /// /// public string OriginRequestPolicyId { get { return this._originRequestPolicyId; } set { this._originRequestPolicyId = value; } } // Check to see if OriginRequestPolicyId property is set internal bool IsSetOriginRequestPolicyId() { return this._originRequestPolicyId != null; } /// /// Gets and sets the property PathPattern. /// /// The pattern (for example, images/*.jpg) that specifies which requests /// to apply the behavior to. When CloudFront receives a viewer request, the requested /// path is compared with path patterns in the order in which cache behaviors are listed /// in the distribution. /// /// /// /// You can optionally include a slash (/) at the beginning of the path pattern. /// For example, /images/*.jpg. CloudFront behavior is the same with or without /// the leading /. /// /// /// /// The path pattern for the default cache behavior is * and cannot be changed. /// If the request for an object does not match the path pattern for any cache behaviors, /// CloudFront applies the behavior in the default cache behavior. /// /// /// /// For more information, see Path /// Pattern in the Amazon CloudFront Developer Guide. /// /// [AWSProperty(Required=true)] public string PathPattern { get { return this._pathPattern; } set { this._pathPattern = value; } } // Check to see if PathPattern property is set internal bool IsSetPathPattern() { return this._pathPattern != null; } /// /// Gets and sets the property RealtimeLogConfigArn. /// /// The Amazon Resource Name (ARN) of the real-time log configuration that is attached /// to this cache behavior. For more information, see Real-time /// logs in the Amazon CloudFront Developer Guide. /// /// public string RealtimeLogConfigArn { get { return this._realtimeLogConfigArn; } set { this._realtimeLogConfigArn = value; } } // Check to see if RealtimeLogConfigArn property is set internal bool IsSetRealtimeLogConfigArn() { return this._realtimeLogConfigArn != null; } /// /// Gets and sets the property ResponseHeadersPolicyId. /// /// The identifier for a response headers policy. /// /// public string ResponseHeadersPolicyId { get { return this._responseHeadersPolicyId; } set { this._responseHeadersPolicyId = value; } } // Check to see if ResponseHeadersPolicyId property is set internal bool IsSetResponseHeadersPolicyId() { return this._responseHeadersPolicyId != null; } /// /// Gets and sets the property SmoothStreaming. /// /// Indicates whether you want to distribute media files in the Microsoft Smooth Streaming /// format using the origin that is associated with this cache behavior. If so, specify /// true; if not, specify false. If you specify true /// for SmoothStreaming, you can still distribute other content using this /// cache behavior if the content matches the value of PathPattern. /// /// public bool SmoothStreaming { get { return this._smoothStreaming.GetValueOrDefault(); } set { this._smoothStreaming = value; } } // Check to see if SmoothStreaming property is set internal bool IsSetSmoothStreaming() { return this._smoothStreaming.HasValue; } /// /// Gets and sets the property TargetOriginId. /// /// The value of ID for the origin that you want CloudFront to route requests /// to when they match this cache behavior. /// /// [AWSProperty(Required=true)] public string TargetOriginId { get { return this._targetOriginId; } set { this._targetOriginId = value; } } // Check to see if TargetOriginId property is set internal bool IsSetTargetOriginId() { return this._targetOriginId != null; } /// /// Gets and sets the property TrustedKeyGroups. /// /// A list of key groups that CloudFront can use to validate signed URLs or signed cookies. /// /// /// /// When a cache behavior contains trusted key groups, CloudFront requires signed URLs /// or signed cookies for all requests that match the cache behavior. The URLs or cookies /// must be signed with a private key whose corresponding public key is in the key group. /// The signed URL or cookie contains information about which public key CloudFront should /// use to verify the signature. For more information, see Serving /// private content in the Amazon CloudFront Developer Guide. /// /// public TrustedKeyGroups TrustedKeyGroups { get { return this._trustedKeyGroups; } set { this._trustedKeyGroups = value; } } // Check to see if TrustedKeyGroups property is set internal bool IsSetTrustedKeyGroups() { return this._trustedKeyGroups != null; } /// /// Gets and sets the property TrustedSigners. /// /// We recommend using TrustedKeyGroups instead of TrustedSigners. /// /// /// /// A list of Amazon Web Services account IDs whose public keys CloudFront can use to /// validate signed URLs or signed cookies. /// /// /// /// When a cache behavior contains trusted signers, CloudFront requires signed URLs or /// signed cookies for all requests that match the cache behavior. The URLs or cookies /// must be signed with the private key of a CloudFront key pair in the trusted signer's /// Amazon Web Services account. The signed URL or cookie contains information about which /// public key CloudFront should use to verify the signature. For more information, see /// Serving /// private content in the Amazon CloudFront Developer Guide. /// /// public TrustedSigners TrustedSigners { get { return this._trustedSigners; } set { this._trustedSigners = value; } } // Check to see if TrustedSigners property is set internal bool IsSetTrustedSigners() { return this._trustedSigners != null; } /// /// Gets and sets the property ViewerProtocolPolicy. /// /// The protocol that viewers can use to access the files in the origin specified by TargetOriginId /// when a request matches the path pattern in PathPattern. You can specify /// the following options: /// /// /// /// For more information about requiring the HTTPS protocol, see Requiring /// HTTPS Between Viewers and CloudFront in the Amazon CloudFront Developer Guide. /// /// /// /// The only way to guarantee that viewers retrieve an object that was fetched from the /// origin using HTTPS is never to use any other protocol to fetch the object. If you /// have recently changed from HTTP to HTTPS, we recommend that you clear your objects' /// cache because cached objects are protocol agnostic. That means that an edge location /// will return an object from the cache regardless of whether the current request protocol /// matches the protocol used previously. For more information, see Managing /// Cache Expiration in the Amazon CloudFront Developer Guide. /// /// /// [AWSProperty(Required=true)] public ViewerProtocolPolicy ViewerProtocolPolicy { get { return this._viewerProtocolPolicy; } set { this._viewerProtocolPolicy = value; } } // Check to see if ViewerProtocolPolicy property is set internal bool IsSetViewerProtocolPolicy() { return this._viewerProtocolPolicy != null; } } }