/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace CloudFront { namespace Model { /** *

This object determines 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.

The headers, cookies, and query strings that are included * in the cache key are also included in requests that CloudFront sends to the * origin. CloudFront sends a request when it can't find an object in its cache * that matches the request's cache key. If you want to send values to the origin * but not include them in the cache key, use * OriginRequestPolicy.

See Also:

AWS * API Reference

*/ class ParametersInCacheKeyAndForwardedToOrigin { public: AWS_CLOUDFRONT_API ParametersInCacheKeyAndForwardedToOrigin(); AWS_CLOUDFRONT_API ParametersInCacheKeyAndForwardedToOrigin(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDFRONT_API ParametersInCacheKeyAndForwardedToOrigin& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDFRONT_API void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const; /** *

A flag that can affect whether the Accept-Encoding HTTP header * is included in the cache key and included in requests that CloudFront sends to * the origin.

This field is related to the * EnableAcceptEncodingBrotli field. If one or both of these fields is * true and the viewer request includes the * Accept-Encoding header, then CloudFront does the following:

*
  • Normalizes the value of the viewer's Accept-Encoding * header

  • Includes the normalized header in the cache key

    *
  • Includes the normalized header in the request to the origin, if a * request is necessary

For more information, see Compression * support in the Amazon CloudFront Developer Guide.

If you set * this value to true, and this cache behavior also has an origin * request policy attached, do not include the Accept-Encoding header * in the origin request policy. CloudFront always includes the * Accept-Encoding header in origin requests when the value of this * field is true, so including this header in an origin request policy * has no effect.

If both of these fields are false, then * CloudFront treats the Accept-Encoding header the same as any other * HTTP header in the viewer request. By default, it's not included in the cache * key and it's not included in origin requests. In this case, you can manually add * Accept-Encoding to the headers whitelist like any other HTTP * header.

*/ inline bool GetEnableAcceptEncodingGzip() const{ return m_enableAcceptEncodingGzip; } /** *

A flag that can affect whether the Accept-Encoding HTTP header * is included in the cache key and included in requests that CloudFront sends to * the origin.

This field is related to the * EnableAcceptEncodingBrotli field. If one or both of these fields is * true and the viewer request includes the * Accept-Encoding header, then CloudFront does the following:

*
  • Normalizes the value of the viewer's Accept-Encoding * header

  • Includes the normalized header in the cache key

    *
  • Includes the normalized header in the request to the origin, if a * request is necessary

For more information, see Compression * support in the Amazon CloudFront Developer Guide.

If you set * this value to true, and this cache behavior also has an origin * request policy attached, do not include the Accept-Encoding header * in the origin request policy. CloudFront always includes the * Accept-Encoding header in origin requests when the value of this * field is true, so including this header in an origin request policy * has no effect.

If both of these fields are false, then * CloudFront treats the Accept-Encoding header the same as any other * HTTP header in the viewer request. By default, it's not included in the cache * key and it's not included in origin requests. In this case, you can manually add * Accept-Encoding to the headers whitelist like any other HTTP * header.

*/ inline bool EnableAcceptEncodingGzipHasBeenSet() const { return m_enableAcceptEncodingGzipHasBeenSet; } /** *

A flag that can affect whether the Accept-Encoding HTTP header * is included in the cache key and included in requests that CloudFront sends to * the origin.

This field is related to the * EnableAcceptEncodingBrotli field. If one or both of these fields is * true and the viewer request includes the * Accept-Encoding header, then CloudFront does the following:

*
  • Normalizes the value of the viewer's Accept-Encoding * header

  • Includes the normalized header in the cache key

    *
  • Includes the normalized header in the request to the origin, if a * request is necessary

For more information, see Compression * support in the Amazon CloudFront Developer Guide.

If you set * this value to true, and this cache behavior also has an origin * request policy attached, do not include the Accept-Encoding header * in the origin request policy. CloudFront always includes the * Accept-Encoding header in origin requests when the value of this * field is true, so including this header in an origin request policy * has no effect.

If both of these fields are false, then * CloudFront treats the Accept-Encoding header the same as any other * HTTP header in the viewer request. By default, it's not included in the cache * key and it's not included in origin requests. In this case, you can manually add * Accept-Encoding to the headers whitelist like any other HTTP * header.

*/ inline void SetEnableAcceptEncodingGzip(bool value) { m_enableAcceptEncodingGzipHasBeenSet = true; m_enableAcceptEncodingGzip = value; } /** *

A flag that can affect whether the Accept-Encoding HTTP header * is included in the cache key and included in requests that CloudFront sends to * the origin.

This field is related to the * EnableAcceptEncodingBrotli field. If one or both of these fields is * true and the viewer request includes the * Accept-Encoding header, then CloudFront does the following:

*
  • Normalizes the value of the viewer's Accept-Encoding * header

  • Includes the normalized header in the cache key

    *
  • Includes the normalized header in the request to the origin, if a * request is necessary

For more information, see Compression * support in the Amazon CloudFront Developer Guide.

If you set * this value to true, and this cache behavior also has an origin * request policy attached, do not include the Accept-Encoding header * in the origin request policy. CloudFront always includes the * Accept-Encoding header in origin requests when the value of this * field is true, so including this header in an origin request policy * has no effect.

If both of these fields are false, then * CloudFront treats the Accept-Encoding header the same as any other * HTTP header in the viewer request. By default, it's not included in the cache * key and it's not included in origin requests. In this case, you can manually add * Accept-Encoding to the headers whitelist like any other HTTP * header.

*/ inline ParametersInCacheKeyAndForwardedToOrigin& WithEnableAcceptEncodingGzip(bool value) { SetEnableAcceptEncodingGzip(value); return *this;} /** *

A flag that can affect whether the Accept-Encoding HTTP header * is included in the cache key and included in requests that CloudFront sends to * the origin.

This field is related to the * EnableAcceptEncodingGzip field. If one or both of these fields is * true and the viewer request includes the * Accept-Encoding header, then CloudFront does the following:

*
  • Normalizes the value of the viewer's Accept-Encoding * header

  • Includes the normalized header in the cache key

    *
  • Includes the normalized header in the request to the origin, if a * request is necessary

For more information, see Compression * support in the Amazon CloudFront Developer Guide.

If you set * this value to true, and this cache behavior also has an origin * request policy attached, do not include the Accept-Encoding header * in the origin request policy. CloudFront always includes the * Accept-Encoding header in origin requests when the value of this * field is true, so including this header in an origin request policy * has no effect.

If both of these fields are false, then * CloudFront treats the Accept-Encoding header the same as any other * HTTP header in the viewer request. By default, it's not included in the cache * key and it's not included in origin requests. In this case, you can manually add * Accept-Encoding to the headers whitelist like any other HTTP * header.

*/ inline bool GetEnableAcceptEncodingBrotli() const{ return m_enableAcceptEncodingBrotli; } /** *

A flag that can affect whether the Accept-Encoding HTTP header * is included in the cache key and included in requests that CloudFront sends to * the origin.

This field is related to the * EnableAcceptEncodingGzip field. If one or both of these fields is * true and the viewer request includes the * Accept-Encoding header, then CloudFront does the following:

*
  • Normalizes the value of the viewer's Accept-Encoding * header

  • Includes the normalized header in the cache key

    *
  • Includes the normalized header in the request to the origin, if a * request is necessary

For more information, see Compression * support in the Amazon CloudFront Developer Guide.

If you set * this value to true, and this cache behavior also has an origin * request policy attached, do not include the Accept-Encoding header * in the origin request policy. CloudFront always includes the * Accept-Encoding header in origin requests when the value of this * field is true, so including this header in an origin request policy * has no effect.

If both of these fields are false, then * CloudFront treats the Accept-Encoding header the same as any other * HTTP header in the viewer request. By default, it's not included in the cache * key and it's not included in origin requests. In this case, you can manually add * Accept-Encoding to the headers whitelist like any other HTTP * header.

*/ inline bool EnableAcceptEncodingBrotliHasBeenSet() const { return m_enableAcceptEncodingBrotliHasBeenSet; } /** *

A flag that can affect whether the Accept-Encoding HTTP header * is included in the cache key and included in requests that CloudFront sends to * the origin.

This field is related to the * EnableAcceptEncodingGzip field. If one or both of these fields is * true and the viewer request includes the * Accept-Encoding header, then CloudFront does the following:

*
  • Normalizes the value of the viewer's Accept-Encoding * header

  • Includes the normalized header in the cache key

    *
  • Includes the normalized header in the request to the origin, if a * request is necessary

For more information, see Compression * support in the Amazon CloudFront Developer Guide.

If you set * this value to true, and this cache behavior also has an origin * request policy attached, do not include the Accept-Encoding header * in the origin request policy. CloudFront always includes the * Accept-Encoding header in origin requests when the value of this * field is true, so including this header in an origin request policy * has no effect.

If both of these fields are false, then * CloudFront treats the Accept-Encoding header the same as any other * HTTP header in the viewer request. By default, it's not included in the cache * key and it's not included in origin requests. In this case, you can manually add * Accept-Encoding to the headers whitelist like any other HTTP * header.

*/ inline void SetEnableAcceptEncodingBrotli(bool value) { m_enableAcceptEncodingBrotliHasBeenSet = true; m_enableAcceptEncodingBrotli = value; } /** *

A flag that can affect whether the Accept-Encoding HTTP header * is included in the cache key and included in requests that CloudFront sends to * the origin.

This field is related to the * EnableAcceptEncodingGzip field. If one or both of these fields is * true and the viewer request includes the * Accept-Encoding header, then CloudFront does the following:

*
  • Normalizes the value of the viewer's Accept-Encoding * header

  • Includes the normalized header in the cache key

    *
  • Includes the normalized header in the request to the origin, if a * request is necessary

For more information, see Compression * support in the Amazon CloudFront Developer Guide.

If you set * this value to true, and this cache behavior also has an origin * request policy attached, do not include the Accept-Encoding header * in the origin request policy. CloudFront always includes the * Accept-Encoding header in origin requests when the value of this * field is true, so including this header in an origin request policy * has no effect.

If both of these fields are false, then * CloudFront treats the Accept-Encoding header the same as any other * HTTP header in the viewer request. By default, it's not included in the cache * key and it's not included in origin requests. In this case, you can manually add * Accept-Encoding to the headers whitelist like any other HTTP * header.

*/ inline ParametersInCacheKeyAndForwardedToOrigin& WithEnableAcceptEncodingBrotli(bool value) { SetEnableAcceptEncodingBrotli(value); return *this;} /** *

An object that determines whether any HTTP headers (and if so, which headers) * are included in the cache key and in requests that CloudFront sends to the * origin.

*/ inline const CachePolicyHeadersConfig& GetHeadersConfig() const{ return m_headersConfig; } /** *

An object that determines whether any HTTP headers (and if so, which headers) * are included in the cache key and in requests that CloudFront sends to the * origin.

*/ inline bool HeadersConfigHasBeenSet() const { return m_headersConfigHasBeenSet; } /** *

An object that determines whether any HTTP headers (and if so, which headers) * are included in the cache key and in requests that CloudFront sends to the * origin.

*/ inline void SetHeadersConfig(const CachePolicyHeadersConfig& value) { m_headersConfigHasBeenSet = true; m_headersConfig = value; } /** *

An object that determines whether any HTTP headers (and if so, which headers) * are included in the cache key and in requests that CloudFront sends to the * origin.

*/ inline void SetHeadersConfig(CachePolicyHeadersConfig&& value) { m_headersConfigHasBeenSet = true; m_headersConfig = std::move(value); } /** *

An object that determines whether any HTTP headers (and if so, which headers) * are included in the cache key and in requests that CloudFront sends to the * origin.

*/ inline ParametersInCacheKeyAndForwardedToOrigin& WithHeadersConfig(const CachePolicyHeadersConfig& value) { SetHeadersConfig(value); return *this;} /** *

An object that determines whether any HTTP headers (and if so, which headers) * are included in the cache key and in requests that CloudFront sends to the * origin.

*/ inline ParametersInCacheKeyAndForwardedToOrigin& WithHeadersConfig(CachePolicyHeadersConfig&& value) { SetHeadersConfig(std::move(value)); return *this;} /** *

An object that determines whether any cookies in viewer requests (and if so, * which cookies) are included in the cache key and in requests that CloudFront * sends to the origin.

*/ inline const CachePolicyCookiesConfig& GetCookiesConfig() const{ return m_cookiesConfig; } /** *

An object that determines whether any cookies in viewer requests (and if so, * which cookies) are included in the cache key and in requests that CloudFront * sends to the origin.

*/ inline bool CookiesConfigHasBeenSet() const { return m_cookiesConfigHasBeenSet; } /** *

An object that determines whether any cookies in viewer requests (and if so, * which cookies) are included in the cache key and in requests that CloudFront * sends to the origin.

*/ inline void SetCookiesConfig(const CachePolicyCookiesConfig& value) { m_cookiesConfigHasBeenSet = true; m_cookiesConfig = value; } /** *

An object that determines whether any cookies in viewer requests (and if so, * which cookies) are included in the cache key and in requests that CloudFront * sends to the origin.

*/ inline void SetCookiesConfig(CachePolicyCookiesConfig&& value) { m_cookiesConfigHasBeenSet = true; m_cookiesConfig = std::move(value); } /** *

An object that determines whether any cookies in viewer requests (and if so, * which cookies) are included in the cache key and in requests that CloudFront * sends to the origin.

*/ inline ParametersInCacheKeyAndForwardedToOrigin& WithCookiesConfig(const CachePolicyCookiesConfig& value) { SetCookiesConfig(value); return *this;} /** *

An object that determines whether any cookies in viewer requests (and if so, * which cookies) are included in the cache key and in requests that CloudFront * sends to the origin.

*/ inline ParametersInCacheKeyAndForwardedToOrigin& WithCookiesConfig(CachePolicyCookiesConfig&& value) { SetCookiesConfig(std::move(value)); return *this;} /** *

An object that determines whether any URL query strings in viewer requests * (and if so, which query strings) are included in the cache key and in requests * that CloudFront sends to the origin.

*/ inline const CachePolicyQueryStringsConfig& GetQueryStringsConfig() const{ return m_queryStringsConfig; } /** *

An object that determines whether any URL query strings in viewer requests * (and if so, which query strings) are included in the cache key and in requests * that CloudFront sends to the origin.

*/ inline bool QueryStringsConfigHasBeenSet() const { return m_queryStringsConfigHasBeenSet; } /** *

An object that determines whether any URL query strings in viewer requests * (and if so, which query strings) are included in the cache key and in requests * that CloudFront sends to the origin.

*/ inline void SetQueryStringsConfig(const CachePolicyQueryStringsConfig& value) { m_queryStringsConfigHasBeenSet = true; m_queryStringsConfig = value; } /** *

An object that determines whether any URL query strings in viewer requests * (and if so, which query strings) are included in the cache key and in requests * that CloudFront sends to the origin.

*/ inline void SetQueryStringsConfig(CachePolicyQueryStringsConfig&& value) { m_queryStringsConfigHasBeenSet = true; m_queryStringsConfig = std::move(value); } /** *

An object that determines whether any URL query strings in viewer requests * (and if so, which query strings) are included in the cache key and in requests * that CloudFront sends to the origin.

*/ inline ParametersInCacheKeyAndForwardedToOrigin& WithQueryStringsConfig(const CachePolicyQueryStringsConfig& value) { SetQueryStringsConfig(value); return *this;} /** *

An object that determines whether any URL query strings in viewer requests * (and if so, which query strings) are included in the cache key and in requests * that CloudFront sends to the origin.

*/ inline ParametersInCacheKeyAndForwardedToOrigin& WithQueryStringsConfig(CachePolicyQueryStringsConfig&& value) { SetQueryStringsConfig(std::move(value)); return *this;} private: bool m_enableAcceptEncodingGzip; bool m_enableAcceptEncodingGzipHasBeenSet = false; bool m_enableAcceptEncodingBrotli; bool m_enableAcceptEncodingBrotliHasBeenSet = false; CachePolicyHeadersConfig m_headersConfig; bool m_headersConfigHasBeenSet = false; CachePolicyCookiesConfig m_cookiesConfig; bool m_cookiesConfigHasBeenSet = false; CachePolicyQueryStringsConfig m_queryStringsConfig; bool m_queryStringsConfigHasBeenSet = false; }; } // namespace Model } // namespace CloudFront } // namespace Aws