#[non_exhaustive]pub struct PathRule {
pub custom_error_response_policy: Option<CustomErrorResponsePolicy>,
pub paths: Vec<String>,
pub route_action: Option<HttpRouteAction>,
pub service: Option<String>,
pub url_redirect: Option<HttpRedirectAction>,
/* private fields */
}region-url-maps or url-maps only.Expand description
A path-matching rule for a URL. If matched, will use the specifiedBackendService to handle the traffic arriving at this URL.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.custom_error_response_policy: Option<CustomErrorResponsePolicy>customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceorBackendBucket responds with an error.
If a policy for an error code is not configured for the PathRule, a policy for the error code configured inpathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified inpathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect.
For example, consider a UrlMap with the following configuration:
- UrlMap.defaultCustomErrorResponsePolicy are configured
with policies for 5xx and 4xx errors
- A PathRule for /coming_soon/ is configured for the error
code 404.If the request is for www.myotherdomain.com and a404 is encountered, the policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404 response is encountered for the requestwww.example.com/current_events/, the pathMatcher’s policy takes effect. If however, the request forwww.example.com/coming_soon/ encounters a 404, the policy in PathRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy atUrlMap.defaultCustomErrorResponsePolicy takes effect.
customErrorResponsePolicy is supported only for global external Application Load Balancers.
paths: Vec<String>The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here.
route_action: Option<HttpRouteAction>In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend.
Only one of urlRedirect, service orrouteAction.weightedBackendService can be set.
URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule’srouteAction.
service: Option<String>The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend.
Only one of urlRedirect, service orrouteAction.weightedBackendService can be set.
url_redirect: Option<HttpRedirectAction>When a path pattern is matched, the request is redirected to a URL specified by urlRedirect.
Only one of urlRedirect, service orrouteAction.weightedBackendService can be set.
Not supported when the URL map is bound to a target gRPC proxy.
Implementations§
Source§impl PathRule
impl PathRule
pub fn new() -> Self
Sourcepub fn set_custom_error_response_policy<T>(self, v: T) -> Selfwhere
T: Into<CustomErrorResponsePolicy>,
pub fn set_custom_error_response_policy<T>(self, v: T) -> Selfwhere
T: Into<CustomErrorResponsePolicy>,
Sets the value of custom_error_response_policy.
§Example
use google_cloud_compute_v1::model::CustomErrorResponsePolicy;
let x = PathRule::new().set_custom_error_response_policy(CustomErrorResponsePolicy::default()/* use setters */);Sourcepub fn set_or_clear_custom_error_response_policy<T>(self, v: Option<T>) -> Selfwhere
T: Into<CustomErrorResponsePolicy>,
pub fn set_or_clear_custom_error_response_policy<T>(self, v: Option<T>) -> Selfwhere
T: Into<CustomErrorResponsePolicy>,
Sets or clears the value of custom_error_response_policy.
§Example
use google_cloud_compute_v1::model::CustomErrorResponsePolicy;
let x = PathRule::new().set_or_clear_custom_error_response_policy(Some(CustomErrorResponsePolicy::default()/* use setters */));
let x = PathRule::new().set_or_clear_custom_error_response_policy(None::<CustomErrorResponsePolicy>);Sourcepub fn set_route_action<T>(self, v: T) -> Selfwhere
T: Into<HttpRouteAction>,
pub fn set_route_action<T>(self, v: T) -> Selfwhere
T: Into<HttpRouteAction>,
Sets the value of route_action.
§Example
use google_cloud_compute_v1::model::HttpRouteAction;
let x = PathRule::new().set_route_action(HttpRouteAction::default()/* use setters */);Sourcepub fn set_or_clear_route_action<T>(self, v: Option<T>) -> Selfwhere
T: Into<HttpRouteAction>,
pub fn set_or_clear_route_action<T>(self, v: Option<T>) -> Selfwhere
T: Into<HttpRouteAction>,
Sets or clears the value of route_action.
§Example
use google_cloud_compute_v1::model::HttpRouteAction;
let x = PathRule::new().set_or_clear_route_action(Some(HttpRouteAction::default()/* use setters */));
let x = PathRule::new().set_or_clear_route_action(None::<HttpRouteAction>);Sourcepub fn set_service<T>(self, v: T) -> Self
pub fn set_service<T>(self, v: T) -> Self
Sourcepub fn set_or_clear_service<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_service<T>(self, v: Option<T>) -> Self
Sourcepub fn set_url_redirect<T>(self, v: T) -> Selfwhere
T: Into<HttpRedirectAction>,
pub fn set_url_redirect<T>(self, v: T) -> Selfwhere
T: Into<HttpRedirectAction>,
Sets the value of url_redirect.
§Example
use google_cloud_compute_v1::model::HttpRedirectAction;
let x = PathRule::new().set_url_redirect(HttpRedirectAction::default()/* use setters */);Sourcepub fn set_or_clear_url_redirect<T>(self, v: Option<T>) -> Selfwhere
T: Into<HttpRedirectAction>,
pub fn set_or_clear_url_redirect<T>(self, v: Option<T>) -> Selfwhere
T: Into<HttpRedirectAction>,
Sets or clears the value of url_redirect.
§Example
use google_cloud_compute_v1::model::HttpRedirectAction;
let x = PathRule::new().set_or_clear_url_redirect(Some(HttpRedirectAction::default()/* use setters */));
let x = PathRule::new().set_or_clear_url_redirect(None::<HttpRedirectAction>);