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

Describes the default cache behavior of an Amazon Lightsail content delivery * network (CDN) distribution.

See Also:

AWS * API Reference

*/ class CacheBehavior { public: AWS_LIGHTSAIL_API CacheBehavior(); AWS_LIGHTSAIL_API CacheBehavior(Aws::Utils::Json::JsonView jsonValue); AWS_LIGHTSAIL_API CacheBehavior& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_LIGHTSAIL_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The cache behavior of the distribution.

The following cache behaviors * can be specified:

  • cache - This option is * best for static sites. When specified, your distribution caches and serves your * entire website as static content. This behavior is ideal for websites with * static content that doesn't change depending on who views it, or for websites * that don't use cookies, headers, or query strings to personalize content.

    *
  • dont-cache - This option is best for sites * that serve a mix of static and dynamic content. When specified, your * distribution caches and serve only the content that is specified in the * distribution's CacheBehaviorPerPath parameter. This behavior is * ideal for websites or web applications that use cookies, headers, and query * strings to personalize content for individual users.

*/ inline const BehaviorEnum& GetBehavior() const{ return m_behavior; } /** *

The cache behavior of the distribution.

The following cache behaviors * can be specified:

  • cache - This option is * best for static sites. When specified, your distribution caches and serves your * entire website as static content. This behavior is ideal for websites with * static content that doesn't change depending on who views it, or for websites * that don't use cookies, headers, or query strings to personalize content.

    *
  • dont-cache - This option is best for sites * that serve a mix of static and dynamic content. When specified, your * distribution caches and serve only the content that is specified in the * distribution's CacheBehaviorPerPath parameter. This behavior is * ideal for websites or web applications that use cookies, headers, and query * strings to personalize content for individual users.

*/ inline bool BehaviorHasBeenSet() const { return m_behaviorHasBeenSet; } /** *

The cache behavior of the distribution.

The following cache behaviors * can be specified:

  • cache - This option is * best for static sites. When specified, your distribution caches and serves your * entire website as static content. This behavior is ideal for websites with * static content that doesn't change depending on who views it, or for websites * that don't use cookies, headers, or query strings to personalize content.

    *
  • dont-cache - This option is best for sites * that serve a mix of static and dynamic content. When specified, your * distribution caches and serve only the content that is specified in the * distribution's CacheBehaviorPerPath parameter. This behavior is * ideal for websites or web applications that use cookies, headers, and query * strings to personalize content for individual users.

*/ inline void SetBehavior(const BehaviorEnum& value) { m_behaviorHasBeenSet = true; m_behavior = value; } /** *

The cache behavior of the distribution.

The following cache behaviors * can be specified:

  • cache - This option is * best for static sites. When specified, your distribution caches and serves your * entire website as static content. This behavior is ideal for websites with * static content that doesn't change depending on who views it, or for websites * that don't use cookies, headers, or query strings to personalize content.

    *
  • dont-cache - This option is best for sites * that serve a mix of static and dynamic content. When specified, your * distribution caches and serve only the content that is specified in the * distribution's CacheBehaviorPerPath parameter. This behavior is * ideal for websites or web applications that use cookies, headers, and query * strings to personalize content for individual users.

*/ inline void SetBehavior(BehaviorEnum&& value) { m_behaviorHasBeenSet = true; m_behavior = std::move(value); } /** *

The cache behavior of the distribution.

The following cache behaviors * can be specified:

  • cache - This option is * best for static sites. When specified, your distribution caches and serves your * entire website as static content. This behavior is ideal for websites with * static content that doesn't change depending on who views it, or for websites * that don't use cookies, headers, or query strings to personalize content.

    *
  • dont-cache - This option is best for sites * that serve a mix of static and dynamic content. When specified, your * distribution caches and serve only the content that is specified in the * distribution's CacheBehaviorPerPath parameter. This behavior is * ideal for websites or web applications that use cookies, headers, and query * strings to personalize content for individual users.

*/ inline CacheBehavior& WithBehavior(const BehaviorEnum& value) { SetBehavior(value); return *this;} /** *

The cache behavior of the distribution.

The following cache behaviors * can be specified:

  • cache - This option is * best for static sites. When specified, your distribution caches and serves your * entire website as static content. This behavior is ideal for websites with * static content that doesn't change depending on who views it, or for websites * that don't use cookies, headers, or query strings to personalize content.

    *
  • dont-cache - This option is best for sites * that serve a mix of static and dynamic content. When specified, your * distribution caches and serve only the content that is specified in the * distribution's CacheBehaviorPerPath parameter. This behavior is * ideal for websites or web applications that use cookies, headers, and query * strings to personalize content for individual users.

*/ inline CacheBehavior& WithBehavior(BehaviorEnum&& value) { SetBehavior(std::move(value)); return *this;} private: BehaviorEnum m_behavior; bool m_behaviorHasBeenSet = false; }; } // namespace Model } // namespace Lightsail } // namespace Aws