/*
* 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 the default cache behavior if you don't specify a CacheBehavior
/// element or if request URLs don't match any of the values of PathPattern
/// in CacheBehavior
elements. You must create exactly one default cache
/// behavior.
///
public partial class DefaultCacheBehavior
{
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 _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 the default cache behavior.
/// For more information, see Creating
/// cache policies or Using
/// the managed cache policies in the Amazon CloudFront Developer Guide.
///
///
///
/// A DefaultCacheBehavior
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 the default 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 DefaultCacheBehavior
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 the default
/// 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 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 use the default 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 a 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:
///
/// -
///
///
allow-all
: Viewers can use HTTP or HTTPS.
///
/// -
///
///
redirect-to-https
: If a viewer submits an HTTP request, CloudFront returns
/// an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS
/// URL. The viewer then resubmits the request using the new URL.
///
/// -
///
///
https-only
: If a viewer sends an HTTP request, CloudFront returns an
/// HTTP status code of 403 (Forbidden).
///
///
///
/// 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;
}
}
}