363 lines
17 KiB
C++
363 lines
17 KiB
C++
/**
|
||
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||
* SPDX-License-Identifier: Apache-2.0.
|
||
*/
|
||
|
||
#pragma once
|
||
#include <aws/cloudfront/CloudFront_EXPORTS.h>
|
||
#include <aws/core/utils/memory/stl/AWSString.h>
|
||
#include <aws/cloudfront/model/ParametersInCacheKeyAndForwardedToOrigin.h>
|
||
#include <utility>
|
||
|
||
namespace Aws
|
||
{
|
||
namespace Utils
|
||
{
|
||
namespace Xml
|
||
{
|
||
class XmlNode;
|
||
} // namespace Xml
|
||
} // namespace Utils
|
||
namespace CloudFront
|
||
{
|
||
namespace Model
|
||
{
|
||
|
||
/**
|
||
* <p>A cache policy configuration.</p> <p>This configuration determines the
|
||
* following:</p> <ul> <li> <p>The values that CloudFront includes in the cache
|
||
* key. These values can include HTTP headers, cookies, and URL query strings.
|
||
* CloudFront uses the cache key to find an object in its cache that it can return
|
||
* to the viewer.</p> </li> <li> <p>The default, minimum, and maximum time to live
|
||
* (TTL) values that you want objects to stay in the CloudFront cache.</p> </li>
|
||
* </ul> <p>The headers, cookies, and query strings that are included in the cache
|
||
* key are automatically included in requests that CloudFront sends to the origin.
|
||
* CloudFront sends a request when it can’t find a valid object in its cache that
|
||
* matches the request’s cache key. If you want to send values to the origin but
|
||
* <i>not</i> include them in the cache key, use
|
||
* <code>OriginRequestPolicy</code>.</p><p><h3>See Also:</h3> <a
|
||
* href="http://docs.aws.amazon.com/goto/WebAPI/cloudfront-2020-05-31/CachePolicyConfig">AWS
|
||
* API Reference</a></p>
|
||
*/
|
||
class AWS_CLOUDFRONT_API CachePolicyConfig
|
||
{
|
||
public:
|
||
CachePolicyConfig();
|
||
CachePolicyConfig(const Aws::Utils::Xml::XmlNode& xmlNode);
|
||
CachePolicyConfig& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
|
||
|
||
void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const;
|
||
|
||
|
||
/**
|
||
* <p>A comment to describe the cache policy.</p>
|
||
*/
|
||
inline const Aws::String& GetComment() const{ return m_comment; }
|
||
|
||
/**
|
||
* <p>A comment to describe the cache policy.</p>
|
||
*/
|
||
inline bool CommentHasBeenSet() const { return m_commentHasBeenSet; }
|
||
|
||
/**
|
||
* <p>A comment to describe the cache policy.</p>
|
||
*/
|
||
inline void SetComment(const Aws::String& value) { m_commentHasBeenSet = true; m_comment = value; }
|
||
|
||
/**
|
||
* <p>A comment to describe the cache policy.</p>
|
||
*/
|
||
inline void SetComment(Aws::String&& value) { m_commentHasBeenSet = true; m_comment = std::move(value); }
|
||
|
||
/**
|
||
* <p>A comment to describe the cache policy.</p>
|
||
*/
|
||
inline void SetComment(const char* value) { m_commentHasBeenSet = true; m_comment.assign(value); }
|
||
|
||
/**
|
||
* <p>A comment to describe the cache policy.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithComment(const Aws::String& value) { SetComment(value); return *this;}
|
||
|
||
/**
|
||
* <p>A comment to describe the cache policy.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithComment(Aws::String&& value) { SetComment(std::move(value)); return *this;}
|
||
|
||
/**
|
||
* <p>A comment to describe the cache policy.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithComment(const char* value) { SetComment(value); return *this;}
|
||
|
||
|
||
/**
|
||
* <p>A unique name to identify the cache policy.</p>
|
||
*/
|
||
inline const Aws::String& GetName() const{ return m_name; }
|
||
|
||
/**
|
||
* <p>A unique name to identify the cache policy.</p>
|
||
*/
|
||
inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
|
||
|
||
/**
|
||
* <p>A unique name to identify the cache policy.</p>
|
||
*/
|
||
inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
|
||
|
||
/**
|
||
* <p>A unique name to identify the cache policy.</p>
|
||
*/
|
||
inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
|
||
|
||
/**
|
||
* <p>A unique name to identify the cache policy.</p>
|
||
*/
|
||
inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
|
||
|
||
/**
|
||
* <p>A unique name to identify the cache policy.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithName(const Aws::String& value) { SetName(value); return *this;}
|
||
|
||
/**
|
||
* <p>A unique name to identify the cache policy.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
|
||
|
||
/**
|
||
* <p>A unique name to identify the cache policy.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithName(const char* value) { SetName(value); return *this;}
|
||
|
||
|
||
/**
|
||
* <p>The default amount of time, in seconds, that you want objects to stay in the
|
||
* CloudFront cache before CloudFront sends another request to the origin to see if
|
||
* the object has been updated. CloudFront uses this value as the object’s time to
|
||
* live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code>
|
||
* or <code>Expires</code> headers with the object. For more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p> <p>The default value for this field is 86400
|
||
* seconds (one day). If the value of <code>MinTTL</code> is more than 86400
|
||
* seconds, then the default value for this field is the same as the value of
|
||
* <code>MinTTL</code>.</p>
|
||
*/
|
||
inline long long GetDefaultTTL() const{ return m_defaultTTL; }
|
||
|
||
/**
|
||
* <p>The default amount of time, in seconds, that you want objects to stay in the
|
||
* CloudFront cache before CloudFront sends another request to the origin to see if
|
||
* the object has been updated. CloudFront uses this value as the object’s time to
|
||
* live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code>
|
||
* or <code>Expires</code> headers with the object. For more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p> <p>The default value for this field is 86400
|
||
* seconds (one day). If the value of <code>MinTTL</code> is more than 86400
|
||
* seconds, then the default value for this field is the same as the value of
|
||
* <code>MinTTL</code>.</p>
|
||
*/
|
||
inline bool DefaultTTLHasBeenSet() const { return m_defaultTTLHasBeenSet; }
|
||
|
||
/**
|
||
* <p>The default amount of time, in seconds, that you want objects to stay in the
|
||
* CloudFront cache before CloudFront sends another request to the origin to see if
|
||
* the object has been updated. CloudFront uses this value as the object’s time to
|
||
* live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code>
|
||
* or <code>Expires</code> headers with the object. For more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p> <p>The default value for this field is 86400
|
||
* seconds (one day). If the value of <code>MinTTL</code> is more than 86400
|
||
* seconds, then the default value for this field is the same as the value of
|
||
* <code>MinTTL</code>.</p>
|
||
*/
|
||
inline void SetDefaultTTL(long long value) { m_defaultTTLHasBeenSet = true; m_defaultTTL = value; }
|
||
|
||
/**
|
||
* <p>The default amount of time, in seconds, that you want objects to stay in the
|
||
* CloudFront cache before CloudFront sends another request to the origin to see if
|
||
* the object has been updated. CloudFront uses this value as the object’s time to
|
||
* live (TTL) only when the origin does <i>not</i> send <code>Cache-Control</code>
|
||
* or <code>Expires</code> headers with the object. For more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p> <p>The default value for this field is 86400
|
||
* seconds (one day). If the value of <code>MinTTL</code> is more than 86400
|
||
* seconds, then the default value for this field is the same as the value of
|
||
* <code>MinTTL</code>.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithDefaultTTL(long long value) { SetDefaultTTL(value); return *this;}
|
||
|
||
|
||
/**
|
||
* <p>The maximum amount of time, in seconds, that objects stay in the CloudFront
|
||
* cache before CloudFront sends another request to the origin to see if the object
|
||
* has been updated. CloudFront uses this value only when the origin sends
|
||
* <code>Cache-Control</code> or <code>Expires</code> headers with the object. For
|
||
* more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p> <p>The default value for this field is
|
||
* 31536000 seconds (one year). If the value of <code>MinTTL</code> or
|
||
* <code>DefaultTTL</code> is more than 31536000 seconds, then the default value
|
||
* for this field is the same as the value of <code>DefaultTTL</code>.</p>
|
||
*/
|
||
inline long long GetMaxTTL() const{ return m_maxTTL; }
|
||
|
||
/**
|
||
* <p>The maximum amount of time, in seconds, that objects stay in the CloudFront
|
||
* cache before CloudFront sends another request to the origin to see if the object
|
||
* has been updated. CloudFront uses this value only when the origin sends
|
||
* <code>Cache-Control</code> or <code>Expires</code> headers with the object. For
|
||
* more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p> <p>The default value for this field is
|
||
* 31536000 seconds (one year). If the value of <code>MinTTL</code> or
|
||
* <code>DefaultTTL</code> is more than 31536000 seconds, then the default value
|
||
* for this field is the same as the value of <code>DefaultTTL</code>.</p>
|
||
*/
|
||
inline bool MaxTTLHasBeenSet() const { return m_maxTTLHasBeenSet; }
|
||
|
||
/**
|
||
* <p>The maximum amount of time, in seconds, that objects stay in the CloudFront
|
||
* cache before CloudFront sends another request to the origin to see if the object
|
||
* has been updated. CloudFront uses this value only when the origin sends
|
||
* <code>Cache-Control</code> or <code>Expires</code> headers with the object. For
|
||
* more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p> <p>The default value for this field is
|
||
* 31536000 seconds (one year). If the value of <code>MinTTL</code> or
|
||
* <code>DefaultTTL</code> is more than 31536000 seconds, then the default value
|
||
* for this field is the same as the value of <code>DefaultTTL</code>.</p>
|
||
*/
|
||
inline void SetMaxTTL(long long value) { m_maxTTLHasBeenSet = true; m_maxTTL = value; }
|
||
|
||
/**
|
||
* <p>The maximum amount of time, in seconds, that objects stay in the CloudFront
|
||
* cache before CloudFront sends another request to the origin to see if the object
|
||
* has been updated. CloudFront uses this value only when the origin sends
|
||
* <code>Cache-Control</code> or <code>Expires</code> headers with the object. For
|
||
* more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p> <p>The default value for this field is
|
||
* 31536000 seconds (one year). If the value of <code>MinTTL</code> or
|
||
* <code>DefaultTTL</code> is more than 31536000 seconds, then the default value
|
||
* for this field is the same as the value of <code>DefaultTTL</code>.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithMaxTTL(long long value) { SetMaxTTL(value); return *this;}
|
||
|
||
|
||
/**
|
||
* <p>The minimum amount of time, in seconds, that you want objects to stay in the
|
||
* CloudFront cache before CloudFront sends another request to the origin to see if
|
||
* the object has been updated. For more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p>
|
||
*/
|
||
inline long long GetMinTTL() const{ return m_minTTL; }
|
||
|
||
/**
|
||
* <p>The minimum amount of time, in seconds, that you want objects to stay in the
|
||
* CloudFront cache before CloudFront sends another request to the origin to see if
|
||
* the object has been updated. For more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p>
|
||
*/
|
||
inline bool MinTTLHasBeenSet() const { return m_minTTLHasBeenSet; }
|
||
|
||
/**
|
||
* <p>The minimum amount of time, in seconds, that you want objects to stay in the
|
||
* CloudFront cache before CloudFront sends another request to the origin to see if
|
||
* the object has been updated. For more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p>
|
||
*/
|
||
inline void SetMinTTL(long long value) { m_minTTLHasBeenSet = true; m_minTTL = value; }
|
||
|
||
/**
|
||
* <p>The minimum amount of time, in seconds, that you want objects to stay in the
|
||
* CloudFront cache before CloudFront sends another request to the origin to see if
|
||
* the object has been updated. For more information, see <a
|
||
* href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html">Managing
|
||
* How Long Content Stays in an Edge Cache (Expiration)</a> in the <i>Amazon
|
||
* CloudFront Developer Guide</i>.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithMinTTL(long long value) { SetMinTTL(value); return *this;}
|
||
|
||
|
||
/**
|
||
* <p>The HTTP headers, cookies, and URL query strings to include in the cache key.
|
||
* The values included in the cache key are automatically included in requests that
|
||
* CloudFront sends to the origin.</p>
|
||
*/
|
||
inline const ParametersInCacheKeyAndForwardedToOrigin& GetParametersInCacheKeyAndForwardedToOrigin() const{ return m_parametersInCacheKeyAndForwardedToOrigin; }
|
||
|
||
/**
|
||
* <p>The HTTP headers, cookies, and URL query strings to include in the cache key.
|
||
* The values included in the cache key are automatically included in requests that
|
||
* CloudFront sends to the origin.</p>
|
||
*/
|
||
inline bool ParametersInCacheKeyAndForwardedToOriginHasBeenSet() const { return m_parametersInCacheKeyAndForwardedToOriginHasBeenSet; }
|
||
|
||
/**
|
||
* <p>The HTTP headers, cookies, and URL query strings to include in the cache key.
|
||
* The values included in the cache key are automatically included in requests that
|
||
* CloudFront sends to the origin.</p>
|
||
*/
|
||
inline void SetParametersInCacheKeyAndForwardedToOrigin(const ParametersInCacheKeyAndForwardedToOrigin& value) { m_parametersInCacheKeyAndForwardedToOriginHasBeenSet = true; m_parametersInCacheKeyAndForwardedToOrigin = value; }
|
||
|
||
/**
|
||
* <p>The HTTP headers, cookies, and URL query strings to include in the cache key.
|
||
* The values included in the cache key are automatically included in requests that
|
||
* CloudFront sends to the origin.</p>
|
||
*/
|
||
inline void SetParametersInCacheKeyAndForwardedToOrigin(ParametersInCacheKeyAndForwardedToOrigin&& value) { m_parametersInCacheKeyAndForwardedToOriginHasBeenSet = true; m_parametersInCacheKeyAndForwardedToOrigin = std::move(value); }
|
||
|
||
/**
|
||
* <p>The HTTP headers, cookies, and URL query strings to include in the cache key.
|
||
* The values included in the cache key are automatically included in requests that
|
||
* CloudFront sends to the origin.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithParametersInCacheKeyAndForwardedToOrigin(const ParametersInCacheKeyAndForwardedToOrigin& value) { SetParametersInCacheKeyAndForwardedToOrigin(value); return *this;}
|
||
|
||
/**
|
||
* <p>The HTTP headers, cookies, and URL query strings to include in the cache key.
|
||
* The values included in the cache key are automatically included in requests that
|
||
* CloudFront sends to the origin.</p>
|
||
*/
|
||
inline CachePolicyConfig& WithParametersInCacheKeyAndForwardedToOrigin(ParametersInCacheKeyAndForwardedToOrigin&& value) { SetParametersInCacheKeyAndForwardedToOrigin(std::move(value)); return *this;}
|
||
|
||
private:
|
||
|
||
Aws::String m_comment;
|
||
bool m_commentHasBeenSet;
|
||
|
||
Aws::String m_name;
|
||
bool m_nameHasBeenSet;
|
||
|
||
long long m_defaultTTL;
|
||
bool m_defaultTTLHasBeenSet;
|
||
|
||
long long m_maxTTL;
|
||
bool m_maxTTLHasBeenSet;
|
||
|
||
long long m_minTTL;
|
||
bool m_minTTLHasBeenSet;
|
||
|
||
ParametersInCacheKeyAndForwardedToOrigin m_parametersInCacheKeyAndForwardedToOrigin;
|
||
bool m_parametersInCacheKeyAndForwardedToOriginHasBeenSet;
|
||
};
|
||
|
||
} // namespace Model
|
||
} // namespace CloudFront
|
||
} // namespace Aws
|