183 lines
8.3 KiB
YAML
183 lines
8.3 KiB
YAML
$schema: "http://json-schema.org/draft-06/schema#"
|
|
|
|
title: networkservices v1 ExtensionChainExtension export schema
|
|
description: A gcloud export/import command YAML validation schema.
|
|
type: object
|
|
required:
|
|
- service
|
|
additionalProperties: false
|
|
properties:
|
|
COMMENT:
|
|
type: object
|
|
description: User specified info ignored by gcloud import.
|
|
additionalProperties: false
|
|
properties:
|
|
template-id:
|
|
type: string
|
|
region:
|
|
type: string
|
|
description:
|
|
type: string
|
|
date:
|
|
type: string
|
|
version:
|
|
type: string
|
|
UNKNOWN:
|
|
type: array
|
|
description: Unknown API fields that cannot be imported.
|
|
items:
|
|
type: string
|
|
authority:
|
|
description: |-
|
|
The `:authority` header in the gRPC request sent from Envoy to the
|
|
extension service. Required for Callout extensions. This field is not
|
|
supported for plugin extensions. Setting it results in a validation error.
|
|
type: string
|
|
failOpen:
|
|
description: |-
|
|
Determines how the proxy behaves if the call to the extension fails or
|
|
times out. When set to `TRUE`, request or response processing continues
|
|
without error. Any subsequent extensions in the extension chain are also
|
|
executed. When set to `FALSE` or the default setting of `FALSE` is used,
|
|
one of the following happens: * If response headers have not been
|
|
delivered to the downstream client, a generic 500 error is returned to the
|
|
client. The error response can be tailored by configuring a custom error
|
|
response in the load balancer. * If response headers have been delivered,
|
|
then the HTTP stream to the downstream client is reset.
|
|
type: boolean
|
|
forwardHeaders:
|
|
description: |-
|
|
List of the HTTP headers to forward to the extension (from the client or
|
|
backend). If omitted, all headers are sent. Each element is a string
|
|
indicating the header name.
|
|
type: array
|
|
items:
|
|
type: string
|
|
metadata:
|
|
description: |-
|
|
The metadata provided here is included as part of the
|
|
`metadata_context` (of type `google.protobuf.Struct`) in the
|
|
`ProcessingRequest` message sent to the extension server. For
|
|
`AuthzExtension` resources, the metadata is available under the
|
|
namespace `com.google.authz_extension.`. For other types of
|
|
extensions, the metadata is available under the namespace
|
|
`com.google....`. For example:
|
|
`com.google.lb_traffic_extension.lbtrafficextension1.chain1.ext1`. The
|
|
following variables are supported in the metadata:
|
|
`{forwarding_rule_id}` - substituted with the forwarding rule's fully
|
|
qualified resource name. This field must not be set for plugin
|
|
extensions. Setting it results in a validation error. You can set
|
|
metadata at either the resource level or the extension level. The
|
|
extension level metadata is recommended because you can pass a
|
|
different set of metadata through each extension to the backend. This
|
|
field is subject to following limitations: * The total size of the
|
|
metadata must be less than 1KiB. * The total number of keys in the
|
|
metadata must be less than 16. * The length of each key must be less
|
|
than 64 characters. * The length of each value must be less than 1024
|
|
characters. * All values must be strings.
|
|
type: object
|
|
name:
|
|
description: |-
|
|
The name for this extension. The name is logged as part of the HTTP
|
|
request logs. The name must conform with RFC-1034, is restricted to
|
|
lower-cased letters, numbers and hyphens, and can have a maximum
|
|
length of 63 characters. Additionally, the first character must be a
|
|
letter and the last a letter or a number. This field is required
|
|
except for AuthzExtension.
|
|
type: string
|
|
observabilityMode:
|
|
description: |-
|
|
When set to `TRUE`, enables `observability_mode` on the `ext_proc`
|
|
filter. This makes `ext_proc` calls asynchronous. Envoy doesn't check
|
|
for the response from `ext_proc` calls. For more information about the
|
|
filter, see: https://www.envoyprox y.io/docs/envoy/v1.32.3/api-
|
|
v3/extensions/filters/http/ext_proc/v3/ext_proc.proto#extensions-
|
|
filters-http-ext-proc-v3-externalprocessor This field is helpful when
|
|
you want to try out the extension in async log-only mode. Supported by
|
|
regional `LbTrafficExtension` and `LbRouteExtension` resources. Only
|
|
`STREAMED` (default) body processing mode is supported.
|
|
type: boolean
|
|
requestBodySendMode:
|
|
description: |-
|
|
Configures the send mode for request body processing. The field can
|
|
only be set if `supported_events` includes `REQUEST_BODY`. If
|
|
`supported_events` includes `REQUEST_BODY`, but
|
|
`request_body_send_mode` is unset, the default value `STREAMED` is
|
|
used. When this field is set to `FULL_DUPLEX_STREAMED`,
|
|
`supported_events` must include both `REQUEST_BODY` and
|
|
`REQUEST_TRAILERS`. This field can be set only for
|
|
`LbTrafficExtension` and `LbRouteExtension` resources, and only when
|
|
the `service` field of the extension points to a `BackendService`.
|
|
Only `FULL_DUPLEX_STREAMED` mode is supported for `LbRouteExtension`
|
|
resources.
|
|
type: string
|
|
enum:
|
|
- BODY_SEND_MODE_FULL_DUPLEX_STREAMED
|
|
- BODY_SEND_MODE_STREAMED
|
|
- BODY_SEND_MODE_UNSPECIFIED
|
|
responseBodySendMode:
|
|
description: |-
|
|
Configures the send mode for response processing. If unspecified, the
|
|
default value `STREAMED` is used. The field can only be set if
|
|
`supported_events` includes `RESPONSE_BODY`. If `supported_events`
|
|
includes `RESPONSE_BODY`, but `response_body_send_mode` is unset, the
|
|
default value `STREAMED` is used. When this field is set to
|
|
`FULL_DUPLEX_STREAMED`, `supported_events` must include both
|
|
`RESPONSE_BODY` and `RESPONSE_TRAILERS`. This field can be set only
|
|
for `LbTrafficExtension` resources, and only when the `service` field
|
|
of the extension points to a `BackendService`.
|
|
type: string
|
|
enum:
|
|
- BODY_SEND_MODE_FULL_DUPLEX_STREAMED
|
|
- BODY_SEND_MODE_STREAMED
|
|
- BODY_SEND_MODE_UNSPECIFIED
|
|
service:
|
|
description: |-
|
|
The reference to the service that runs the extension. To configure a
|
|
callout extension, `service` must be a fully-qualified reference to a
|
|
[backend service](https://cloud.google.com/compute/docs/r
|
|
eference/rest/v1/backendServices) in the format:
|
|
`https://www.googleapis .com/compute/v1/projects/{project}/regions/{re
|
|
gion}/backendServices/{bac kendService}` or
|
|
`https://www.googleapis.com/compute/v1/projects/{projec
|
|
t}/global/backendServices/{backendService}`. To configure a plugin
|
|
extension, `service` must be a reference to a [`WasmPlugin`
|
|
resource](https://cloud.google.com/service-
|
|
extensions/docs/reference/rest/v1beta1/projects.locations.wasmPlugins)
|
|
in the format:
|
|
`projects/{project}/locations/{location}/wasmPlugins/{plugin}` or
|
|
`//net workservices.googleapis.com/projects/{project}/locations/{locat
|
|
ion}/wasm Plugins/{wasmPlugin}`. Plugin extensions are currently
|
|
supported for the `LbTrafficExtension`, the `LbRouteExtension`, and
|
|
the `LbEdgeExtension` resources.
|
|
type: string
|
|
supportedEvents:
|
|
description: |-
|
|
A set of events during request or response processing for which this
|
|
extension is called. For the `LbTrafficExtension` resource, this field
|
|
is required. For the `LbRouteExtension` resource, this field is
|
|
optional. If unspecified, `REQUEST_HEADERS` event is assumed as
|
|
supported. For the `LbEdgeExtension` resource, this field is required
|
|
and must only contain `REQUEST_HEADERS` event. For the
|
|
`AuthzExtension` resource, this field is optional. `REQUEST_HEADERS`
|
|
is the only supported event. If unspecified, `REQUEST_HEADERS` event
|
|
is assumed as supported.
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- EVENT_TYPE_UNSPECIFIED
|
|
- REQUEST_BODY
|
|
- REQUEST_HEADERS
|
|
- REQUEST_TRAILERS
|
|
- RESPONSE_BODY
|
|
- RESPONSE_HEADERS
|
|
- RESPONSE_TRAILERS
|
|
timeout:
|
|
description: |-
|
|
Specifies the timeout for each individual message on the stream.
|
|
The timeout must be between `10`-`10000` milliseconds. Required
|
|
for callout extensions. This field is not supported for plugin
|
|
extensions. Setting it results in a validation error.
|
|
type: string
|