Add path_rules to UrlMap (#103)

Signed-off-by: Modular Magician <magic-modules@google.com>
This commit is contained in:
The Magician 2019-12-09 11:55:55 -08:00 committed by Ty Larrabee
parent 561dddd734
commit 4809c7f26b
2 changed files with 1903 additions and 96 deletions

File diff suppressed because it is too large Load diff

View file

@ -278,25 +278,6 @@ resources:
create the resource.
returned: success
type: str
pathRules:
description:
- The list of path rules.
returned: success
type: complex
contains:
paths:
description:
- '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.'
returned: success
type: list
service:
description:
- A reference to the BackendService resource if this rule is matched.
returned: success
type: dict
headerAction:
description:
- Specifies changes to request and response headers that need to take effect
@ -371,6 +352,461 @@ resources:
- The name to which this PathMatcher is referred by the HostRule.
returned: success
type: str
pathRules:
description:
- 'The list of path rules. Use this list instead of routeRules when routing
based on simple path matching is all that''s required. The order by which
path rules are specified does not matter. Matches are always done on the
longest-path-first basis. For example: a pathRule with a path /a/b/c/*
will match before /a/b/* irrespective of the order in which those paths
appear in this list. Within a given pathMatcher, only one of pathRules
or routeRules must be set.'
returned: success
type: complex
contains:
service:
description:
- The backend service resource to which traffic is directed if this
rule is matched. If routeAction is additionally specified, advanced
routing actions like URL Rewrites, etc. take effect prior to sending
the request to the backend. However, if service is specified, routeAction
cannot contain any weightedBackendService s. Conversely, if routeAction
specifies any weightedBackendServices, service must not be specified.
Only one of urlRedirect, service or routeAction.weightedBackendService
must be set.
returned: success
type: dict
paths:
description:
- '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.'
returned: success
type: list
routeAction:
description:
- In response to a matching path, the load balancer performs advanced
routing actions like URL rewrites, header transformations, etc. prior
to forwarding the request to the selected backend. If routeAction
specifies any weightedBackendServices, service must not be set. Conversely
if service is set, routeAction cannot contain any weightedBackendServices.
Only one of routeAction or urlRedirect must be set.
returned: success
type: complex
contains:
corsPolicy:
description:
- The specification for allowing client side cross-origin requests.
Please see W3C Recommendation for Cross Origin Resource Sharing
.
returned: success
type: complex
contains:
allowCredentials:
description:
- In response to a preflight request, setting this to true indicates
that the actual request can include user credentials. This
translates to the Access- Control-Allow-Credentials header.
Defaults to false.
returned: success
type: bool
allowHeaders:
description:
- Specifies the content for the Access-Control-Allow-Headers
header.
returned: success
type: list
allowMethods:
description:
- Specifies the content for the Access-Control-Allow-Methods
header.
returned: success
type: list
allowOriginRegexes:
description:
- Specifies the regualar expression patterns that match allowed
origins. For regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript
An origin is allowed if it matches either allow_origins or
allow_origin_regex.
returned: success
type: list
allowOrigins:
description:
- Specifies the list of origins that will be allowed to do CORS
requests. An origin is allowed if it matches either allow_origins
or allow_origin_regex.
returned: success
type: list
disabled:
description:
- If true, specifies the CORS policy is disabled.
returned: success
type: bool
exposeHeaders:
description:
- Specifies the content for the Access-Control-Expose-Headers
header.
returned: success
type: list
maxAge:
description:
- Specifies how long the results of a preflight request can
be cached. This translates to the content for the Access-Control-Max-Age
header.
returned: success
type: int
faultInjectionPolicy:
description:
- The specification for fault injection introduced into traffic
to test the resiliency of clients to backend service failure.
As part of fault injection, when clients send requests to a backend
service, delays can be introduced by Loadbalancer on a percentage
of requests before sending those request to the backend service.
Similarly requests from clients can be aborted by the Loadbalancer
for a percentage of requests. timeout and retry_policy will be
ignored by clients that are configured with a fault_injection_policy.
returned: success
type: complex
contains:
abort:
description:
- The specification for how client requests are aborted as part
of fault injection.
returned: success
type: complex
contains:
httpStatus:
description:
- The HTTP status code used to abort the request. The value
must be between 200 and 599 inclusive.
returned: success
type: int
percentage:
description:
- The percentage of traffic (connections/operations/requests)
which will be aborted as part of fault injection. The
value must be between 0.0 and 100.0 inclusive.
returned: success
type: str
delay:
description:
- The specification for how client requests are delayed as part
of fault injection, before being sent to a backend service.
returned: success
type: complex
contains:
fixedDelay:
description:
- Specifies the value of the fixed delay interval.
returned: success
type: complex
contains:
nanos:
description:
- Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented
with a 0 `seconds` field and a positive `nanos` field.
Must be from 0 to 999,999,999 inclusive.
returned: success
type: int
seconds:
description:
- Span of time at a resolution of a second. Must be
from 0 to 315,576,000,000 inclusive.
returned: success
type: str
percentage:
description:
- The percentage of traffic (connections/operations/requests)
on which delay will be introduced as part of fault injection.
The value must be between 0.0 and 100.0 inclusive.
returned: success
type: str
requestMirrorPolicy:
description:
- Specifies the policy on how requests intended for the route's
backends are shadowed to a separate mirrored backend service.
Loadbalancer does not wait for responses from the shadow service.
Prior to sending traffic to the shadow service, the host / authority
header is suffixed with -shadow.
returned: success
type: complex
contains:
backendService:
description:
- The BackendService resource being mirrored to.
returned: success
type: dict
retryPolicy:
description:
- Specifies the retry policy associated with this route.
returned: success
type: complex
contains:
numRetries:
description:
- Specifies the allowed number retries. This number must be
> 0.
returned: success
type: int
perTryTimeout:
description:
- Specifies a non-zero timeout per retry attempt.
returned: success
type: complex
contains:
nanos:
description:
- Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented
with a 0 `seconds` field and a positive `nanos` field.
Must be from 0 to 999,999,999 inclusive.
returned: success
type: int
seconds:
description:
- Span of time at a resolution of a second. Must be from
0 to 315,576,000,000 inclusive.
returned: success
type: str
retryConditions:
description:
- 'Specfies one or more conditions when this retry rule applies.
Valid values are: - 5xx: Loadbalancer will attempt a retry
if the backend service responds with any 5xx response code,
or if the backend service does not respond at all, example:
disconnects, reset, read timeout, connection failure, and
refused streams.'
- "- gateway-error: Similar to 5xx, but only applies to response
codes 502, 503 or 504."
- "- connect-failure: Loadbalancer will retry on failures connecting
to backend services, for example due to connection timeouts."
- "- retriable-4xx: Loadbalancer will retry for retriable 4xx
response codes."
- Currently the only retriable error supported is 409.
- "- refused-stream: Loadbalancer will retry if the backend
service resets the stream with a REFUSED_STREAM error code.
This reset type indicates that it is safe to retry."
- "- cancelled: Loadbalancer will retry if the gRPC status code
in the response header is set to cancelled - deadline-exceeded:
Loadbalancer will retry if the gRPC status code in the response
header is set to deadline-exceeded - resource-exhausted: Loadbalancer
will retry if the gRPC status code in the response header
is set to resource-exhausted - unavailable: Loadbalancer will
retry if the gRPC status code in the response header is set
to unavailable ."
returned: success
type: list
timeout:
description:
- Specifies the timeout for the selected route. Timeout is computed
from the time the request is has been fully processed (i.e. end-of-stream)
up until the response has been completely processed. Timeout includes
all retries. If not specified, the default value is 15 seconds.
returned: success
type: complex
contains:
nanos:
description:
- Span of time that's a fraction of a second at nanosecond resolution.
Durations less than one second are represented with a 0 `seconds`
field and a positive `nanos` field. Must be from 0 to 999,999,999
inclusive.
returned: success
type: int
seconds:
description:
- Span of time at a resolution of a second. Must be from 0 to
315,576,000,000 inclusive.
returned: success
type: str
urlRewrite:
description:
- The spec to modify the URL of the request, prior to forwarding
the request to the matched service .
returned: success
type: complex
contains:
hostRewrite:
description:
- Prior to forwarding the request to the selected service, the
request's host header is replaced with contents of hostRewrite.
The value must be between 1 and 255 characters.
returned: success
type: str
pathPrefixRewrite:
description:
- Prior to forwarding the request to the selected backend service,
the matching portion of the request's path is replaced by
pathPrefixRewrite. The value must be between 1 and 1024 characters.
returned: success
type: str
weightedBackendServices:
description:
- A list of weighted backend services to send traffic to when a
route match occurs. The weights determine the fraction of traffic
that flows to their corresponding backend service. If all traffic
needs to go to a single backend service, there must be one weightedBackendService
with weight set to a non 0 number. Once a backendService is identified
and before forwarding the request to the backend service, advanced
routing actions like Url rewrites and header transformations are
applied depending on additional settings specified in this HttpRouteAction.
returned: success
type: complex
contains:
backendService:
description:
- The default BackendService resource. Before forwarding the
request to backendService, the loadbalancer applies any relevant
headerActions specified as part of this backendServiceWeight.
returned: success
type: dict
headerAction:
description:
- Specifies changes to request and response headers that need
to take effect for the selected backendService. headerAction
specified here take effect before headerAction in the enclosing
HttpRouteRule, PathMatcher and UrlMap.
returned: success
type: complex
contains:
requestHeadersToAdd:
description:
- Headers to add to a matching request prior to forwarding
the request to the backendService.
returned: success
type: complex
contains:
headerName:
description:
- The name of the header.
returned: success
type: str
headerValue:
description:
- The value of the header to add.
returned: success
type: str
replace:
description:
- If false, headerValue is appended to any values that
already exist for the header. If true, headerValue
is set for the header, discarding any values that
were set for that header.
returned: success
type: bool
requestHeadersToRemove:
description:
- A list of header names for headers that need to be removed
from the request prior to forwarding the request to the
backendService.
returned: success
type: list
responseHeadersToAdd:
description:
- Headers to add the response prior to sending the response
back to the client.
returned: success
type: complex
contains:
headerName:
description:
- The name of the header.
returned: success
type: str
headerValue:
description:
- The value of the header to add.
returned: success
type: str
replace:
description:
- If false, headerValue is appended to any values that
already exist for the header. If true, headerValue
is set for the header, discarding any values that
were set for that header.
returned: success
type: bool
responseHeadersToRemove:
description:
- A list of header names for headers that need to be removed
from the response prior to sending the response back to
the client.
returned: success
type: list
weight:
description:
- Specifies the fraction of traffic sent to backendService,
computed as weight / (sum of all weightedBackendService weights
in routeAction) . The selection of a backend service is determined
only for new traffic. Once a user's request has been directed
to a backendService, subsequent requests will be sent to the
same backendService as determined by the BackendService's
session affinity policy.
- The value must be between 0 and 1000 .
returned: success
type: int
urlRedirect:
description:
- When a path pattern is matched, the request is redirected to a URL
specified by urlRedirect. If urlRedirect is specified, service or
routeAction must not be set.
returned: success
type: complex
contains:
hostRedirect:
description:
- The host that will be used in the redirect response instead of
the one that was supplied in the request. The value must be between
1 and 255 characters.
returned: success
type: str
httpsRedirect:
description:
- If set to true, the URL scheme in the redirected request is set
to https. If set to false, the URL scheme of the redirected request
will remain the same as that of the request. This must only be
set for UrlMaps used in TargetHttpProxys.
- Setting this true for TargetHttpsProxy is not permitted. Defaults
to false.
returned: success
type: bool
pathRedirect:
description:
- The path that will be used in the redirect response instead of
the one that was supplied in the request. Only one of pathRedirect
or prefixRedirect must be specified. The value must be between
1 and 1024 characters.
returned: success
type: str
prefixRedirect:
description:
- The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
retaining the remaining portion of the URL before redirecting
the request.
returned: success
type: str
redirectResponseCode:
description:
- 'The HTTP Status code to use for this RedirectAction. Supported
values are: - MOVED_PERMANENTLY_DEFAULT, which is the default
value and corresponds to 301.'
- "- FOUND, which corresponds to 302."
- "- SEE_OTHER which corresponds to 303."
- "- TEMPORARY_REDIRECT, which corresponds to 307. In this case,
the request method will be retained."
- "- PERMANENT_REDIRECT, which corresponds to 308. In this case,
the request method will be retained."
returned: success
type: str
stripQuery:
description:
- If set to true, any accompanying query portion of the original
URL is removed prior to redirecting the request. If set to false,
the query portion of the original URL is retained.
returned: success
type: bool
routeRules:
description:
- 'The list of ordered HTTP route rules. Use this list instead of pathRules