Compute V1 Client - Class CachePolicy (2.9.0)

Reference documentation and code samples for the Compute V1 Client class CachePolicy.

Message containing CachePolicy configuration for URL Map's Route Action.

Generated from protobuf message google.cloud.compute.v1.CachePolicy

Namespace

Google \ Cloud \ Compute \ V1

Methods

__construct

Constructor.

Parameters
Name Description
data array

Optional. Data for populating the Message object.

↳ cache_bypass_request_header_names string[]

Bypass the cache when the specified request headers are matched by name, e.g. Pragma or Authorization headers. Values are case-insensitive. Up to 5 header names can be specified. The cache is bypassed for all cacheMode values.

↳ cache_key_policy CachePolicyCacheKeyPolicy

The cache key configuration. If not specified, the default behavior depends on the backend type: for Backend Services, the complete request URI is used; for Backend Buckets, the request URI is used without the protocol or host, and only query parameters known to Cloud Storage are included.

↳ cache_mode string

Specifies the cache setting for all responses from this route. If not specified, Cloud CDN uses CACHE_ALL_STATIC mode. Check the CacheMode enum for the list of possible values.

↳ client_ttl Duration

Specifies a separate client (e.g. browser client) maximum TTL for cached content. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of clientTtl and defaultTtl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, clientTtl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the clientTtl and defaultTtl, and also ensures a "public" cache-control directive is present. The maximum allowed value is 31,622,400s (1 year). If not specified, Cloud CDN uses 3600s (1 hour) for CACHE_ALL_STATIC mode. Cannot exceed maxTtl. Cannot be specified when cacheMode is USE_ORIGIN_HEADERS.

↳ default_ttl Duration

Specifies the default TTL for cached content for responses that do not have an existing valid TTL (max-age or s-maxage). Setting a TTL of "0" means "always revalidate". The value of defaultTtl cannot be set to a value greater than that of maxTtl. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTtl will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year). Infrequently accessed objects may be evicted from the cache before the defined TTL. If not specified, Cloud CDN uses 3600s (1 hour) for CACHE_ALL_STATIC and FORCE_CACHE_ALL modes. Cannot be specified when cacheMode is USE_ORIGIN_HEADERS.

↳ max_ttl Duration

Specifies the maximum allowed TTL for cached content. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTtl seconds in the future will be capped at the value of maxTtl, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year). Infrequently accessed objects may be evicted from the cache before the defined TTL. If not specified, Cloud CDN uses 86400s (1 day) for CACHE_ALL_STATIC mode. Can be specified only for CACHE_ALL_STATIC cache mode.

↳ negative_caching bool

Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cacheMode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cacheMode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and overrides any caching headers. By default, Cloud CDN applies the following TTLs to these HTTP status codes: * * 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m * * 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s * * 405 (Method Not Found), 501 (Not Implemented): 60s These defaults can be overridden in negativeCachingPolicy. If not specified, Cloud CDN applies negative caching by default.

↳ negative_caching_policy array<CachePolicyNegativeCachingPolicy>

Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy. Omitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negativeCachingPolicy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists.

↳ request_coalescing bool

If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. If not specified, Cloud CDN applies request coalescing by default.

↳ serve_while_stale Duration

Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-maxage) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.

getCacheBypassRequestHeaderNames

Bypass the cache when the specified request headers are matched by name, e.g. Pragma or Authorization headers. Values are case-insensitive. Up to 5 header names can be specified. The cache is bypassed for all cacheMode values.

Returns
Type Description
Google\Protobuf\RepeatedField<string>

setCacheBypassRequestHeaderNames

Bypass the cache when the specified request headers are matched by name, e.g. Pragma or Authorization headers. Values are case-insensitive. Up to 5 header names can be specified. The cache is bypassed for all cacheMode values.

Parameter
Name Description
var string[]
Returns
Type Description
$this

getCacheKeyPolicy

The cache key configuration. If not specified, the default behavior depends on the backend type: for Backend Services, the complete request URI is used; for Backend Buckets, the request URI is used without the protocol or host, and only query parameters known to Cloud Storage are included.

Returns
Type Description
CachePolicyCacheKeyPolicy|null

hasCacheKeyPolicy

clearCacheKeyPolicy

setCacheKeyPolicy

The cache key configuration. If not specified, the default behavior depends on the backend type: for Backend Services, the complete request URI is used; for Backend Buckets, the request URI is used without the protocol or host, and only query parameters known to Cloud Storage are included.

Parameter
Name Description
var CachePolicyCacheKeyPolicy
Returns
Type Description
$this

getCacheMode

Specifies the cache setting for all responses from this route. If not specified, Cloud CDN uses CACHE_ALL_STATIC mode.

Check the CacheMode enum for the list of possible values.

Returns
Type Description
string

hasCacheMode

clearCacheMode

setCacheMode

Specifies the cache setting for all responses from this route. If not specified, Cloud CDN uses CACHE_ALL_STATIC mode.

Check the CacheMode enum for the list of possible values.

Parameter
Name Description
var string
Returns
Type Description
$this

getClientTtl

Specifies a separate client (e.g. browser client) maximum TTL for cached content. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of clientTtl and defaultTtl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, clientTtl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the clientTtl and defaultTtl, and also ensures a "public" cache-control directive is present. The maximum allowed value is 31,622,400s (1 year). If not specified, Cloud CDN uses 3600s (1 hour) for CACHE_ALL_STATIC mode.

Cannot exceed maxTtl. Cannot be specified when cacheMode is USE_ORIGIN_HEADERS.

Returns
Type Description
Duration|null

hasClientTtl

clearClientTtl

setClientTtl

Specifies a separate client (e.g. browser client) maximum TTL for cached content. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of clientTtl and defaultTtl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, clientTtl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the clientTtl and defaultTtl, and also ensures a "public" cache-control directive is present. The maximum allowed value is 31,622,400s (1 year). If not specified, Cloud CDN uses 3600s (1 hour) for CACHE_ALL_STATIC mode.

Cannot exceed maxTtl. Cannot be specified when cacheMode is USE_ORIGIN_HEADERS.

Parameter
Name Description
var Duration
Returns
Type Description
$this

getDefaultTtl

Specifies the default TTL for cached content for responses that do not have an existing valid TTL (max-age or s-maxage). Setting a TTL of "0" means "always revalidate". The value of defaultTtl cannot be set to a value greater than that of maxTtl. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTtl will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year). Infrequently accessed objects may be evicted from the cache before the defined TTL. If not specified, Cloud CDN uses 3600s (1 hour) for CACHE_ALL_STATIC and FORCE_CACHE_ALL modes. Cannot be specified when cacheMode is USE_ORIGIN_HEADERS.

Returns
Type Description
Duration|null

hasDefaultTtl

clearDefaultTtl

setDefaultTtl

Specifies the default TTL for cached content for responses that do not have an existing valid TTL (max-age or s-maxage). Setting a TTL of "0" means "always revalidate". The value of defaultTtl cannot be set to a value greater than that of maxTtl. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTtl will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year). Infrequently accessed objects may be evicted from the cache before the defined TTL. If not specified, Cloud CDN uses 3600s (1 hour) for CACHE_ALL_STATIC and FORCE_CACHE_ALL modes. Cannot be specified when cacheMode is USE_ORIGIN_HEADERS.

Parameter
Name Description
var Duration
Returns
Type Description
$this

getMaxTtl

Specifies the maximum allowed TTL for cached content. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTtl seconds in the future will be capped at the value of maxTtl, as if it were the value of an s-maxage Cache-Control directive.

Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year). Infrequently accessed objects may be evicted from the cache before the defined TTL. If not specified, Cloud CDN uses 86400s (1 day) for CACHE_ALL_STATIC mode. Can be specified only for CACHE_ALL_STATIC cache mode.

Returns
Type Description
Duration|null

hasMaxTtl

clearMaxTtl

setMaxTtl

Specifies the maximum allowed TTL for cached content. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTtl seconds in the future will be capped at the value of maxTtl, as if it were the value of an s-maxage Cache-Control directive.

Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year). Infrequently accessed objects may be evicted from the cache before the defined TTL. If not specified, Cloud CDN uses 86400s (1 day) for CACHE_ALL_STATIC mode. Can be specified only for CACHE_ALL_STATIC cache mode.

Parameter
Name Description
var Duration
Returns
Type Description
$this

getNegativeCaching

Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.

This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cacheMode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cacheMode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and overrides any caching headers. By default, Cloud CDN applies the following TTLs to these HTTP status codes:

  • 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m
  • 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s
  • 405 (Method Not Found), 501 (Not Implemented): 60s These defaults can be overridden in negativeCachingPolicy. If not specified, Cloud CDN applies negative caching by default.
Returns
Type Description
bool

hasNegativeCaching

clearNegativeCaching

setNegativeCaching

Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.

This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cacheMode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cacheMode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and overrides any caching headers. By default, Cloud CDN applies the following TTLs to these HTTP status codes:

  • 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m
  • 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s
  • 405 (Method Not Found), 501 (Not Implemented): 60s These defaults can be overridden in negativeCachingPolicy. If not specified, Cloud CDN applies negative caching by default.
Parameter
Name Description
var bool
Returns
Type Description
$this

getNegativeCachingPolicy

Sets a cache TTL for the specified HTTP status code.

negativeCaching must be enabled to configure negativeCachingPolicy. Omitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negativeCachingPolicy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists.

Returns
Type Description
Google\Protobuf\RepeatedField<CachePolicyNegativeCachingPolicy>

setNegativeCachingPolicy

Sets a cache TTL for the specified HTTP status code.

negativeCaching must be enabled to configure negativeCachingPolicy. Omitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negativeCachingPolicy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists.

Parameter
Name Description
var array<CachePolicyNegativeCachingPolicy>
Returns
Type Description
$this

getRequestCoalescing

If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. If not specified, Cloud CDN applies request coalescing by default.

Returns
Type Description
bool

hasRequestCoalescing

clearRequestCoalescing

setRequestCoalescing

If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin. If not specified, Cloud CDN applies request coalescing by default.

Parameter
Name Description
var bool
Returns
Type Description
$this

getServeWhileStale

Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.

This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-maxage) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.

Returns
Type Description
Duration|null

hasServeWhileStale

clearServeWhileStale

setServeWhileStale

Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.

This setting defines the default "max-stale" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-maxage) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.

Parameter
Name Description
var Duration
Returns
Type Description
$this