Skip to main content

CachePolicy

Struct CachePolicy 

Source
#[non_exhaustive]
pub struct CachePolicy { pub cache_bypass_request_header_names: Vec<String>, pub cache_key_policy: Option<CachePolicyCacheKeyPolicy>, pub cache_mode: Option<CacheMode>, pub client_ttl: Option<Duration>, pub default_ttl: Option<Duration>, pub max_ttl: Option<Duration>, pub negative_caching: Option<bool>, pub negative_caching_policy: Vec<CachePolicyNegativeCachingPolicy>, pub request_coalescing: Option<bool>, pub serve_while_stale: Option<Duration>, /* private fields */ }
Available on crate features region-url-maps or url-maps only.
Expand description

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

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§cache_bypass_request_header_names: Vec<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: Option<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: Option<CacheMode>

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

§client_ttl: Option<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: Option<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: Option<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: Option<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: Vec<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: Option<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: Option<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.

Implementations§

Source§

impl CachePolicy

Source

pub fn new() -> Self

Creates a new default instance.

Source

pub fn set_cache_bypass_request_header_names<T, V>(self, v: T) -> Self
where T: IntoIterator<Item = V>, V: Into<String>,

Sets the value of cache_bypass_request_header_names.

§Example
let x = CachePolicy::new().set_cache_bypass_request_header_names(["a", "b", "c"]);
Source

pub fn set_cache_key_policy<T>(self, v: T) -> Self

Sets the value of cache_key_policy.

§Example
use google_cloud_compute_v1::model::CachePolicyCacheKeyPolicy;
let x = CachePolicy::new().set_cache_key_policy(CachePolicyCacheKeyPolicy::default()/* use setters */);
Source

pub fn set_or_clear_cache_key_policy<T>(self, v: Option<T>) -> Self

Sets or clears the value of cache_key_policy.

§Example
use google_cloud_compute_v1::model::CachePolicyCacheKeyPolicy;
let x = CachePolicy::new().set_or_clear_cache_key_policy(Some(CachePolicyCacheKeyPolicy::default()/* use setters */));
let x = CachePolicy::new().set_or_clear_cache_key_policy(None::<CachePolicyCacheKeyPolicy>);
Source

pub fn set_cache_mode<T>(self, v: T) -> Self
where T: Into<CacheMode>,

Sets the value of cache_mode.

§Example
use google_cloud_compute_v1::model::cache_policy::CacheMode;
let x0 = CachePolicy::new().set_cache_mode(CacheMode::ForceCacheAll);
let x1 = CachePolicy::new().set_cache_mode(CacheMode::UseOriginHeaders);
Source

pub fn set_or_clear_cache_mode<T>(self, v: Option<T>) -> Self
where T: Into<CacheMode>,

Sets or clears the value of cache_mode.

§Example
use google_cloud_compute_v1::model::cache_policy::CacheMode;
let x0 = CachePolicy::new().set_or_clear_cache_mode(Some(CacheMode::ForceCacheAll));
let x1 = CachePolicy::new().set_or_clear_cache_mode(Some(CacheMode::UseOriginHeaders));
let x_none = CachePolicy::new().set_or_clear_cache_mode(None::<CacheMode>);
Source

pub fn set_client_ttl<T>(self, v: T) -> Self
where T: Into<Duration>,

Sets the value of client_ttl.

§Example
use google_cloud_compute_v1::model::Duration;
let x = CachePolicy::new().set_client_ttl(Duration::default()/* use setters */);
Source

pub fn set_or_clear_client_ttl<T>(self, v: Option<T>) -> Self
where T: Into<Duration>,

Sets or clears the value of client_ttl.

§Example
use google_cloud_compute_v1::model::Duration;
let x = CachePolicy::new().set_or_clear_client_ttl(Some(Duration::default()/* use setters */));
let x = CachePolicy::new().set_or_clear_client_ttl(None::<Duration>);
Source

pub fn set_default_ttl<T>(self, v: T) -> Self
where T: Into<Duration>,

Sets the value of default_ttl.

§Example
use google_cloud_compute_v1::model::Duration;
let x = CachePolicy::new().set_default_ttl(Duration::default()/* use setters */);
Source

pub fn set_or_clear_default_ttl<T>(self, v: Option<T>) -> Self
where T: Into<Duration>,

Sets or clears the value of default_ttl.

§Example
use google_cloud_compute_v1::model::Duration;
let x = CachePolicy::new().set_or_clear_default_ttl(Some(Duration::default()/* use setters */));
let x = CachePolicy::new().set_or_clear_default_ttl(None::<Duration>);
Source

pub fn set_max_ttl<T>(self, v: T) -> Self
where T: Into<Duration>,

Sets the value of max_ttl.

§Example
use google_cloud_compute_v1::model::Duration;
let x = CachePolicy::new().set_max_ttl(Duration::default()/* use setters */);
Source

pub fn set_or_clear_max_ttl<T>(self, v: Option<T>) -> Self
where T: Into<Duration>,

Sets or clears the value of max_ttl.

§Example
use google_cloud_compute_v1::model::Duration;
let x = CachePolicy::new().set_or_clear_max_ttl(Some(Duration::default()/* use setters */));
let x = CachePolicy::new().set_or_clear_max_ttl(None::<Duration>);
Source

pub fn set_negative_caching<T>(self, v: T) -> Self
where T: Into<bool>,

Sets the value of negative_caching.

§Example
let x = CachePolicy::new().set_negative_caching(true);
Source

pub fn set_or_clear_negative_caching<T>(self, v: Option<T>) -> Self
where T: Into<bool>,

Sets or clears the value of negative_caching.

§Example
let x = CachePolicy::new().set_or_clear_negative_caching(Some(false));
let x = CachePolicy::new().set_or_clear_negative_caching(None::<bool>);
Source

pub fn set_negative_caching_policy<T, V>(self, v: T) -> Self

Sets the value of negative_caching_policy.

§Example
use google_cloud_compute_v1::model::CachePolicyNegativeCachingPolicy;
let x = CachePolicy::new()
    .set_negative_caching_policy([
        CachePolicyNegativeCachingPolicy::default()/* use setters */,
        CachePolicyNegativeCachingPolicy::default()/* use (different) setters */,
    ]);
Source

pub fn set_request_coalescing<T>(self, v: T) -> Self
where T: Into<bool>,

Sets the value of request_coalescing.

§Example
let x = CachePolicy::new().set_request_coalescing(true);
Source

pub fn set_or_clear_request_coalescing<T>(self, v: Option<T>) -> Self
where T: Into<bool>,

Sets or clears the value of request_coalescing.

§Example
let x = CachePolicy::new().set_or_clear_request_coalescing(Some(false));
let x = CachePolicy::new().set_or_clear_request_coalescing(None::<bool>);
Source

pub fn set_serve_while_stale<T>(self, v: T) -> Self
where T: Into<Duration>,

Sets the value of serve_while_stale.

§Example
use google_cloud_compute_v1::model::Duration;
let x = CachePolicy::new().set_serve_while_stale(Duration::default()/* use setters */);
Source

pub fn set_or_clear_serve_while_stale<T>(self, v: Option<T>) -> Self
where T: Into<Duration>,

Sets or clears the value of serve_while_stale.

§Example
use google_cloud_compute_v1::model::Duration;
let x = CachePolicy::new().set_or_clear_serve_while_stale(Some(Duration::default()/* use setters */));
let x = CachePolicy::new().set_or_clear_serve_while_stale(None::<Duration>);

Trait Implementations§

Source§

impl Clone for CachePolicy

Source§

fn clone(&self) -> CachePolicy

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CachePolicy

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for CachePolicy

Source§

fn default() -> CachePolicy

Returns the “default value” for a type. Read more
Source§

impl Message for CachePolicy

Source§

fn typename() -> &'static str

The typename of this message.
Source§

impl PartialEq for CachePolicy

Source§

fn eq(&self, other: &CachePolicy) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for CachePolicy

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,