Merge pull request #1765 from murgatroid99/grpc-js-xds_v3_support

grpc-js-xds: Add xDS v3 API support
This commit is contained in:
Michael Lumish 2021-05-14 14:15:49 -07:00 committed by GitHub
commit 1e9bf301b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
236 changed files with 10241 additions and 5816 deletions

@ -1 +1 @@
Subproject commit 50cef8fcab37ba59a61068934d08a3f4c28a681f
Subproject commit 18b54850c9b7ba29a4ab67cbd7ed7eab7b0bbdb2

@ -1 +1 @@
Subproject commit 3b31d022a144b334eb2224838e4d6952ab5253aa
Subproject commit cc1b757b3eddccaaaf0743cbb107742bb7e3ee4f

View File

@ -12,7 +12,7 @@
"prepare": "npm run compile",
"pretest": "npm run compile",
"posttest": "npm run check",
"generate-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --json --includeComments --includeDirs deps/envoy-api/ deps/udpa/ deps/googleapis/ deps/protoc-gen-validate/ -O src/generated/ --grpcLib @grpc/grpc-js envoy/service/discovery/v2/ads.proto envoy/service/load_stats/v2/lrs.proto envoy/api/v2/listener.proto envoy/api/v2/route.proto envoy/api/v2/cluster.proto envoy/api/v2/endpoint.proto envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto",
"generate-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --includeComments --includeDirs deps/envoy-api/ deps/udpa/ deps/googleapis/ deps/protoc-gen-validate/ -O src/generated/ --grpcLib @grpc/grpc-js envoy/service/discovery/v2/ads.proto envoy/service/load_stats/v2/lrs.proto envoy/service/discovery/v3/ads.proto envoy/service/load_stats/v3/lrs.proto envoy/config/listener/v3/listener.proto envoy/config/route/v3/route.proto envoy/config/cluster/v3/cluster.proto envoy/config/endpoint/v3/endpoint.proto envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto",
"generate-interop-types": "proto-loader-gen-types --keep-case --longs String --enums String --defaults --oneofs --json --includeComments --includeDirs proto/ -O interop/generated --grpcLib @grpc/grpc-js grpc/testing/test.proto"
},
"repository": {

View File

@ -0,0 +1,16 @@
#!/bin/bash
# Copyright 2021 gRPC authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
XDS_V3_OPT="--xds_v3_support" $(dirname $0)/xds.sh

1
packages/grpc-js-xds/scripts/xds.sh Normal file → Executable file
View File

@ -58,6 +58,7 @@ GRPC_NODE_TRACE=xds_client,xds_resolver,cds_balancer,eds_balancer,priority,weigh
--path_to_server_binary=/java_server/grpc-java/interop-testing/build/install/grpc-interop-testing/bin/xds-test-server \
--gcp_suffix=$(date '+%s') \
--verbose \
${XDS_V3_OPT-} \
--client_cmd="$(which node) grpc-node/packages/grpc-js-xds/build/interop/xds-interop-client \
--server=xds:///{server_uri} \
--stats_port={stats_port} \

View File

@ -2,6 +2,7 @@ import type * as grpc from '@grpc/grpc-js';
import type { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader';
import type { AggregatedDiscoveryServiceClient as _envoy_service_discovery_v2_AggregatedDiscoveryServiceClient } from './envoy/service/discovery/v2/AggregatedDiscoveryService';
import type { AggregatedDiscoveryServiceClient as _envoy_service_discovery_v3_AggregatedDiscoveryServiceClient } from './envoy/service/discovery/v3/AggregatedDiscoveryService';
type SubtypeConstructor<Constructor extends new (...args: any) => any, Subtype> = {
new(...args: ConstructorParameters<Constructor>): Subtype;
@ -50,6 +51,45 @@ export interface ProtoGrpcType {
}
}
}
config: {
core: {
v3: {
Address: MessageTypeDefinition
AsyncDataSource: MessageTypeDefinition
BackoffStrategy: MessageTypeDefinition
BindConfig: MessageTypeDefinition
BuildVersion: MessageTypeDefinition
CidrRange: MessageTypeDefinition
ControlPlane: MessageTypeDefinition
DataSource: MessageTypeDefinition
EnvoyInternalAddress: MessageTypeDefinition
Extension: MessageTypeDefinition
HeaderMap: MessageTypeDefinition
HeaderValue: MessageTypeDefinition
HeaderValueOption: MessageTypeDefinition
HttpUri: MessageTypeDefinition
Locality: MessageTypeDefinition
Metadata: MessageTypeDefinition
Node: MessageTypeDefinition
Pipe: MessageTypeDefinition
RemoteDataSource: MessageTypeDefinition
RequestMethod: EnumTypeDefinition
RetryPolicy: MessageTypeDefinition
RoutingPriority: EnumTypeDefinition
RuntimeDouble: MessageTypeDefinition
RuntimeFeatureFlag: MessageTypeDefinition
RuntimeFractionalPercent: MessageTypeDefinition
RuntimePercent: MessageTypeDefinition
RuntimeUInt32: MessageTypeDefinition
SocketAddress: MessageTypeDefinition
SocketOption: MessageTypeDefinition
TcpKeepalive: MessageTypeDefinition
TrafficDirection: EnumTypeDefinition
TransportSocket: MessageTypeDefinition
WatchedDirectory: MessageTypeDefinition
}
}
}
service: {
discovery: {
v2: {
@ -64,12 +104,34 @@ export interface ProtoGrpcType {
*/
AggregatedDiscoveryService: SubtypeConstructor<typeof grpc.Client, _envoy_service_discovery_v2_AggregatedDiscoveryServiceClient> & { service: ServiceDefinition }
}
v3: {
AdsDummy: MessageTypeDefinition
/**
* See https://github.com/lyft/envoy-api#apis for a description of the role of
* ADS and how it is intended to be used by a management server. ADS requests
* have the same structure as their singleton xDS counterparts, but can
* multiplex many resource types on a single stream. The type_url in the
* DiscoveryRequest/DiscoveryResponse provides sufficient information to recover
* the multiplexed singleton APIs at the Envoy instance and management server.
*/
AggregatedDiscoveryService: SubtypeConstructor<typeof grpc.Client, _envoy_service_discovery_v3_AggregatedDiscoveryServiceClient> & { service: ServiceDefinition }
DeltaDiscoveryRequest: MessageTypeDefinition
DeltaDiscoveryResponse: MessageTypeDefinition
DiscoveryRequest: MessageTypeDefinition
DiscoveryResponse: MessageTypeDefinition
Resource: MessageTypeDefinition
}
}
}
type: {
FractionalPercent: MessageTypeDefinition
Percent: MessageTypeDefinition
SemanticVersion: MessageTypeDefinition
v3: {
FractionalPercent: MessageTypeDefinition
Percent: MessageTypeDefinition
SemanticVersion: MessageTypeDefinition
}
}
}
google: {
@ -122,6 +184,7 @@ export interface ProtoGrpcType {
MigrateAnnotation: MessageTypeDefinition
PackageVersionStatus: EnumTypeDefinition
StatusAnnotation: MessageTypeDefinition
VersioningAnnotation: MessageTypeDefinition
}
}
validate: {

View File

@ -10,32 +10,22 @@ export interface ProtoGrpcType {
envoy: {
annotations: {
}
api: {
v2: {
Cluster: MessageTypeDefinition
ClusterLoadAssignment: MessageTypeDefinition
LoadBalancingPolicy: MessageTypeDefinition
UpstreamBindConfig: MessageTypeDefinition
UpstreamConnectionOptions: MessageTypeDefinition
auth: {
CertificateValidationContext: MessageTypeDefinition
CommonTlsContext: MessageTypeDefinition
DownstreamTlsContext: MessageTypeDefinition
GenericSecret: MessageTypeDefinition
PrivateKeyProvider: MessageTypeDefinition
SdsSecretConfig: MessageTypeDefinition
Secret: MessageTypeDefinition
TlsCertificate: MessageTypeDefinition
TlsParameters: MessageTypeDefinition
TlsSessionTicketKeys: MessageTypeDefinition
UpstreamTlsContext: MessageTypeDefinition
}
cluster: {
config: {
cluster: {
v3: {
CircuitBreakers: MessageTypeDefinition
Cluster: MessageTypeDefinition
ClusterCollection: MessageTypeDefinition
Filter: MessageTypeDefinition
LoadBalancingPolicy: MessageTypeDefinition
OutlierDetection: MessageTypeDefinition
TrackClusterStats: MessageTypeDefinition
UpstreamBindConfig: MessageTypeDefinition
UpstreamConnectionOptions: MessageTypeDefinition
}
core: {
}
core: {
v3: {
Address: MessageTypeDefinition
AggregatedConfigSource: MessageTypeDefinition
ApiConfigSource: MessageTypeDefinition
@ -48,8 +38,10 @@ export interface ProtoGrpcType {
ConfigSource: MessageTypeDefinition
ControlPlane: MessageTypeDefinition
DataSource: MessageTypeDefinition
EnvoyInternalAddress: MessageTypeDefinition
EventServiceConfig: MessageTypeDefinition
Extension: MessageTypeDefinition
ExtensionConfigSource: MessageTypeDefinition
GrpcProtocolOptions: MessageTypeDefinition
GrpcService: MessageTypeDefinition
HeaderMap: MessageTypeDefinition
@ -59,8 +51,10 @@ export interface ProtoGrpcType {
HealthStatus: EnumTypeDefinition
Http1ProtocolOptions: MessageTypeDefinition
Http2ProtocolOptions: MessageTypeDefinition
Http3ProtocolOptions: MessageTypeDefinition
HttpProtocolOptions: MessageTypeDefinition
HttpUri: MessageTypeDefinition
KeepaliveSettings: MessageTypeDefinition
Locality: MessageTypeDefinition
Metadata: MessageTypeDefinition
Node: MessageTypeDefinition
@ -73,6 +67,7 @@ export interface ProtoGrpcType {
RuntimeDouble: MessageTypeDefinition
RuntimeFeatureFlag: MessageTypeDefinition
RuntimeFractionalPercent: MessageTypeDefinition
RuntimePercent: MessageTypeDefinition
RuntimeUInt32: MessageTypeDefinition
SelfConfigSource: MessageTypeDefinition
SocketAddress: MessageTypeDefinition
@ -81,9 +76,14 @@ export interface ProtoGrpcType {
TcpProtocolOptions: MessageTypeDefinition
TrafficDirection: EnumTypeDefinition
TransportSocket: MessageTypeDefinition
TypedExtensionConfig: MessageTypeDefinition
UpstreamHttpProtocolOptions: MessageTypeDefinition
WatchedDirectory: MessageTypeDefinition
}
endpoint: {
}
endpoint: {
v3: {
ClusterLoadAssignment: MessageTypeDefinition
Endpoint: MessageTypeDefinition
LbEndpoint: MessageTypeDefinition
LocalityLbEndpoints: MessageTypeDefinition
@ -91,27 +91,26 @@ export interface ProtoGrpcType {
}
}
type: {
CodecClientType: EnumTypeDefinition
DoubleRange: MessageTypeDefinition
FractionalPercent: MessageTypeDefinition
Int32Range: MessageTypeDefinition
Int64Range: MessageTypeDefinition
Percent: MessageTypeDefinition
SemanticVersion: MessageTypeDefinition
matcher: {
ListStringMatcher: MessageTypeDefinition
RegexMatchAndSubstitute: MessageTypeDefinition
RegexMatcher: MessageTypeDefinition
StringMatcher: MessageTypeDefinition
v3: {
ListStringMatcher: MessageTypeDefinition
RegexMatchAndSubstitute: MessageTypeDefinition
RegexMatcher: MessageTypeDefinition
StringMatcher: MessageTypeDefinition
}
}
v3: {
CodecClientType: EnumTypeDefinition
DoubleRange: MessageTypeDefinition
FractionalPercent: MessageTypeDefinition
Int32Range: MessageTypeDefinition
Int64Range: MessageTypeDefinition
Percent: MessageTypeDefinition
SemanticVersion: MessageTypeDefinition
}
}
}
google: {
api: {
CustomHttpPattern: MessageTypeDefinition
Http: MessageTypeDefinition
HttpRule: MessageTypeDefinition
}
protobuf: {
Any: MessageTypeDefinition
BoolValue: MessageTypeDefinition
@ -155,10 +154,12 @@ export interface ProtoGrpcType {
udpa: {
annotations: {
FieldMigrateAnnotation: MessageTypeDefinition
FieldSecurityAnnotation: MessageTypeDefinition
FileMigrateAnnotation: MessageTypeDefinition
MigrateAnnotation: MessageTypeDefinition
PackageVersionStatus: EnumTypeDefinition
StatusAnnotation: MessageTypeDefinition
VersioningAnnotation: MessageTypeDefinition
}
}
validate: {
@ -187,5 +188,15 @@ export interface ProtoGrpcType {
UInt32Rules: MessageTypeDefinition
UInt64Rules: MessageTypeDefinition
}
xds: {
core: {
v3: {
Authority: MessageTypeDefinition
CollectionEntry: MessageTypeDefinition
ContextParams: MessageTypeDefinition
ResourceLocator: MessageTypeDefinition
}
}
}
}

View File

@ -8,12 +8,9 @@ type SubtypeConstructor<Constructor extends new (...args: any) => any, Subtype>
export interface ProtoGrpcType {
envoy: {
annotations: {
}
api: {
v2: {
ClusterLoadAssignment: MessageTypeDefinition
core: {
config: {
core: {
v3: {
Address: MessageTypeDefinition
AsyncDataSource: MessageTypeDefinition
BackoffStrategy: MessageTypeDefinition
@ -22,6 +19,7 @@ export interface ProtoGrpcType {
CidrRange: MessageTypeDefinition
ControlPlane: MessageTypeDefinition
DataSource: MessageTypeDefinition
EnvoyInternalAddress: MessageTypeDefinition
EventServiceConfig: MessageTypeDefinition
Extension: MessageTypeDefinition
GrpcService: MessageTypeDefinition
@ -42,14 +40,19 @@ export interface ProtoGrpcType {
RuntimeDouble: MessageTypeDefinition
RuntimeFeatureFlag: MessageTypeDefinition
RuntimeFractionalPercent: MessageTypeDefinition
RuntimePercent: MessageTypeDefinition
RuntimeUInt32: MessageTypeDefinition
SocketAddress: MessageTypeDefinition
SocketOption: MessageTypeDefinition
TcpKeepalive: MessageTypeDefinition
TrafficDirection: EnumTypeDefinition
TransportSocket: MessageTypeDefinition
WatchedDirectory: MessageTypeDefinition
}
endpoint: {
}
endpoint: {
v3: {
ClusterLoadAssignment: MessageTypeDefinition
Endpoint: MessageTypeDefinition
LbEndpoint: MessageTypeDefinition
LocalityLbEndpoints: MessageTypeDefinition
@ -57,27 +60,26 @@ export interface ProtoGrpcType {
}
}
type: {
CodecClientType: EnumTypeDefinition
DoubleRange: MessageTypeDefinition
FractionalPercent: MessageTypeDefinition
Int32Range: MessageTypeDefinition
Int64Range: MessageTypeDefinition
Percent: MessageTypeDefinition
SemanticVersion: MessageTypeDefinition
matcher: {
ListStringMatcher: MessageTypeDefinition
RegexMatchAndSubstitute: MessageTypeDefinition
RegexMatcher: MessageTypeDefinition
StringMatcher: MessageTypeDefinition
v3: {
ListStringMatcher: MessageTypeDefinition
RegexMatchAndSubstitute: MessageTypeDefinition
RegexMatcher: MessageTypeDefinition
StringMatcher: MessageTypeDefinition
}
}
v3: {
CodecClientType: EnumTypeDefinition
DoubleRange: MessageTypeDefinition
FractionalPercent: MessageTypeDefinition
Int32Range: MessageTypeDefinition
Int64Range: MessageTypeDefinition
Percent: MessageTypeDefinition
SemanticVersion: MessageTypeDefinition
}
}
}
google: {
api: {
CustomHttpPattern: MessageTypeDefinition
Http: MessageTypeDefinition
HttpRule: MessageTypeDefinition
}
protobuf: {
Any: MessageTypeDefinition
BoolValue: MessageTypeDefinition
@ -125,6 +127,7 @@ export interface ProtoGrpcType {
MigrateAnnotation: MessageTypeDefinition
PackageVersionStatus: EnumTypeDefinition
StatusAnnotation: MessageTypeDefinition
VersioningAnnotation: MessageTypeDefinition
}
}
validate: {

View File

@ -1,17 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/cluster.proto
import type { TcpKeepalive as _envoy_api_v2_core_TcpKeepalive, TcpKeepalive__Output as _envoy_api_v2_core_TcpKeepalive__Output } from '../../../envoy/api/v2/core/TcpKeepalive';
export interface UpstreamConnectionOptions {
/**
* If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.
*/
'tcp_keepalive'?: (_envoy_api_v2_core_TcpKeepalive);
}
export interface UpstreamConnectionOptions__Output {
/**
* If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.
*/
'tcp_keepalive'?: (_envoy_api_v2_core_TcpKeepalive__Output);
}

View File

@ -1,17 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/route.proto
import type { ConfigSource as _envoy_api_v2_core_ConfigSource, ConfigSource__Output as _envoy_api_v2_core_ConfigSource__Output } from '../../../envoy/api/v2/core/ConfigSource';
export interface Vhds {
/**
* Configuration source specifier for VHDS.
*/
'config_source'?: (_envoy_api_v2_core_ConfigSource);
}
export interface Vhds__Output {
/**
* Configuration source specifier for VHDS.
*/
'config_source'?: (_envoy_api_v2_core_ConfigSource__Output);
}

View File

@ -1,315 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
import type { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { StringMatcher as _envoy_type_matcher_StringMatcher, StringMatcher__Output as _envoy_type_matcher_StringMatcher__Output } from '../../../../envoy/type/matcher/StringMatcher';
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
/**
* Peer certificate verification mode.
*/
export enum _envoy_api_v2_auth_CertificateValidationContext_TrustChainVerification {
/**
* Perform default certificate verification (e.g., against CA / verification lists)
*/
VERIFY_TRUST_CHAIN = 0,
/**
* Connections where the certificate fails verification will be permitted.
* For HTTP connections, the result of certificate verification can be used in route matching. (
* see :ref:`validated <envoy_api_field_route.RouteMatch.TlsContextMatchOptions.validated>` ).
*/
ACCEPT_UNTRUSTED = 1,
}
/**
* [#next-free-field: 11]
*/
export interface CertificateValidationContext {
/**
* TLS certificate data containing certificate authority certificates to use in verifying
* a presented peer certificate (e.g. server certificate for clusters or client certificate
* for listeners). If not specified and a peer certificate is presented it will not be
* verified. By default, a client certificate is optional, unless one of the additional
* options (:ref:`require_client_certificate
* <envoy_api_field_auth.DownstreamTlsContext.require_client_certificate>`,
* :ref:`verify_certificate_spki
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>`,
* :ref:`verify_certificate_hash
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>`, or
* :ref:`match_subject_alt_names
* <envoy_api_field_auth.CertificateValidationContext.match_subject_alt_names>`) is also
* specified.
*
* It can optionally contain certificate revocation lists, in which case Envoy will verify
* that the presented peer certificate has not been revoked by one of the included CRLs.
*
* See :ref:`the TLS overview <arch_overview_ssl_enabling_verification>` for a list of common
* system CA locations.
*/
'trusted_ca'?: (_envoy_api_v2_core_DataSource);
/**
* An optional list of hex-encoded SHA-256 hashes. If specified, Envoy will verify that
* the SHA-256 of the DER-encoded presented certificate matches one of the specified values.
*
* A hex-encoded SHA-256 of the certificate can be generated with the following command:
*
* .. code-block:: bash
*
* $ openssl x509 -in path/to/client.crt -outform DER | openssl dgst -sha256 | cut -d" " -f2
* df6ff72fe9116521268f6f2dd4966f51df479883fe7037b39f75916ac3049d1a
*
* A long hex-encoded and colon-separated SHA-256 (a.k.a. "fingerprint") of the certificate
* can be generated with the following command:
*
* .. code-block:: bash
*
* $ openssl x509 -in path/to/client.crt -noout -fingerprint -sha256 | cut -d"=" -f2
* DF:6F:F7:2F:E9:11:65:21:26:8F:6F:2D:D4:96:6F:51:DF:47:98:83:FE:70:37:B3:9F:75:91:6A:C3:04:9D:1A
*
* Both of those formats are acceptable.
*
* When both:
* :ref:`verify_certificate_hash
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>` and
* :ref:`verify_certificate_spki
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>` are specified,
* a hash matching value from either of the lists will result in the certificate being accepted.
*/
'verify_certificate_hash'?: (string)[];
/**
* An optional list of base64-encoded SHA-256 hashes. If specified, Envoy will verify that the
* SHA-256 of the DER-encoded Subject Public Key Information (SPKI) of the presented certificate
* matches one of the specified values.
*
* A base64-encoded SHA-256 of the Subject Public Key Information (SPKI) of the certificate
* can be generated with the following command:
*
* .. code-block:: bash
*
* $ openssl x509 -in path/to/client.crt -noout -pubkey
* | openssl pkey -pubin -outform DER
* | openssl dgst -sha256 -binary
* | openssl enc -base64
* NvqYIYSbgK2vCJpQhObf77vv+bQWtc5ek5RIOwPiC9A=
*
* This is the format used in HTTP Public Key Pinning.
*
* When both:
* :ref:`verify_certificate_hash
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>` and
* :ref:`verify_certificate_spki
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>` are specified,
* a hash matching value from either of the lists will result in the certificate being accepted.
*
* .. attention::
*
* This option is preferred over :ref:`verify_certificate_hash
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>`,
* because SPKI is tied to a private key, so it doesn't change when the certificate
* is renewed using the same private key.
*/
'verify_certificate_spki'?: (string)[];
/**
* An optional list of Subject Alternative Names. If specified, Envoy will verify that the
* Subject Alternative Name of the presented certificate matches one of the specified values.
*
* .. attention::
*
* Subject Alternative Names are easily spoofable and verifying only them is insecure,
* therefore this option must be used together with :ref:`trusted_ca
* <envoy_api_field_auth.CertificateValidationContext.trusted_ca>`.
*/
'verify_subject_alt_name'?: (string)[];
/**
* [#not-implemented-hide:] Must present a signed time-stamped OCSP response.
*/
'require_ocsp_staple'?: (_google_protobuf_BoolValue);
/**
* [#not-implemented-hide:] Must present signed certificate time-stamp.
*/
'require_signed_certificate_timestamp'?: (_google_protobuf_BoolValue);
/**
* An optional `certificate revocation list
* <https://en.wikipedia.org/wiki/Certificate_revocation_list>`_
* (in PEM format). If specified, Envoy will verify that the presented peer
* certificate has not been revoked by this CRL. If this DataSource contains
* multiple CRLs, all of them will be used.
*/
'crl'?: (_envoy_api_v2_core_DataSource);
/**
* If specified, Envoy will not reject expired certificates.
*/
'allow_expired_certificate'?: (boolean);
/**
* An optional list of Subject Alternative name matchers. Envoy will verify that the
* Subject Alternative Name of the presented certificate matches one of the specified matches.
*
* When a certificate has wildcard DNS SAN entries, to match a specific client, it should be
* configured with exact match type in the :ref:`string matcher <envoy_api_msg_type.matcher.StringMatcher>`.
* For example if the certificate has "\*.example.com" as DNS SAN entry, to allow only "api.example.com",
* it should be configured as shown below.
*
* .. code-block:: yaml
*
* match_subject_alt_names:
* exact: "api.example.com"
*
* .. attention::
*
* Subject Alternative Names are easily spoofable and verifying only them is insecure,
* therefore this option must be used together with :ref:`trusted_ca
* <envoy_api_field_auth.CertificateValidationContext.trusted_ca>`.
*/
'match_subject_alt_names'?: (_envoy_type_matcher_StringMatcher)[];
/**
* Certificate trust chain verification mode.
*/
'trust_chain_verification'?: (_envoy_api_v2_auth_CertificateValidationContext_TrustChainVerification | keyof typeof _envoy_api_v2_auth_CertificateValidationContext_TrustChainVerification);
}
/**
* [#next-free-field: 11]
*/
export interface CertificateValidationContext__Output {
/**
* TLS certificate data containing certificate authority certificates to use in verifying
* a presented peer certificate (e.g. server certificate for clusters or client certificate
* for listeners). If not specified and a peer certificate is presented it will not be
* verified. By default, a client certificate is optional, unless one of the additional
* options (:ref:`require_client_certificate
* <envoy_api_field_auth.DownstreamTlsContext.require_client_certificate>`,
* :ref:`verify_certificate_spki
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>`,
* :ref:`verify_certificate_hash
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>`, or
* :ref:`match_subject_alt_names
* <envoy_api_field_auth.CertificateValidationContext.match_subject_alt_names>`) is also
* specified.
*
* It can optionally contain certificate revocation lists, in which case Envoy will verify
* that the presented peer certificate has not been revoked by one of the included CRLs.
*
* See :ref:`the TLS overview <arch_overview_ssl_enabling_verification>` for a list of common
* system CA locations.
*/
'trusted_ca'?: (_envoy_api_v2_core_DataSource__Output);
/**
* An optional list of hex-encoded SHA-256 hashes. If specified, Envoy will verify that
* the SHA-256 of the DER-encoded presented certificate matches one of the specified values.
*
* A hex-encoded SHA-256 of the certificate can be generated with the following command:
*
* .. code-block:: bash
*
* $ openssl x509 -in path/to/client.crt -outform DER | openssl dgst -sha256 | cut -d" " -f2
* df6ff72fe9116521268f6f2dd4966f51df479883fe7037b39f75916ac3049d1a
*
* A long hex-encoded and colon-separated SHA-256 (a.k.a. "fingerprint") of the certificate
* can be generated with the following command:
*
* .. code-block:: bash
*
* $ openssl x509 -in path/to/client.crt -noout -fingerprint -sha256 | cut -d"=" -f2
* DF:6F:F7:2F:E9:11:65:21:26:8F:6F:2D:D4:96:6F:51:DF:47:98:83:FE:70:37:B3:9F:75:91:6A:C3:04:9D:1A
*
* Both of those formats are acceptable.
*
* When both:
* :ref:`verify_certificate_hash
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>` and
* :ref:`verify_certificate_spki
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>` are specified,
* a hash matching value from either of the lists will result in the certificate being accepted.
*/
'verify_certificate_hash': (string)[];
/**
* An optional list of base64-encoded SHA-256 hashes. If specified, Envoy will verify that the
* SHA-256 of the DER-encoded Subject Public Key Information (SPKI) of the presented certificate
* matches one of the specified values.
*
* A base64-encoded SHA-256 of the Subject Public Key Information (SPKI) of the certificate
* can be generated with the following command:
*
* .. code-block:: bash
*
* $ openssl x509 -in path/to/client.crt -noout -pubkey
* | openssl pkey -pubin -outform DER
* | openssl dgst -sha256 -binary
* | openssl enc -base64
* NvqYIYSbgK2vCJpQhObf77vv+bQWtc5ek5RIOwPiC9A=
*
* This is the format used in HTTP Public Key Pinning.
*
* When both:
* :ref:`verify_certificate_hash
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>` and
* :ref:`verify_certificate_spki
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>` are specified,
* a hash matching value from either of the lists will result in the certificate being accepted.
*
* .. attention::
*
* This option is preferred over :ref:`verify_certificate_hash
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>`,
* because SPKI is tied to a private key, so it doesn't change when the certificate
* is renewed using the same private key.
*/
'verify_certificate_spki': (string)[];
/**
* An optional list of Subject Alternative Names. If specified, Envoy will verify that the
* Subject Alternative Name of the presented certificate matches one of the specified values.
*
* .. attention::
*
* Subject Alternative Names are easily spoofable and verifying only them is insecure,
* therefore this option must be used together with :ref:`trusted_ca
* <envoy_api_field_auth.CertificateValidationContext.trusted_ca>`.
*/
'verify_subject_alt_name': (string)[];
/**
* [#not-implemented-hide:] Must present a signed time-stamped OCSP response.
*/
'require_ocsp_staple'?: (_google_protobuf_BoolValue__Output);
/**
* [#not-implemented-hide:] Must present signed certificate time-stamp.
*/
'require_signed_certificate_timestamp'?: (_google_protobuf_BoolValue__Output);
/**
* An optional `certificate revocation list
* <https://en.wikipedia.org/wiki/Certificate_revocation_list>`_
* (in PEM format). If specified, Envoy will verify that the presented peer
* certificate has not been revoked by this CRL. If this DataSource contains
* multiple CRLs, all of them will be used.
*/
'crl'?: (_envoy_api_v2_core_DataSource__Output);
/**
* If specified, Envoy will not reject expired certificates.
*/
'allow_expired_certificate': (boolean);
/**
* An optional list of Subject Alternative name matchers. Envoy will verify that the
* Subject Alternative Name of the presented certificate matches one of the specified matches.
*
* When a certificate has wildcard DNS SAN entries, to match a specific client, it should be
* configured with exact match type in the :ref:`string matcher <envoy_api_msg_type.matcher.StringMatcher>`.
* For example if the certificate has "\*.example.com" as DNS SAN entry, to allow only "api.example.com",
* it should be configured as shown below.
*
* .. code-block:: yaml
*
* match_subject_alt_names:
* exact: "api.example.com"
*
* .. attention::
*
* Subject Alternative Names are easily spoofable and verifying only them is insecure,
* therefore this option must be used together with :ref:`trusted_ca
* <envoy_api_field_auth.CertificateValidationContext.trusted_ca>`.
*/
'match_subject_alt_names': (_envoy_type_matcher_StringMatcher__Output)[];
/**
* Certificate trust chain verification mode.
*/
'trust_chain_verification': (keyof typeof _envoy_api_v2_auth_CertificateValidationContext_TrustChainVerification);
}

View File

@ -1,140 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/tls.proto
import type { TlsParameters as _envoy_api_v2_auth_TlsParameters, TlsParameters__Output as _envoy_api_v2_auth_TlsParameters__Output } from '../../../../envoy/api/v2/auth/TlsParameters';
import type { TlsCertificate as _envoy_api_v2_auth_TlsCertificate, TlsCertificate__Output as _envoy_api_v2_auth_TlsCertificate__Output } from '../../../../envoy/api/v2/auth/TlsCertificate';
import type { CertificateValidationContext as _envoy_api_v2_auth_CertificateValidationContext, CertificateValidationContext__Output as _envoy_api_v2_auth_CertificateValidationContext__Output } from '../../../../envoy/api/v2/auth/CertificateValidationContext';
import type { SdsSecretConfig as _envoy_api_v2_auth_SdsSecretConfig, SdsSecretConfig__Output as _envoy_api_v2_auth_SdsSecretConfig__Output } from '../../../../envoy/api/v2/auth/SdsSecretConfig';
export interface _envoy_api_v2_auth_CommonTlsContext_CombinedCertificateValidationContext {
/**
* How to validate peer certificates.
*/
'default_validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext);
/**
* Config for fetching validation context via SDS API.
*/
'validation_context_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig);
}
export interface _envoy_api_v2_auth_CommonTlsContext_CombinedCertificateValidationContext__Output {
/**
* How to validate peer certificates.
*/
'default_validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext__Output);
/**
* Config for fetching validation context via SDS API.
*/
'validation_context_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig__Output);
}
/**
* TLS context shared by both client and server TLS contexts.
* [#next-free-field: 9]
*/
export interface CommonTlsContext {
/**
* TLS protocol versions, cipher suites etc.
*/
'tls_params'?: (_envoy_api_v2_auth_TlsParameters);
/**
* :ref:`Multiple TLS certificates <arch_overview_ssl_cert_select>` can be associated with the
* same context to allow both RSA and ECDSA certificates.
*
* Only a single TLS certificate is supported in client contexts. In server contexts, the first
* RSA certificate is used for clients that only support RSA and the first ECDSA certificate is
* used for clients that support ECDSA.
*/
'tls_certificates'?: (_envoy_api_v2_auth_TlsCertificate)[];
/**
* How to validate peer certificates.
*/
'validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext);
/**
* Supplies the list of ALPN protocols that the listener should expose. In
* practice this is likely to be set to one of two values (see the
* :ref:`codec_type
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.codec_type>`
* parameter in the HTTP connection manager for more information):
*
* * "h2,http/1.1" If the listener is going to support both HTTP/2 and HTTP/1.1.
* * "http/1.1" If the listener is only going to support HTTP/1.1.
*
* There is no default for this parameter. If empty, Envoy will not expose ALPN.
*/
'alpn_protocols'?: (string)[];
/**
* Configs for fetching TLS certificates via SDS API.
*/
'tls_certificate_sds_secret_configs'?: (_envoy_api_v2_auth_SdsSecretConfig)[];
/**
* Config for fetching validation context via SDS API.
*/
'validation_context_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig);
/**
* Combined certificate validation context holds a default CertificateValidationContext
* and SDS config. When SDS server returns dynamic CertificateValidationContext, both dynamic
* and default CertificateValidationContext are merged into a new CertificateValidationContext
* for validation. This merge is done by Message::MergeFrom(), so dynamic
* CertificateValidationContext overwrites singular fields in default
* CertificateValidationContext, and concatenates repeated fields to default
* CertificateValidationContext, and logical OR is applied to boolean fields.
*/
'combined_validation_context'?: (_envoy_api_v2_auth_CommonTlsContext_CombinedCertificateValidationContext);
'validation_context_type'?: "validation_context"|"validation_context_sds_secret_config"|"combined_validation_context";
}
/**
* TLS context shared by both client and server TLS contexts.
* [#next-free-field: 9]
*/
export interface CommonTlsContext__Output {
/**
* TLS protocol versions, cipher suites etc.
*/
'tls_params'?: (_envoy_api_v2_auth_TlsParameters__Output);
/**
* :ref:`Multiple TLS certificates <arch_overview_ssl_cert_select>` can be associated with the
* same context to allow both RSA and ECDSA certificates.
*
* Only a single TLS certificate is supported in client contexts. In server contexts, the first
* RSA certificate is used for clients that only support RSA and the first ECDSA certificate is
* used for clients that support ECDSA.
*/
'tls_certificates': (_envoy_api_v2_auth_TlsCertificate__Output)[];
/**
* How to validate peer certificates.
*/
'validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext__Output);
/**
* Supplies the list of ALPN protocols that the listener should expose. In
* practice this is likely to be set to one of two values (see the
* :ref:`codec_type
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.codec_type>`
* parameter in the HTTP connection manager for more information):
*
* * "h2,http/1.1" If the listener is going to support both HTTP/2 and HTTP/1.1.
* * "http/1.1" If the listener is only going to support HTTP/1.1.
*
* There is no default for this parameter. If empty, Envoy will not expose ALPN.
*/
'alpn_protocols': (string)[];
/**
* Configs for fetching TLS certificates via SDS API.
*/
'tls_certificate_sds_secret_configs': (_envoy_api_v2_auth_SdsSecretConfig__Output)[];
/**
* Config for fetching validation context via SDS API.
*/
'validation_context_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig__Output);
/**
* Combined certificate validation context holds a default CertificateValidationContext
* and SDS config. When SDS server returns dynamic CertificateValidationContext, both dynamic
* and default CertificateValidationContext are merged into a new CertificateValidationContext
* for validation. This merge is done by Message::MergeFrom(), so dynamic
* CertificateValidationContext overwrites singular fields in default
* CertificateValidationContext, and concatenates repeated fields to default
* CertificateValidationContext, and logical OR is applied to boolean fields.
*/
'combined_validation_context'?: (_envoy_api_v2_auth_CommonTlsContext_CombinedCertificateValidationContext__Output);
'validation_context_type': "validation_context"|"validation_context_sds_secret_config"|"combined_validation_context";
}

View File

@ -1,101 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/tls.proto
import type { CommonTlsContext as _envoy_api_v2_auth_CommonTlsContext, CommonTlsContext__Output as _envoy_api_v2_auth_CommonTlsContext__Output } from '../../../../envoy/api/v2/auth/CommonTlsContext';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { TlsSessionTicketKeys as _envoy_api_v2_auth_TlsSessionTicketKeys, TlsSessionTicketKeys__Output as _envoy_api_v2_auth_TlsSessionTicketKeys__Output } from '../../../../envoy/api/v2/auth/TlsSessionTicketKeys';
import type { SdsSecretConfig as _envoy_api_v2_auth_SdsSecretConfig, SdsSecretConfig__Output as _envoy_api_v2_auth_SdsSecretConfig__Output } from '../../../../envoy/api/v2/auth/SdsSecretConfig';
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
/**
* [#next-free-field: 8]
*/
export interface DownstreamTlsContext {
/**
* Common TLS context settings.
*/
'common_tls_context'?: (_envoy_api_v2_auth_CommonTlsContext);
/**
* If specified, Envoy will reject connections without a valid client
* certificate.
*/
'require_client_certificate'?: (_google_protobuf_BoolValue);
/**
* If specified, Envoy will reject connections without a valid and matching SNI.
* [#not-implemented-hide:]
*/
'require_sni'?: (_google_protobuf_BoolValue);
/**
* TLS session ticket key settings.
*/
'session_ticket_keys'?: (_envoy_api_v2_auth_TlsSessionTicketKeys);
/**
* Config for fetching TLS session ticket keys via SDS API.
*/
'session_ticket_keys_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig);
/**
* If specified, session_timeout will change maximum lifetime (in seconds) of TLS session
* Currently this value is used as a hint to `TLS session ticket lifetime (for TLSv1.2)
* <https://tools.ietf.org/html/rfc5077#section-5.6>`
* only seconds could be specified (fractional seconds are going to be ignored).
*/
'session_timeout'?: (_google_protobuf_Duration);
/**
* Config for controlling stateless TLS session resumption: setting this to true will cause the TLS
* server to not issue TLS session tickets for the purposes of stateless TLS session resumption.
* If set to false, the TLS server will issue TLS session tickets and encrypt/decrypt them using
* the keys specified through either :ref:`session_ticket_keys <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys>`
* or :ref:`session_ticket_keys_sds_secret_config <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys_sds_secret_config>`.
* If this config is set to false and no keys are explicitly configured, the TLS server will issue
* TLS session tickets and encrypt/decrypt them using an internally-generated and managed key, with the
* implication that sessions cannot be resumed across hot restarts or on different hosts.
*/
'disable_stateless_session_resumption'?: (boolean);
'session_ticket_keys_type'?: "session_ticket_keys"|"session_ticket_keys_sds_secret_config"|"disable_stateless_session_resumption";
}
/**
* [#next-free-field: 8]
*/
export interface DownstreamTlsContext__Output {
/**
* Common TLS context settings.
*/
'common_tls_context'?: (_envoy_api_v2_auth_CommonTlsContext__Output);
/**
* If specified, Envoy will reject connections without a valid client
* certificate.
*/
'require_client_certificate'?: (_google_protobuf_BoolValue__Output);
/**
* If specified, Envoy will reject connections without a valid and matching SNI.
* [#not-implemented-hide:]
*/
'require_sni'?: (_google_protobuf_BoolValue__Output);
/**
* TLS session ticket key settings.
*/
'session_ticket_keys'?: (_envoy_api_v2_auth_TlsSessionTicketKeys__Output);
/**
* Config for fetching TLS session ticket keys via SDS API.
*/
'session_ticket_keys_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig__Output);
/**
* If specified, session_timeout will change maximum lifetime (in seconds) of TLS session
* Currently this value is used as a hint to `TLS session ticket lifetime (for TLSv1.2)
* <https://tools.ietf.org/html/rfc5077#section-5.6>`
* only seconds could be specified (fractional seconds are going to be ignored).
*/
'session_timeout'?: (_google_protobuf_Duration__Output);
/**
* Config for controlling stateless TLS session resumption: setting this to true will cause the TLS
* server to not issue TLS session tickets for the purposes of stateless TLS session resumption.
* If set to false, the TLS server will issue TLS session tickets and encrypt/decrypt them using
* the keys specified through either :ref:`session_ticket_keys <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys>`
* or :ref:`session_ticket_keys_sds_secret_config <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys_sds_secret_config>`.
* If this config is set to false and no keys are explicitly configured, the TLS server will issue
* TLS session tickets and encrypt/decrypt them using an internally-generated and managed key, with the
* implication that sessions cannot be resumed across hot restarts or on different hosts.
*/
'disable_stateless_session_resumption'?: (boolean);
'session_ticket_keys_type': "session_ticket_keys"|"session_ticket_keys_sds_secret_config"|"disable_stateless_session_resumption";
}

View File

@ -1,17 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/secret.proto
import type { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
export interface GenericSecret {
/**
* Secret of generic type and is available to filters.
*/
'secret'?: (_envoy_api_v2_core_DataSource);
}
export interface GenericSecret__Output {
/**
* Secret of generic type and is available to filters.
*/
'secret'?: (_envoy_api_v2_core_DataSource__Output);
}

View File

@ -1,42 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
/**
* BoringSSL private key method configuration. The private key methods are used for external
* (potentially asynchronous) signing and decryption operations. Some use cases for private key
* methods would be TPM support and TLS acceleration.
*/
export interface PrivateKeyProvider {
/**
* Private key method provider name. The name must match a
* supported private key method provider type.
*/
'provider_name'?: (string);
'config'?: (_google_protobuf_Struct);
'typed_config'?: (_google_protobuf_Any);
/**
* Private key method provider specific configuration.
*/
'config_type'?: "config"|"typed_config";
}
/**
* BoringSSL private key method configuration. The private key methods are used for external
* (potentially asynchronous) signing and decryption operations. Some use cases for private key
* methods would be TPM support and TLS acceleration.
*/
export interface PrivateKeyProvider__Output {
/**
* Private key method provider name. The name must match a
* supported private key method provider type.
*/
'provider_name': (string);
'config'?: (_google_protobuf_Struct__Output);
'typed_config'?: (_google_protobuf_Any__Output);
/**
* Private key method provider specific configuration.
*/
'config_type': "config"|"typed_config";
}

View File

@ -1,23 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/secret.proto
import type { ConfigSource as _envoy_api_v2_core_ConfigSource, ConfigSource__Output as _envoy_api_v2_core_ConfigSource__Output } from '../../../../envoy/api/v2/core/ConfigSource';
export interface SdsSecretConfig {
/**
* Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
* When both name and config are specified, then secret can be fetched and/or reloaded via
* SDS. When only name is specified, then secret will be loaded from static resources.
*/
'name'?: (string);
'sds_config'?: (_envoy_api_v2_core_ConfigSource);
}
export interface SdsSecretConfig__Output {
/**
* Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
* When both name and config are specified, then secret can be fetched and/or reloaded via
* SDS. When only name is specified, then secret will be loaded from static resources.
*/
'name': (string);
'sds_config'?: (_envoy_api_v2_core_ConfigSource__Output);
}

View File

@ -1,36 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/secret.proto
import type { TlsCertificate as _envoy_api_v2_auth_TlsCertificate, TlsCertificate__Output as _envoy_api_v2_auth_TlsCertificate__Output } from '../../../../envoy/api/v2/auth/TlsCertificate';
import type { TlsSessionTicketKeys as _envoy_api_v2_auth_TlsSessionTicketKeys, TlsSessionTicketKeys__Output as _envoy_api_v2_auth_TlsSessionTicketKeys__Output } from '../../../../envoy/api/v2/auth/TlsSessionTicketKeys';
import type { CertificateValidationContext as _envoy_api_v2_auth_CertificateValidationContext, CertificateValidationContext__Output as _envoy_api_v2_auth_CertificateValidationContext__Output } from '../../../../envoy/api/v2/auth/CertificateValidationContext';
import type { GenericSecret as _envoy_api_v2_auth_GenericSecret, GenericSecret__Output as _envoy_api_v2_auth_GenericSecret__Output } from '../../../../envoy/api/v2/auth/GenericSecret';
/**
* [#next-free-field: 6]
*/
export interface Secret {
/**
* Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
*/
'name'?: (string);
'tls_certificate'?: (_envoy_api_v2_auth_TlsCertificate);
'session_ticket_keys'?: (_envoy_api_v2_auth_TlsSessionTicketKeys);
'validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext);
'generic_secret'?: (_envoy_api_v2_auth_GenericSecret);
'type'?: "tls_certificate"|"session_ticket_keys"|"validation_context"|"generic_secret";
}
/**
* [#next-free-field: 6]
*/
export interface Secret__Output {
/**
* Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
*/
'name': (string);
'tls_certificate'?: (_envoy_api_v2_auth_TlsCertificate__Output);
'session_ticket_keys'?: (_envoy_api_v2_auth_TlsSessionTicketKeys__Output);
'validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext__Output);
'generic_secret'?: (_envoy_api_v2_auth_GenericSecret__Output);
'type': "tls_certificate"|"session_ticket_keys"|"validation_context"|"generic_secret";
}

View File

@ -1,78 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
import type { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
import type { PrivateKeyProvider as _envoy_api_v2_auth_PrivateKeyProvider, PrivateKeyProvider__Output as _envoy_api_v2_auth_PrivateKeyProvider__Output } from '../../../../envoy/api/v2/auth/PrivateKeyProvider';
/**
* [#next-free-field: 7]
*/
export interface TlsCertificate {
/**
* The TLS certificate chain.
*/
'certificate_chain'?: (_envoy_api_v2_core_DataSource);
/**
* The TLS private key.
*/
'private_key'?: (_envoy_api_v2_core_DataSource);
/**
* The password to decrypt the TLS private key. If this field is not set, it is assumed that the
* TLS private key is not password encrypted.
*/
'password'?: (_envoy_api_v2_core_DataSource);
/**
* [#not-implemented-hide:]
*/
'ocsp_staple'?: (_envoy_api_v2_core_DataSource);
/**
* [#not-implemented-hide:]
*/
'signed_certificate_timestamp'?: (_envoy_api_v2_core_DataSource)[];
/**
* BoringSSL private key method provider. This is an alternative to :ref:`private_key
* <envoy_api_field_auth.TlsCertificate.private_key>` field. This can't be
* marked as ``oneof`` due to API compatibility reasons. Setting both :ref:`private_key
* <envoy_api_field_auth.TlsCertificate.private_key>` and
* :ref:`private_key_provider
* <envoy_api_field_auth.TlsCertificate.private_key_provider>` fields will result in an
* error.
*/
'private_key_provider'?: (_envoy_api_v2_auth_PrivateKeyProvider);
}
/**
* [#next-free-field: 7]
*/
export interface TlsCertificate__Output {
/**
* The TLS certificate chain.
*/
'certificate_chain'?: (_envoy_api_v2_core_DataSource__Output);
/**
* The TLS private key.
*/
'private_key'?: (_envoy_api_v2_core_DataSource__Output);
/**
* The password to decrypt the TLS private key. If this field is not set, it is assumed that the
* TLS private key is not password encrypted.
*/
'password'?: (_envoy_api_v2_core_DataSource__Output);
/**
* [#not-implemented-hide:]
*/
'ocsp_staple'?: (_envoy_api_v2_core_DataSource__Output);
/**
* [#not-implemented-hide:]
*/
'signed_certificate_timestamp': (_envoy_api_v2_core_DataSource__Output)[];
/**
* BoringSSL private key method provider. This is an alternative to :ref:`private_key
* <envoy_api_field_auth.TlsCertificate.private_key>` field. This can't be
* marked as ``oneof`` due to API compatibility reasons. Setting both :ref:`private_key
* <envoy_api_field_auth.TlsCertificate.private_key>` and
* :ref:`private_key_provider
* <envoy_api_field_auth.TlsCertificate.private_key_provider>` fields will result in an
* error.
*/
'private_key_provider'?: (_envoy_api_v2_auth_PrivateKeyProvider__Output);
}

View File

@ -1,171 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
export enum _envoy_api_v2_auth_TlsParameters_TlsProtocol {
/**
* Envoy will choose the optimal TLS version.
*/
TLS_AUTO = 0,
/**
* TLS 1.0
*/
TLSv1_0 = 1,
/**
* TLS 1.1
*/
TLSv1_1 = 2,
/**
* TLS 1.2
*/
TLSv1_2 = 3,
/**
* TLS 1.3
*/
TLSv1_3 = 4,
}
export interface TlsParameters {
/**
* Minimum TLS protocol version. By default, it's ``TLSv1_2`` for clients and ``TLSv1_0`` for
* servers.
*/
'tls_minimum_protocol_version'?: (_envoy_api_v2_auth_TlsParameters_TlsProtocol | keyof typeof _envoy_api_v2_auth_TlsParameters_TlsProtocol);
/**
* Maximum TLS protocol version. By default, it's ``TLSv1_3`` for servers in non-FIPS builds, and
* ``TLSv1_2`` for clients and for servers using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`.
*/
'tls_maximum_protocol_version'?: (_envoy_api_v2_auth_TlsParameters_TlsProtocol | keyof typeof _envoy_api_v2_auth_TlsParameters_TlsProtocol);
/**
* If specified, the TLS listener will only support the specified `cipher list
* <https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration>`_
* when negotiating TLS 1.0-1.2 (this setting has no effect when negotiating TLS 1.3). If not
* specified, the default list will be used.
*
* In non-FIPS builds, the default cipher list is:
*
* .. code-block:: none
*
* [ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]
* [ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]
* ECDHE-ECDSA-AES128-SHA
* ECDHE-RSA-AES128-SHA
* AES128-GCM-SHA256
* AES128-SHA
* ECDHE-ECDSA-AES256-GCM-SHA384
* ECDHE-RSA-AES256-GCM-SHA384
* ECDHE-ECDSA-AES256-SHA
* ECDHE-RSA-AES256-SHA
* AES256-GCM-SHA384
* AES256-SHA
*
* In builds using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`, the default cipher list is:
*
* .. code-block:: none
*
* ECDHE-ECDSA-AES128-GCM-SHA256
* ECDHE-RSA-AES128-GCM-SHA256
* ECDHE-ECDSA-AES128-SHA
* ECDHE-RSA-AES128-SHA
* AES128-GCM-SHA256
* AES128-SHA
* ECDHE-ECDSA-AES256-GCM-SHA384
* ECDHE-RSA-AES256-GCM-SHA384
* ECDHE-ECDSA-AES256-SHA
* ECDHE-RSA-AES256-SHA
* AES256-GCM-SHA384
* AES256-SHA
*/
'cipher_suites'?: (string)[];
/**
* If specified, the TLS connection will only support the specified ECDH
* curves. If not specified, the default curves will be used.
*
* In non-FIPS builds, the default curves are:
*
* .. code-block:: none
*
* X25519
* P-256
*
* In builds using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`, the default curve is:
*
* .. code-block:: none
*
* P-256
*/
'ecdh_curves'?: (string)[];
}
export interface TlsParameters__Output {
/**
* Minimum TLS protocol version. By default, it's ``TLSv1_2`` for clients and ``TLSv1_0`` for
* servers.
*/
'tls_minimum_protocol_version': (keyof typeof _envoy_api_v2_auth_TlsParameters_TlsProtocol);
/**
* Maximum TLS protocol version. By default, it's ``TLSv1_3`` for servers in non-FIPS builds, and
* ``TLSv1_2`` for clients and for servers using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`.
*/
'tls_maximum_protocol_version': (keyof typeof _envoy_api_v2_auth_TlsParameters_TlsProtocol);
/**
* If specified, the TLS listener will only support the specified `cipher list
* <https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration>`_
* when negotiating TLS 1.0-1.2 (this setting has no effect when negotiating TLS 1.3). If not
* specified, the default list will be used.
*
* In non-FIPS builds, the default cipher list is:
*
* .. code-block:: none
*
* [ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]
* [ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]
* ECDHE-ECDSA-AES128-SHA
* ECDHE-RSA-AES128-SHA
* AES128-GCM-SHA256
* AES128-SHA
* ECDHE-ECDSA-AES256-GCM-SHA384
* ECDHE-RSA-AES256-GCM-SHA384
* ECDHE-ECDSA-AES256-SHA
* ECDHE-RSA-AES256-SHA
* AES256-GCM-SHA384
* AES256-SHA
*
* In builds using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`, the default cipher list is:
*
* .. code-block:: none
*
* ECDHE-ECDSA-AES128-GCM-SHA256
* ECDHE-RSA-AES128-GCM-SHA256
* ECDHE-ECDSA-AES128-SHA
* ECDHE-RSA-AES128-SHA
* AES128-GCM-SHA256
* AES128-SHA
* ECDHE-ECDSA-AES256-GCM-SHA384
* ECDHE-RSA-AES256-GCM-SHA384
* ECDHE-ECDSA-AES256-SHA
* ECDHE-RSA-AES256-SHA
* AES256-GCM-SHA384
* AES256-SHA
*/
'cipher_suites': (string)[];
/**
* If specified, the TLS connection will only support the specified ECDH
* curves. If not specified, the default curves will be used.
*
* In non-FIPS builds, the default curves are:
*
* .. code-block:: none
*
* X25519
* P-256
*
* In builds using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`, the default curve is:
*
* .. code-block:: none
*
* P-256
*/
'ecdh_curves': (string)[];
}

View File

@ -1,61 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
import type { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
export interface TlsSessionTicketKeys {
/**
* Keys for encrypting and decrypting TLS session tickets. The
* first key in the array contains the key to encrypt all new sessions created by this context.
* All keys are candidates for decrypting received tickets. This allows for easy rotation of keys
* by, for example, putting the new key first, and the previous key second.
*
* If :ref:`session_ticket_keys <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys>`
* is not specified, the TLS library will still support resuming sessions via tickets, but it will
* use an internally-generated and managed key, so sessions cannot be resumed across hot restarts
* or on different hosts.
*
* Each key must contain exactly 80 bytes of cryptographically-secure random data. For
* example, the output of ``openssl rand 80``.
*
* .. attention::
*
* Using this feature has serious security considerations and risks. Improper handling of keys
* may result in loss of secrecy in connections, even if ciphers supporting perfect forward
* secrecy are used. See https://www.imperialviolet.org/2013/06/27/botchingpfs.html for some
* discussion. To minimize the risk, you must:
*
* * Keep the session ticket keys at least as secure as your TLS certificate private keys
* * Rotate session ticket keys at least daily, and preferably hourly
* * Always generate keys using a cryptographically-secure random data source
*/
'keys'?: (_envoy_api_v2_core_DataSource)[];
}
export interface TlsSessionTicketKeys__Output {
/**
* Keys for encrypting and decrypting TLS session tickets. The
* first key in the array contains the key to encrypt all new sessions created by this context.
* All keys are candidates for decrypting received tickets. This allows for easy rotation of keys
* by, for example, putting the new key first, and the previous key second.
*
* If :ref:`session_ticket_keys <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys>`
* is not specified, the TLS library will still support resuming sessions via tickets, but it will
* use an internally-generated and managed key, so sessions cannot be resumed across hot restarts
* or on different hosts.
*
* Each key must contain exactly 80 bytes of cryptographically-secure random data. For
* example, the output of ``openssl rand 80``.
*
* .. attention::
*
* Using this feature has serious security considerations and risks. Improper handling of keys
* may result in loss of secrecy in connections, even if ciphers supporting perfect forward
* secrecy are used. See https://www.imperialviolet.org/2013/06/27/botchingpfs.html for some
* discussion. To minimize the risk, you must:
*
* * Keep the session ticket keys at least as secure as your TLS certificate private keys
* * Rotate session ticket keys at least daily, and preferably hourly
* * Always generate keys using a cryptographically-secure random data source
*/
'keys': (_envoy_api_v2_core_DataSource__Output)[];
}

View File

@ -1,68 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/auth/tls.proto
import type { CommonTlsContext as _envoy_api_v2_auth_CommonTlsContext, CommonTlsContext__Output as _envoy_api_v2_auth_CommonTlsContext__Output } from '../../../../envoy/api/v2/auth/CommonTlsContext';
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
export interface UpstreamTlsContext {
/**
* Common TLS context settings.
*
* .. attention::
*
* Server certificate verification is not enabled by default. Configure
* :ref:`trusted_ca<envoy_api_field_auth.CertificateValidationContext.trusted_ca>` to enable
* verification.
*/
'common_tls_context'?: (_envoy_api_v2_auth_CommonTlsContext);
/**
* SNI string to use when creating TLS backend connections.
*/
'sni'?: (string);
/**
* If true, server-initiated TLS renegotiation will be allowed.
*
* .. attention::
*
* TLS renegotiation is considered insecure and shouldn't be used unless absolutely necessary.
*/
'allow_renegotiation'?: (boolean);
/**
* Maximum number of session keys (Pre-Shared Keys for TLSv1.3+, Session IDs and Session Tickets
* for TLSv1.2 and older) to store for the purpose of session resumption.
*
* Defaults to 1, setting this to 0 disables session resumption.
*/
'max_session_keys'?: (_google_protobuf_UInt32Value);
}
export interface UpstreamTlsContext__Output {
/**
* Common TLS context settings.
*
* .. attention::
*
* Server certificate verification is not enabled by default. Configure
* :ref:`trusted_ca<envoy_api_field_auth.CertificateValidationContext.trusted_ca>` to enable
* verification.
*/
'common_tls_context'?: (_envoy_api_v2_auth_CommonTlsContext__Output);
/**
* SNI string to use when creating TLS backend connections.
*/
'sni': (string);
/**
* If true, server-initiated TLS renegotiation will be allowed.
*
* .. attention::
*
* TLS renegotiation is considered insecure and shouldn't be used unless absolutely necessary.
*/
'allow_renegotiation': (boolean);
/**
* Maximum number of session keys (Pre-Shared Keys for TLSv1.3+, Session IDs and Session Tickets
* for TLSv1.2 and older) to store for the purpose of session resumption.
*
* Defaults to 1, setting this to 0 disables session resumption.
*/
'max_session_keys'?: (_google_protobuf_UInt32Value__Output);
}

View File

@ -14,7 +14,7 @@ export interface BuildVersion {
'version'?: (_envoy_type_SemanticVersion);
/**
* Free-form build information.
* Envoy defines several well known keys in the source/common/common/version.h file
* Envoy defines several well known keys in the source/common/version/version.h file
*/
'metadata'?: (_google_protobuf_Struct);
}
@ -30,7 +30,7 @@ export interface BuildVersion__Output {
'version'?: (_envoy_type_SemanticVersion__Output);
/**
* Free-form build information.
* Envoy defines several well known keys in the source/common/common/version.h file
* Envoy defines several well known keys in the source/common/version/version.h file
*/
'metadata'?: (_google_protobuf_Struct__Output);
}

View File

@ -1,17 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
import type { Http2ProtocolOptions as _envoy_api_v2_core_Http2ProtocolOptions, Http2ProtocolOptions__Output as _envoy_api_v2_core_Http2ProtocolOptions__Output } from '../../../../envoy/api/v2/core/Http2ProtocolOptions';
/**
* [#not-implemented-hide:]
*/
export interface GrpcProtocolOptions {
'http2_protocol_options'?: (_envoy_api_v2_core_Http2ProtocolOptions);
}
/**
* [#not-implemented-hide:]
*/
export interface GrpcProtocolOptions__Output {
'http2_protocol_options'?: (_envoy_api_v2_core_Http2ProtocolOptions__Output);
}

View File

@ -22,7 +22,7 @@ export interface RuntimeDouble__Output {
/**
* Default value if runtime value is not available.
*/
'default_value': (number | string);
'default_value': (number);
/**
* Runtime key to get value for comparison. This value is used if defined.
*/

View File

@ -1,20 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
/**
* [#not-implemented-hide:]
* Self-referencing config source options. This is currently empty, but when
* set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
* specify that other data can be obtained from the same server.
*/
export interface SelfConfigSource {
}
/**
* [#not-implemented-hide:]
* Self-referencing config source options. This is currently empty, but when
* set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
* specify that other data can be obtained from the same server.
*/
export interface SelfConfigSource__Output {
}

View File

@ -37,5 +37,5 @@ export interface EndpointLoadMetricStats__Output {
* Sum of metric values across all calls that finished with this metric for
* load_reporting_interval.
*/
'total_metric_value': (number | string);
'total_metric_value': (number);
}

View File

@ -1,34 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/listener/listener_components.proto
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
export interface Filter {
/**
* The name of the filter to instantiate. The name must match a
* :ref:`supported filter <config_network_filters>`.
*/
'name'?: (string);
'config'?: (_google_protobuf_Struct);
'typed_config'?: (_google_protobuf_Any);
/**
* Filter specific configuration which depends on the filter being
* instantiated. See the supported filters for further documentation.
*/
'config_type'?: "config"|"typed_config";
}
export interface Filter__Output {
/**
* The name of the filter to instantiate. The name must match a
* :ref:`supported filter <config_network_filters>`.
*/
'name': (string);
'config'?: (_google_protobuf_Struct__Output);
'typed_config'?: (_google_protobuf_Any__Output);
/**
* Filter specific configuration which depends on the filter being
* instantiated. See the supported filters for further documentation.
*/
'config_type': "config"|"typed_config";
}

View File

@ -1,118 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/listener/listener_components.proto
import type { FilterChainMatch as _envoy_api_v2_listener_FilterChainMatch, FilterChainMatch__Output as _envoy_api_v2_listener_FilterChainMatch__Output } from '../../../../envoy/api/v2/listener/FilterChainMatch';
import type { DownstreamTlsContext as _envoy_api_v2_auth_DownstreamTlsContext, DownstreamTlsContext__Output as _envoy_api_v2_auth_DownstreamTlsContext__Output } from '../../../../envoy/api/v2/auth/DownstreamTlsContext';
import type { Filter as _envoy_api_v2_listener_Filter, Filter__Output as _envoy_api_v2_listener_Filter__Output } from '../../../../envoy/api/v2/listener/Filter';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { Metadata as _envoy_api_v2_core_Metadata, Metadata__Output as _envoy_api_v2_core_Metadata__Output } from '../../../../envoy/api/v2/core/Metadata';
import type { TransportSocket as _envoy_api_v2_core_TransportSocket, TransportSocket__Output as _envoy_api_v2_core_TransportSocket__Output } from '../../../../envoy/api/v2/core/TransportSocket';
/**
* A filter chain wraps a set of match criteria, an option TLS context, a set of filters, and
* various other parameters.
* [#next-free-field: 8]
*/
export interface FilterChain {
/**
* The criteria to use when matching a connection to this filter chain.
*/
'filter_chain_match'?: (_envoy_api_v2_listener_FilterChainMatch);
/**
* The TLS context for this filter chain.
*
* .. attention::
*
* **This field is deprecated**. Use `transport_socket` with name `tls` instead. If both are
* set, `transport_socket` takes priority.
*/
'tls_context'?: (_envoy_api_v2_auth_DownstreamTlsContext);
/**
* A list of individual network filters that make up the filter chain for
* connections established with the listener. Order matters as the filters are
* processed sequentially as connection events happen. Note: If the filter
* list is empty, the connection will close by default.
*/
'filters'?: (_envoy_api_v2_listener_Filter)[];
/**
* Whether the listener should expect a PROXY protocol V1 header on new
* connections. If this option is enabled, the listener will assume that that
* remote address of the connection is the one specified in the header. Some
* load balancers including the AWS ELB support this option. If the option is
* absent or set to false, Envoy will use the physical peer address of the
* connection as the remote address.
*/
'use_proxy_proto'?: (_google_protobuf_BoolValue);
/**
* [#not-implemented-hide:] filter chain metadata.
*/
'metadata'?: (_envoy_api_v2_core_Metadata);
/**
* Optional custom transport socket implementation to use for downstream connections.
* To setup TLS, set a transport socket with name `tls` and
* :ref:`DownstreamTlsContext <envoy_api_msg_auth.DownstreamTlsContext>` in the `typed_config`.
* If no transport socket configuration is specified, new connections
* will be set up with plaintext.
*/
'transport_socket'?: (_envoy_api_v2_core_TransportSocket);
/**
* [#not-implemented-hide:] The unique name (or empty) by which this filter chain is known. If no
* name is provided, Envoy will allocate an internal UUID for the filter chain. If the filter
* chain is to be dynamically updated or removed via FCDS a unique name must be provided.
*/
'name'?: (string);
}
/**
* A filter chain wraps a set of match criteria, an option TLS context, a set of filters, and
* various other parameters.
* [#next-free-field: 8]
*/
export interface FilterChain__Output {
/**
* The criteria to use when matching a connection to this filter chain.
*/
'filter_chain_match'?: (_envoy_api_v2_listener_FilterChainMatch__Output);
/**
* The TLS context for this filter chain.
*
* .. attention::
*
* **This field is deprecated**. Use `transport_socket` with name `tls` instead. If both are
* set, `transport_socket` takes priority.
*/
'tls_context'?: (_envoy_api_v2_auth_DownstreamTlsContext__Output);
/**
* A list of individual network filters that make up the filter chain for
* connections established with the listener. Order matters as the filters are
* processed sequentially as connection events happen. Note: If the filter
* list is empty, the connection will close by default.
*/
'filters': (_envoy_api_v2_listener_Filter__Output)[];
/**
* Whether the listener should expect a PROXY protocol V1 header on new
* connections. If this option is enabled, the listener will assume that that
* remote address of the connection is the one specified in the header. Some
* load balancers including the AWS ELB support this option. If the option is
* absent or set to false, Envoy will use the physical peer address of the
* connection as the remote address.
*/
'use_proxy_proto'?: (_google_protobuf_BoolValue__Output);
/**
* [#not-implemented-hide:] filter chain metadata.
*/
'metadata'?: (_envoy_api_v2_core_Metadata__Output);
/**
* Optional custom transport socket implementation to use for downstream connections.
* To setup TLS, set a transport socket with name `tls` and
* :ref:`DownstreamTlsContext <envoy_api_msg_auth.DownstreamTlsContext>` in the `typed_config`.
* If no transport socket configuration is specified, new connections
* will be set up with plaintext.
*/
'transport_socket'?: (_envoy_api_v2_core_TransportSocket__Output);
/**
* [#not-implemented-hide:] The unique name (or empty) by which this filter chain is known. If no
* name is provided, Envoy will allocate an internal UUID for the filter chain. If the filter
* chain is to be dynamically updated or removed via FCDS a unique name must be provided.
*/
'name': (string);
}

View File

@ -1,66 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
import type { FractionalPercent as _envoy_type_FractionalPercent, FractionalPercent__Output as _envoy_type_FractionalPercent__Output } from '../../../../envoy/type/FractionalPercent';
/**
* HTTP request hedging :ref:`architecture overview <arch_overview_http_routing_hedging>`.
*/
export interface HedgePolicy {
/**
* Specifies the number of initial requests that should be sent upstream.
* Must be at least 1.
* Defaults to 1.
* [#not-implemented-hide:]
*/
'initial_requests'?: (_google_protobuf_UInt32Value);
/**
* Specifies a probability that an additional upstream request should be sent
* on top of what is specified by initial_requests.
* Defaults to 0.
* [#not-implemented-hide:]
*/
'additional_request_chance'?: (_envoy_type_FractionalPercent);
/**
* Indicates that a hedged request should be sent when the per-try timeout
* is hit. This will only occur if the retry policy also indicates that a
* timed out request should be retried.
* Once a timed out request is retried due to per try timeout, the router
* filter will ensure that it is not retried again even if the returned
* response headers would otherwise be retried according the specified
* :ref:`RetryPolicy <envoy_api_msg_route.RetryPolicy>`.
* Defaults to false.
*/
'hedge_on_per_try_timeout'?: (boolean);
}
/**
* HTTP request hedging :ref:`architecture overview <arch_overview_http_routing_hedging>`.
*/
export interface HedgePolicy__Output {
/**
* Specifies the number of initial requests that should be sent upstream.
* Must be at least 1.
* Defaults to 1.
* [#not-implemented-hide:]
*/
'initial_requests'?: (_google_protobuf_UInt32Value__Output);
/**
* Specifies a probability that an additional upstream request should be sent
* on top of what is specified by initial_requests.
* Defaults to 0.
* [#not-implemented-hide:]
*/
'additional_request_chance'?: (_envoy_type_FractionalPercent__Output);
/**
* Indicates that a hedged request should be sent when the per-try timeout
* is hit. This will only occur if the retry policy also indicates that a
* timed out request should be retried.
* Once a timed out request is retried due to per try timeout, the router
* filter will ensure that it is not retried again even if the returned
* response headers would otherwise be retried according the specified
* :ref:`RetryPolicy <envoy_api_msg_route.RetryPolicy>`.
* Defaults to false.
*/
'hedge_on_per_try_timeout': (boolean);
}

View File

@ -1,86 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { StringMatcher as _envoy_type_matcher_StringMatcher, StringMatcher__Output as _envoy_type_matcher_StringMatcher__Output } from '../../../../envoy/type/matcher/StringMatcher';
/**
* Query parameter matching treats the query string of a request's :path header
* as an ampersand-separated list of keys and/or key=value elements.
* [#next-free-field: 7]
*/
export interface QueryParameterMatcher {
/**
* Specifies the name of a key that must be present in the requested
* *path*'s query string.
*/
'name'?: (string);
/**
* Specifies the value of the key. If the value is absent, a request
* that contains the key in its query string will match, whether the
* key appears with a value (e.g., "?debug=true") or not (e.g., "?debug")
*
* ..attention::
* This field is deprecated. Use an `exact` match inside the `string_match` field.
*/
'value'?: (string);
/**
* Specifies whether the query parameter value is a regular expression.
* Defaults to false. The entire query parameter value (i.e., the part to
* the right of the equals sign in "key=value") must match the regex.
* E.g., the regex ``\d+$`` will match *123* but not *a123* or *123a*.
*
* ..attention::
* This field is deprecated. Use a `safe_regex` match inside the `string_match` field.
*/
'regex'?: (_google_protobuf_BoolValue);
/**
* Specifies whether a query parameter value should match against a string.
*/
'string_match'?: (_envoy_type_matcher_StringMatcher);
/**
* Specifies whether a query parameter should be present.
*/
'present_match'?: (boolean);
'query_parameter_match_specifier'?: "string_match"|"present_match";
}
/**
* Query parameter matching treats the query string of a request's :path header
* as an ampersand-separated list of keys and/or key=value elements.
* [#next-free-field: 7]
*/
export interface QueryParameterMatcher__Output {
/**
* Specifies the name of a key that must be present in the requested
* *path*'s query string.
*/
'name': (string);
/**
* Specifies the value of the key. If the value is absent, a request
* that contains the key in its query string will match, whether the
* key appears with a value (e.g., "?debug=true") or not (e.g., "?debug")
*
* ..attention::
* This field is deprecated. Use an `exact` match inside the `string_match` field.
*/
'value': (string);
/**
* Specifies whether the query parameter value is a regular expression.
* Defaults to false. The entire query parameter value (i.e., the part to
* the right of the equals sign in "key=value") must match the regex.
* E.g., the regex ``\d+$`` will match *123* but not *a123* or *123a*.
*
* ..attention::
* This field is deprecated. Use a `safe_regex` match inside the `string_match` field.
*/
'regex'?: (_google_protobuf_BoolValue__Output);
/**
* Specifies whether a query parameter value should match against a string.
*/
'string_match'?: (_envoy_type_matcher_StringMatcher__Output);
/**
* Specifies whether a query parameter should be present.
*/
'present_match'?: (boolean);
'query_parameter_match_specifier': "string_match"|"present_match";
}

View File

@ -1,341 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { HeaderMatcher as _envoy_api_v2_route_HeaderMatcher, HeaderMatcher__Output as _envoy_api_v2_route_HeaderMatcher__Output } from '../../../../envoy/api/v2/route/HeaderMatcher';
/**
* [#next-free-field: 7]
*/
export interface _envoy_api_v2_route_RateLimit_Action {
/**
* Rate limit on source cluster.
*/
'source_cluster'?: (_envoy_api_v2_route_RateLimit_Action_SourceCluster);
/**
* Rate limit on destination cluster.
*/
'destination_cluster'?: (_envoy_api_v2_route_RateLimit_Action_DestinationCluster);
/**
* Rate limit on request headers.
*/
'request_headers'?: (_envoy_api_v2_route_RateLimit_Action_RequestHeaders);
/**
* Rate limit on remote address.
*/
'remote_address'?: (_envoy_api_v2_route_RateLimit_Action_RemoteAddress);
/**
* Rate limit on a generic key.
*/
'generic_key'?: (_envoy_api_v2_route_RateLimit_Action_GenericKey);
/**
* Rate limit on the existence of request headers.
*/
'header_value_match'?: (_envoy_api_v2_route_RateLimit_Action_HeaderValueMatch);
'action_specifier'?: "source_cluster"|"destination_cluster"|"request_headers"|"remote_address"|"generic_key"|"header_value_match";
}
/**
* [#next-free-field: 7]
*/
export interface _envoy_api_v2_route_RateLimit_Action__Output {
/**
* Rate limit on source cluster.
*/
'source_cluster'?: (_envoy_api_v2_route_RateLimit_Action_SourceCluster__Output);
/**
* Rate limit on destination cluster.
*/
'destination_cluster'?: (_envoy_api_v2_route_RateLimit_Action_DestinationCluster__Output);
/**
* Rate limit on request headers.
*/
'request_headers'?: (_envoy_api_v2_route_RateLimit_Action_RequestHeaders__Output);
/**
* Rate limit on remote address.
*/
'remote_address'?: (_envoy_api_v2_route_RateLimit_Action_RemoteAddress__Output);
/**
* Rate limit on a generic key.
*/
'generic_key'?: (_envoy_api_v2_route_RateLimit_Action_GenericKey__Output);
/**
* Rate limit on the existence of request headers.
*/
'header_value_match'?: (_envoy_api_v2_route_RateLimit_Action_HeaderValueMatch__Output);
'action_specifier': "source_cluster"|"destination_cluster"|"request_headers"|"remote_address"|"generic_key"|"header_value_match";
}
/**
* The following descriptor entry is appended to the descriptor:
*
* .. code-block:: cpp
*
* ("destination_cluster", "<routed target cluster>")
*
* Once a request matches against a route table rule, a routed cluster is determined by one of
* the following :ref:`route table configuration <envoy_api_msg_RouteConfiguration>`
* settings:
*
* * :ref:`cluster <envoy_api_field_route.RouteAction.cluster>` indicates the upstream cluster
* to route to.
* * :ref:`weighted_clusters <envoy_api_field_route.RouteAction.weighted_clusters>`
* chooses a cluster randomly from a set of clusters with attributed weight.
* * :ref:`cluster_header <envoy_api_field_route.RouteAction.cluster_header>` indicates which
* header in the request contains the target cluster.
*/
export interface _envoy_api_v2_route_RateLimit_Action_DestinationCluster {
}
/**
* The following descriptor entry is appended to the descriptor:
*
* .. code-block:: cpp
*
* ("destination_cluster", "<routed target cluster>")
*
* Once a request matches against a route table rule, a routed cluster is determined by one of
* the following :ref:`route table configuration <envoy_api_msg_RouteConfiguration>`
* settings:
*
* * :ref:`cluster <envoy_api_field_route.RouteAction.cluster>` indicates the upstream cluster
* to route to.
* * :ref:`weighted_clusters <envoy_api_field_route.RouteAction.weighted_clusters>`
* chooses a cluster randomly from a set of clusters with attributed weight.
* * :ref:`cluster_header <envoy_api_field_route.RouteAction.cluster_header>` indicates which
* header in the request contains the target cluster.
*/
export interface _envoy_api_v2_route_RateLimit_Action_DestinationCluster__Output {
}
/**
* The following descriptor entry is appended to the descriptor:
*
* .. code-block:: cpp
*
* ("generic_key", "<descriptor_value>")
*/
export interface _envoy_api_v2_route_RateLimit_Action_GenericKey {
/**
* The value to use in the descriptor entry.
*/
'descriptor_value'?: (string);
}
/**
* The following descriptor entry is appended to the descriptor:
*
* .. code-block:: cpp
*
* ("generic_key", "<descriptor_value>")
*/
export interface _envoy_api_v2_route_RateLimit_Action_GenericKey__Output {
/**
* The value to use in the descriptor entry.
*/
'descriptor_value': (string);
}
/**
* The following descriptor entry is appended to the descriptor:
*
* .. code-block:: cpp
*
* ("header_match", "<descriptor_value>")
*/
export interface _envoy_api_v2_route_RateLimit_Action_HeaderValueMatch {
/**
* The value to use in the descriptor entry.
*/
'descriptor_value'?: (string);
/**
* If set to true, the action will append a descriptor entry when the
* request matches the headers. If set to false, the action will append a
* descriptor entry when the request does not match the headers. The
* default value is true.
*/
'expect_match'?: (_google_protobuf_BoolValue);
/**
* Specifies a set of headers that the rate limit action should match
* on. The action will check the requests headers against all the
* specified headers in the config. A match will happen if all the
* headers in the config are present in the request with the same values
* (or based on presence if the value field is not in the config).
*/
'headers'?: (_envoy_api_v2_route_HeaderMatcher)[];
}
/**
* The following descriptor entry is appended to the descriptor:
*
* .. code-block:: cpp
*
* ("header_match", "<descriptor_value>")
*/
export interface _envoy_api_v2_route_RateLimit_Action_HeaderValueMatch__Output {
/**
* The value to use in the descriptor entry.
*/
'descriptor_value': (string);
/**
* If set to true, the action will append a descriptor entry when the
* request matches the headers. If set to false, the action will append a
* descriptor entry when the request does not match the headers. The
* default value is true.
*/
'expect_match'?: (_google_protobuf_BoolValue__Output);
/**
* Specifies a set of headers that the rate limit action should match
* on. The action will check the requests headers against all the
* specified headers in the config. A match will happen if all the
* headers in the config are present in the request with the same values
* (or based on presence if the value field is not in the config).
*/
'headers': (_envoy_api_v2_route_HeaderMatcher__Output)[];
}
/**
* The following descriptor entry is appended to the descriptor and is populated using the
* trusted address from :ref:`x-forwarded-for <config_http_conn_man_headers_x-forwarded-for>`:
*
* .. code-block:: cpp
*
* ("remote_address", "<trusted address from x-forwarded-for>")
*/
export interface _envoy_api_v2_route_RateLimit_Action_RemoteAddress {
}
/**
* The following descriptor entry is appended to the descriptor and is populated using the
* trusted address from :ref:`x-forwarded-for <config_http_conn_man_headers_x-forwarded-for>`:
*
* .. code-block:: cpp
*
* ("remote_address", "<trusted address from x-forwarded-for>")
*/
export interface _envoy_api_v2_route_RateLimit_Action_RemoteAddress__Output {
}
/**
* The following descriptor entry is appended when a header contains a key that matches the
* *header_name*:
*
* .. code-block:: cpp
*
* ("<descriptor_key>", "<header_value_queried_from_header>")
*/
export interface _envoy_api_v2_route_RateLimit_Action_RequestHeaders {
/**
* The header name to be queried from the request headers. The headers
* value is used to populate the value of the descriptor entry for the
* descriptor_key.
*/
'header_name'?: (string);
/**
* The key to use in the descriptor entry.
*/
'descriptor_key'?: (string);
}
/**
* The following descriptor entry is appended when a header contains a key that matches the
* *header_name*:
*
* .. code-block:: cpp
*
* ("<descriptor_key>", "<header_value_queried_from_header>")
*/
export interface _envoy_api_v2_route_RateLimit_Action_RequestHeaders__Output {
/**
* The header name to be queried from the request headers. The headers
* value is used to populate the value of the descriptor entry for the
* descriptor_key.
*/
'header_name': (string);
/**
* The key to use in the descriptor entry.
*/
'descriptor_key': (string);
}
/**
* The following descriptor entry is appended to the descriptor:
*
* .. code-block:: cpp
*
* ("source_cluster", "<local service cluster>")
*
* <local service cluster> is derived from the :option:`--service-cluster` option.
*/
export interface _envoy_api_v2_route_RateLimit_Action_SourceCluster {
}
/**
* The following descriptor entry is appended to the descriptor:
*
* .. code-block:: cpp
*
* ("source_cluster", "<local service cluster>")
*
* <local service cluster> is derived from the :option:`--service-cluster` option.
*/
export interface _envoy_api_v2_route_RateLimit_Action_SourceCluster__Output {
}
/**
* Global rate limiting :ref:`architecture overview <arch_overview_global_rate_limit>`.
*/
export interface RateLimit {
/**
* Refers to the stage set in the filter. The rate limit configuration only
* applies to filters with the same stage number. The default stage number is
* 0.
*
* .. note::
*
* The filter supports a range of 0 - 10 inclusively for stage numbers.
*/
'stage'?: (_google_protobuf_UInt32Value);
/**
* The key to be set in runtime to disable this rate limit configuration.
*/
'disable_key'?: (string);
/**
* A list of actions that are to be applied for this rate limit configuration.
* Order matters as the actions are processed sequentially and the descriptor
* is composed by appending descriptor entries in that sequence. If an action
* cannot append a descriptor entry, no descriptor is generated for the
* configuration. See :ref:`composing actions
* <config_http_filters_rate_limit_composing_actions>` for additional documentation.
*/
'actions'?: (_envoy_api_v2_route_RateLimit_Action)[];
}
/**
* Global rate limiting :ref:`architecture overview <arch_overview_global_rate_limit>`.
*/
export interface RateLimit__Output {
/**
* Refers to the stage set in the filter. The rate limit configuration only
* applies to filters with the same stage number. The default stage number is
* 0.
*
* .. note::
*
* The filter supports a range of 0 - 10 inclusively for stage numbers.
*/
'stage'?: (_google_protobuf_UInt32Value__Output);
/**
* The key to be set in runtime to disable this rate limit configuration.
*/
'disable_key': (string);
/**
* A list of actions that are to be applied for this rate limit configuration.
* Order matters as the actions are processed sequentially and the descriptor
* is composed by appending descriptor entries in that sequence. If an action
* cannot append a descriptor entry, no descriptor is generated for the
* configuration. See :ref:`composing actions
* <config_http_filters_rate_limit_composing_actions>` for additional documentation.
*/
'actions': (_envoy_api_v2_route_RateLimit_Action__Output)[];
}

View File

@ -1,139 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
export enum _envoy_api_v2_route_RedirectAction_RedirectResponseCode {
/**
* Moved Permanently HTTP Status Code - 301.
*/
MOVED_PERMANENTLY = 0,
/**
* Found HTTP Status Code - 302.
*/
FOUND = 1,
/**
* See Other HTTP Status Code - 303.
*/
SEE_OTHER = 2,
/**
* Temporary Redirect HTTP Status Code - 307.
*/
TEMPORARY_REDIRECT = 3,
/**
* Permanent Redirect HTTP Status Code - 308.
*/
PERMANENT_REDIRECT = 4,
}
/**
* [#next-free-field: 9]
*/
export interface RedirectAction {
/**
* The host portion of the URL will be swapped with this value.
*/
'host_redirect'?: (string);
/**
* The path portion of the URL will be swapped with this value.
*/
'path_redirect'?: (string);
/**
* The HTTP status code to use in the redirect response. The default response
* code is MOVED_PERMANENTLY (301).
*/
'response_code'?: (_envoy_api_v2_route_RedirectAction_RedirectResponseCode | keyof typeof _envoy_api_v2_route_RedirectAction_RedirectResponseCode);
/**
* The scheme portion of the URL will be swapped with "https".
*/
'https_redirect'?: (boolean);
/**
* Indicates that during redirection, the matched prefix (or path)
* should be swapped with this value. This option allows redirect URLs be dynamically created
* based on the request.
*
* .. attention::
*
* Pay attention to the use of trailing slashes as mentioned in
* :ref:`RouteAction's prefix_rewrite <envoy_api_field_route.RouteAction.prefix_rewrite>`.
*/
'prefix_rewrite'?: (string);
/**
* Indicates that during redirection, the query portion of the URL will
* be removed. Default value is false.
*/
'strip_query'?: (boolean);
/**
* The scheme portion of the URL will be swapped with this value.
*/
'scheme_redirect'?: (string);
/**
* The port value of the URL will be swapped with this value.
*/
'port_redirect'?: (number);
/**
* When the scheme redirection take place, the following rules apply:
* 1. If the source URI scheme is `http` and the port is explicitly
* set to `:80`, the port will be removed after the redirection
* 2. If the source URI scheme is `https` and the port is explicitly
* set to `:443`, the port will be removed after the redirection
*/
'scheme_rewrite_specifier'?: "https_redirect"|"scheme_redirect";
'path_rewrite_specifier'?: "path_redirect"|"prefix_rewrite";
}
/**
* [#next-free-field: 9]
*/
export interface RedirectAction__Output {
/**
* The host portion of the URL will be swapped with this value.
*/
'host_redirect': (string);
/**
* The path portion of the URL will be swapped with this value.
*/
'path_redirect'?: (string);
/**
* The HTTP status code to use in the redirect response. The default response
* code is MOVED_PERMANENTLY (301).
*/
'response_code': (keyof typeof _envoy_api_v2_route_RedirectAction_RedirectResponseCode);
/**
* The scheme portion of the URL will be swapped with "https".
*/
'https_redirect'?: (boolean);
/**
* Indicates that during redirection, the matched prefix (or path)
* should be swapped with this value. This option allows redirect URLs be dynamically created
* based on the request.
*
* .. attention::
*
* Pay attention to the use of trailing slashes as mentioned in
* :ref:`RouteAction's prefix_rewrite <envoy_api_field_route.RouteAction.prefix_rewrite>`.
*/
'prefix_rewrite'?: (string);
/**
* Indicates that during redirection, the query portion of the URL will
* be removed. Default value is false.
*/
'strip_query': (boolean);
/**
* The scheme portion of the URL will be swapped with this value.
*/
'scheme_redirect'?: (string);
/**
* The port value of the URL will be swapped with this value.
*/
'port_redirect': (number);
/**
* When the scheme redirection take place, the following rules apply:
* 1. If the source URI scheme is `http` and the port is explicitly
* set to `:80`, the port will be removed after the redirection
* 2. If the source URI scheme is `https` and the port is explicitly
* set to `:443`, the port will be removed after the redirection
*/
'scheme_rewrite_specifier': "https_redirect"|"scheme_redirect";
'path_rewrite_specifier': "path_redirect"|"prefix_rewrite";
}

View File

@ -1,218 +0,0 @@
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
import type { HeaderMatcher as _envoy_api_v2_route_HeaderMatcher, HeaderMatcher__Output as _envoy_api_v2_route_HeaderMatcher__Output } from '../../../../envoy/api/v2/route/HeaderMatcher';
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
import type { Long } from '@grpc/proto-loader';
export interface _envoy_api_v2_route_RetryPolicy_RetryBackOff {
/**
* Specifies the base interval between retries. This parameter is required and must be greater
* than zero. Values less than 1 ms are rounded up to 1 ms.
* See :ref:`config_http_filters_router_x-envoy-max-retries` for a discussion of Envoy's
* back-off algorithm.
*/
'base_interval'?: (_google_protobuf_Duration);
/**
* Specifies the maximum interval between retries. This parameter is optional, but must be
* greater than or equal to the `base_interval` if set. The default is 10 times the
* `base_interval`. See :ref:`config_http_filters_router_x-envoy-max-retries` for a discussion
* of Envoy's back-off algorithm.
*/
'max_interval'?: (_google_protobuf_Duration);
}
export interface _envoy_api_v2_route_RetryPolicy_RetryBackOff__Output {
/**
* Specifies the base interval between retries. This parameter is required and must be greater
* than zero. Values less than 1 ms are rounded up to 1 ms.
* See :ref:`config_http_filters_router_x-envoy-max-retries` for a discussion of Envoy's
* back-off algorithm.
*/
'base_interval'?: (_google_protobuf_Duration__Output);
/**
* Specifies the maximum interval between retries. This parameter is optional, but must be
* greater than or equal to the `base_interval` if set. The default is 10 times the
* `base_interval`. See :ref:`config_http_filters_router_x-envoy-max-retries` for a discussion
* of Envoy's back-off algorithm.
*/
'max_interval'?: (_google_protobuf_Duration__Output);
}
export interface _envoy_api_v2_route_RetryPolicy_RetryHostPredicate {
'name'?: (string);
'config'?: (_google_protobuf_Struct);
'typed_config'?: (_google_protobuf_Any);
'config_type'?: "config"|"typed_config";
}
export interface _envoy_api_v2_route_RetryPolicy_RetryHostPredicate__Output {
'name': (string);
'config'?: (_google_protobuf_Struct__Output);
'typed_config'?: (_google_protobuf_Any__Output);
'config_type': "config"|"typed_config";
}
export interface _envoy_api_v2_route_RetryPolicy_RetryPriority {
'name'?: (string);
'config'?: (_google_protobuf_Struct);
'typed_config'?: (_google_protobuf_Any);
'config_type'?: "config"|"typed_config";
}
export interface _envoy_api_v2_route_RetryPolicy_RetryPriority__Output {
'name': (string);
'config'?: (_google_protobuf_Struct__Output);
'typed_config'?: (_google_protobuf_Any__Output);
'config_type': "config"|"typed_config";
}
/**
* HTTP retry :ref:`architecture overview <arch_overview_http_routing_retry>`.
* [#next-free-field: 11]
*/
export interface RetryPolicy {
/**
* Specifies the conditions under which retry takes place. These are the same
* conditions documented for :ref:`config_http_filters_router_x-envoy-retry-on` and
* :ref:`config_http_filters_router_x-envoy-retry-grpc-on`.
*/
'retry_on'?: (string);
/**
* Specifies the allowed number of retries. This parameter is optional and
* defaults to 1. These are the same conditions documented for
* :ref:`config_http_filters_router_x-envoy-max-retries`.
*/
'num_retries'?: (_google_protobuf_UInt32Value);
/**
* Specifies a non-zero upstream timeout per retry attempt. This parameter is optional. The
* same conditions documented for
* :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms` apply.
*
* .. note::
*
* If left unspecified, Envoy will use the global
* :ref:`route timeout <envoy_api_field_route.RouteAction.timeout>` for the request.
* Consequently, when using a :ref:`5xx <config_http_filters_router_x-envoy-retry-on>` based
* retry policy, a request that times out will not be retried as the total timeout budget
* would have been exhausted.
*/
'per_try_timeout'?: (_google_protobuf_Duration);
/**
* Specifies an implementation of a RetryPriority which is used to determine the
* distribution of load across priorities used for retries. Refer to
* :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more details.
*/
'retry_priority'?: (_envoy_api_v2_route_RetryPolicy_RetryPriority);
/**
* Specifies a collection of RetryHostPredicates that will be consulted when selecting a host
* for retries. If any of the predicates reject the host, host selection will be reattempted.
* Refer to :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more
* details.
*/
'retry_host_predicate'?: (_envoy_api_v2_route_RetryPolicy_RetryHostPredicate)[];
/**
* The maximum number of times host selection will be reattempted before giving up, at which
* point the host that was last selected will be routed to. If unspecified, this will default to
* retrying once.
*/
'host_selection_retry_max_attempts'?: (number | string | Long);
/**
* HTTP status codes that should trigger a retry in addition to those specified by retry_on.
*/
'retriable_status_codes'?: (number)[];
/**
* Specifies parameters that control retry back off. This parameter is optional, in which case the
* default base interval is 25 milliseconds or, if set, the current value of the
* `upstream.base_retry_backoff_ms` runtime parameter. The default maximum interval is 10 times
* the base interval. The documentation for :ref:`config_http_filters_router_x-envoy-max-retries`
* describes Envoy's back-off algorithm.
*/
'retry_back_off'?: (_envoy_api_v2_route_RetryPolicy_RetryBackOff);
/**
* HTTP response headers that trigger a retry if present in the response. A retry will be
* triggered if any of the header matches match the upstream response headers.
* The field is only consulted if 'retriable-headers' retry policy is active.
*/
'retriable_headers'?: (_envoy_api_v2_route_HeaderMatcher)[];
/**
* HTTP headers which must be present in the request for retries to be attempted.
*/
'retriable_request_headers'?: (_envoy_api_v2_route_HeaderMatcher)[];
}
/**
* HTTP retry :ref:`architecture overview <arch_overview_http_routing_retry>`.
* [#next-free-field: 11]
*/
export interface RetryPolicy__Output {
/**
* Specifies the conditions under which retry takes place. These are the same
* conditions documented for :ref:`config_http_filters_router_x-envoy-retry-on` and
* :ref:`config_http_filters_router_x-envoy-retry-grpc-on`.
*/
'retry_on': (string);
/**
* Specifies the allowed number of retries. This parameter is optional and
* defaults to 1. These are the same conditions documented for
* :ref:`config_http_filters_router_x-envoy-max-retries`.
*/
'num_retries'?: (_google_protobuf_UInt32Value__Output);
/**
* Specifies a non-zero upstream timeout per retry attempt. This parameter is optional. The
* same conditions documented for
* :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms` apply.
*
* .. note::
*
* If left unspecified, Envoy will use the global
* :ref:`route timeout <envoy_api_field_route.RouteAction.timeout>` for the request.
* Consequently, when using a :ref:`5xx <config_http_filters_router_x-envoy-retry-on>` based
* retry policy, a request that times out will not be retried as the total timeout budget
* would have been exhausted.
*/
'per_try_timeout'?: (_google_protobuf_Duration__Output);
/**
* Specifies an implementation of a RetryPriority which is used to determine the
* distribution of load across priorities used for retries. Refer to
* :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more details.
*/
'retry_priority'?: (_envoy_api_v2_route_RetryPolicy_RetryPriority__Output);
/**
* Specifies a collection of RetryHostPredicates that will be consulted when selecting a host
* for retries. If any of the predicates reject the host, host selection will be reattempted.
* Refer to :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more
* details.
*/
'retry_host_predicate': (_envoy_api_v2_route_RetryPolicy_RetryHostPredicate__Output)[];
/**
* The maximum number of times host selection will be reattempted before giving up, at which
* point the host that was last selected will be routed to. If unspecified, this will default to
* retrying once.
*/
'host_selection_retry_max_attempts': (string);
/**
* HTTP status codes that should trigger a retry in addition to those specified by retry_on.
*/
'retriable_status_codes': (number)[];
/**
* Specifies parameters that control retry back off. This parameter is optional, in which case the
* default base interval is 25 milliseconds or, if set, the current value of the
* `upstream.base_retry_backoff_ms` runtime parameter. The default maximum interval is 10 times
* the base interval. The documentation for :ref:`config_http_filters_router_x-envoy-max-retries`
* describes Envoy's back-off algorithm.
*/
'retry_back_off'?: (_envoy_api_v2_route_RetryPolicy_RetryBackOff__Output);
/**
* HTTP response headers that trigger a retry if present in the response. A retry will be
* triggered if any of the header matches match the upstream response headers.
* The field is only consulted if 'retriable-headers' retry policy is active.
*/
'retriable_headers': (_envoy_api_v2_route_HeaderMatcher__Output)[];
/**
* HTTP headers which must be present in the request for retries to be attempted.
*/
'retriable_request_headers': (_envoy_api_v2_route_HeaderMatcher__Output)[];
}

View File

@ -1,8 +1,7 @@
// Original file: deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { AccessLogFilter as _envoy_config_filter_accesslog_v2_AccessLogFilter, AccessLogFilter__Output as _envoy_config_filter_accesslog_v2_AccessLogFilter__Output } from '../../../../../envoy/config/filter/accesslog/v2/AccessLogFilter';
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../../google/protobuf/Struct';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../../google/protobuf/Any';
import type { AccessLogFilter as _envoy_config_accesslog_v3_AccessLogFilter, AccessLogFilter__Output as _envoy_config_accesslog_v3_AccessLogFilter__Output } from '../../../../envoy/config/accesslog/v3/AccessLogFilter';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
export interface AccessLog {
/**
@ -17,21 +16,20 @@ export interface AccessLog {
/**
* Filter which is used to determine if the access log needs to be written.
*/
'filter'?: (_envoy_config_filter_accesslog_v2_AccessLogFilter);
'config'?: (_google_protobuf_Struct);
'filter'?: (_envoy_config_accesslog_v3_AccessLogFilter);
'typed_config'?: (_google_protobuf_Any);
/**
* Custom configuration that depends on the access log being instantiated. Built-in
* configurations include:
* Custom configuration that depends on the access log being instantiated.
* Built-in configurations include:
*
* #. "envoy.access_loggers.file": :ref:`FileAccessLog
* <envoy_api_msg_config.accesslog.v2.FileAccessLog>`
* <envoy_api_msg_extensions.access_loggers.file.v3.FileAccessLog>`
* #. "envoy.access_loggers.http_grpc": :ref:`HttpGrpcAccessLogConfig
* <envoy_api_msg_config.accesslog.v2.HttpGrpcAccessLogConfig>`
* <envoy_api_msg_extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig>`
* #. "envoy.access_loggers.tcp_grpc": :ref:`TcpGrpcAccessLogConfig
* <envoy_api_msg_config.accesslog.v2.TcpGrpcAccessLogConfig>`
* <envoy_api_msg_extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig>`
*/
'config_type'?: "config"|"typed_config";
'config_type'?: "typed_config";
}
export interface AccessLog__Output {
@ -47,19 +45,18 @@ export interface AccessLog__Output {
/**
* Filter which is used to determine if the access log needs to be written.
*/
'filter'?: (_envoy_config_filter_accesslog_v2_AccessLogFilter__Output);
'config'?: (_google_protobuf_Struct__Output);
'filter'?: (_envoy_config_accesslog_v3_AccessLogFilter__Output);
'typed_config'?: (_google_protobuf_Any__Output);
/**
* Custom configuration that depends on the access log being instantiated. Built-in
* configurations include:
* Custom configuration that depends on the access log being instantiated.
* Built-in configurations include:
*
* #. "envoy.access_loggers.file": :ref:`FileAccessLog
* <envoy_api_msg_config.accesslog.v2.FileAccessLog>`
* <envoy_api_msg_extensions.access_loggers.file.v3.FileAccessLog>`
* #. "envoy.access_loggers.http_grpc": :ref:`HttpGrpcAccessLogConfig
* <envoy_api_msg_config.accesslog.v2.HttpGrpcAccessLogConfig>`
* <envoy_api_msg_extensions.access_loggers.grpc.v3.HttpGrpcAccessLogConfig>`
* #. "envoy.access_loggers.tcp_grpc": :ref:`TcpGrpcAccessLogConfig
* <envoy_api_msg_config.accesslog.v2.TcpGrpcAccessLogConfig>`
* <envoy_api_msg_extensions.access_loggers.grpc.v3.TcpGrpcAccessLogConfig>`
*/
'config_type': "config"|"typed_config";
'config_type': "typed_config";
}

View File

@ -0,0 +1,124 @@
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { StatusCodeFilter as _envoy_config_accesslog_v3_StatusCodeFilter, StatusCodeFilter__Output as _envoy_config_accesslog_v3_StatusCodeFilter__Output } from '../../../../envoy/config/accesslog/v3/StatusCodeFilter';
import type { DurationFilter as _envoy_config_accesslog_v3_DurationFilter, DurationFilter__Output as _envoy_config_accesslog_v3_DurationFilter__Output } from '../../../../envoy/config/accesslog/v3/DurationFilter';
import type { NotHealthCheckFilter as _envoy_config_accesslog_v3_NotHealthCheckFilter, NotHealthCheckFilter__Output as _envoy_config_accesslog_v3_NotHealthCheckFilter__Output } from '../../../../envoy/config/accesslog/v3/NotHealthCheckFilter';
import type { TraceableFilter as _envoy_config_accesslog_v3_TraceableFilter, TraceableFilter__Output as _envoy_config_accesslog_v3_TraceableFilter__Output } from '../../../../envoy/config/accesslog/v3/TraceableFilter';
import type { RuntimeFilter as _envoy_config_accesslog_v3_RuntimeFilter, RuntimeFilter__Output as _envoy_config_accesslog_v3_RuntimeFilter__Output } from '../../../../envoy/config/accesslog/v3/RuntimeFilter';
import type { AndFilter as _envoy_config_accesslog_v3_AndFilter, AndFilter__Output as _envoy_config_accesslog_v3_AndFilter__Output } from '../../../../envoy/config/accesslog/v3/AndFilter';
import type { OrFilter as _envoy_config_accesslog_v3_OrFilter, OrFilter__Output as _envoy_config_accesslog_v3_OrFilter__Output } from '../../../../envoy/config/accesslog/v3/OrFilter';
import type { HeaderFilter as _envoy_config_accesslog_v3_HeaderFilter, HeaderFilter__Output as _envoy_config_accesslog_v3_HeaderFilter__Output } from '../../../../envoy/config/accesslog/v3/HeaderFilter';
import type { ResponseFlagFilter as _envoy_config_accesslog_v3_ResponseFlagFilter, ResponseFlagFilter__Output as _envoy_config_accesslog_v3_ResponseFlagFilter__Output } from '../../../../envoy/config/accesslog/v3/ResponseFlagFilter';
import type { GrpcStatusFilter as _envoy_config_accesslog_v3_GrpcStatusFilter, GrpcStatusFilter__Output as _envoy_config_accesslog_v3_GrpcStatusFilter__Output } from '../../../../envoy/config/accesslog/v3/GrpcStatusFilter';
import type { ExtensionFilter as _envoy_config_accesslog_v3_ExtensionFilter, ExtensionFilter__Output as _envoy_config_accesslog_v3_ExtensionFilter__Output } from '../../../../envoy/config/accesslog/v3/ExtensionFilter';
import type { MetadataFilter as _envoy_config_accesslog_v3_MetadataFilter, MetadataFilter__Output as _envoy_config_accesslog_v3_MetadataFilter__Output } from '../../../../envoy/config/accesslog/v3/MetadataFilter';
/**
* [#next-free-field: 13]
*/
export interface AccessLogFilter {
/**
* Status code filter.
*/
'status_code_filter'?: (_envoy_config_accesslog_v3_StatusCodeFilter);
/**
* Duration filter.
*/
'duration_filter'?: (_envoy_config_accesslog_v3_DurationFilter);
/**
* Not health check filter.
*/
'not_health_check_filter'?: (_envoy_config_accesslog_v3_NotHealthCheckFilter);
/**
* Traceable filter.
*/
'traceable_filter'?: (_envoy_config_accesslog_v3_TraceableFilter);
/**
* Runtime filter.
*/
'runtime_filter'?: (_envoy_config_accesslog_v3_RuntimeFilter);
/**
* And filter.
*/
'and_filter'?: (_envoy_config_accesslog_v3_AndFilter);
/**
* Or filter.
*/
'or_filter'?: (_envoy_config_accesslog_v3_OrFilter);
/**
* Header filter.
*/
'header_filter'?: (_envoy_config_accesslog_v3_HeaderFilter);
/**
* Response flag filter.
*/
'response_flag_filter'?: (_envoy_config_accesslog_v3_ResponseFlagFilter);
/**
* gRPC status filter.
*/
'grpc_status_filter'?: (_envoy_config_accesslog_v3_GrpcStatusFilter);
/**
* Extension filter.
*/
'extension_filter'?: (_envoy_config_accesslog_v3_ExtensionFilter);
/**
* Metadata Filter
*/
'metadata_filter'?: (_envoy_config_accesslog_v3_MetadataFilter);
'filter_specifier'?: "status_code_filter"|"duration_filter"|"not_health_check_filter"|"traceable_filter"|"runtime_filter"|"and_filter"|"or_filter"|"header_filter"|"response_flag_filter"|"grpc_status_filter"|"extension_filter"|"metadata_filter";
}
/**
* [#next-free-field: 13]
*/
export interface AccessLogFilter__Output {
/**
* Status code filter.
*/
'status_code_filter'?: (_envoy_config_accesslog_v3_StatusCodeFilter__Output);
/**
* Duration filter.
*/
'duration_filter'?: (_envoy_config_accesslog_v3_DurationFilter__Output);
/**
* Not health check filter.
*/
'not_health_check_filter'?: (_envoy_config_accesslog_v3_NotHealthCheckFilter__Output);
/**
* Traceable filter.
*/
'traceable_filter'?: (_envoy_config_accesslog_v3_TraceableFilter__Output);
/**
* Runtime filter.
*/
'runtime_filter'?: (_envoy_config_accesslog_v3_RuntimeFilter__Output);
/**
* And filter.
*/
'and_filter'?: (_envoy_config_accesslog_v3_AndFilter__Output);
/**
* Or filter.
*/
'or_filter'?: (_envoy_config_accesslog_v3_OrFilter__Output);
/**
* Header filter.
*/
'header_filter'?: (_envoy_config_accesslog_v3_HeaderFilter__Output);
/**
* Response flag filter.
*/
'response_flag_filter'?: (_envoy_config_accesslog_v3_ResponseFlagFilter__Output);
/**
* gRPC status filter.
*/
'grpc_status_filter'?: (_envoy_config_accesslog_v3_GrpcStatusFilter__Output);
/**
* Extension filter.
*/
'extension_filter'?: (_envoy_config_accesslog_v3_ExtensionFilter__Output);
/**
* Metadata Filter
*/
'metadata_filter'?: (_envoy_config_accesslog_v3_MetadataFilter__Output);
'filter_specifier': "status_code_filter"|"duration_filter"|"not_health_check_filter"|"traceable_filter"|"runtime_filter"|"and_filter"|"or_filter"|"header_filter"|"response_flag_filter"|"grpc_status_filter"|"extension_filter"|"metadata_filter";
}

View File

@ -1,6 +1,6 @@
// Original file: deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { AccessLogFilter as _envoy_config_filter_accesslog_v2_AccessLogFilter, AccessLogFilter__Output as _envoy_config_filter_accesslog_v2_AccessLogFilter__Output } from '../../../../../envoy/config/filter/accesslog/v2/AccessLogFilter';
import type { AccessLogFilter as _envoy_config_accesslog_v3_AccessLogFilter, AccessLogFilter__Output as _envoy_config_accesslog_v3_AccessLogFilter__Output } from '../../../../envoy/config/accesslog/v3/AccessLogFilter';
/**
* Performs a logical and operation on the result of each filter in filters.
@ -8,7 +8,7 @@ import type { AccessLogFilter as _envoy_config_filter_accesslog_v2_AccessLogFilt
* filter returns false immediately.
*/
export interface AndFilter {
'filters'?: (_envoy_config_filter_accesslog_v2_AccessLogFilter)[];
'filters'?: (_envoy_config_accesslog_v3_AccessLogFilter)[];
}
/**
@ -17,5 +17,5 @@ export interface AndFilter {
* filter returns false immediately.
*/
export interface AndFilter__Output {
'filters': (_envoy_config_filter_accesslog_v2_AccessLogFilter__Output)[];
'filters': (_envoy_config_accesslog_v3_AccessLogFilter__Output)[];
}

View File

@ -0,0 +1,48 @@
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { RuntimeUInt32 as _envoy_config_core_v3_RuntimeUInt32, RuntimeUInt32__Output as _envoy_config_core_v3_RuntimeUInt32__Output } from '../../../../envoy/config/core/v3/RuntimeUInt32';
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
export enum _envoy_config_accesslog_v3_ComparisonFilter_Op {
/**
* =
*/
EQ = 0,
/**
* >=
*/
GE = 1,
/**
* <=
*/
LE = 2,
}
/**
* Filter on an integer comparison.
*/
export interface ComparisonFilter {
/**
* Comparison operator.
*/
'op'?: (_envoy_config_accesslog_v3_ComparisonFilter_Op | keyof typeof _envoy_config_accesslog_v3_ComparisonFilter_Op);
/**
* Value to compare against.
*/
'value'?: (_envoy_config_core_v3_RuntimeUInt32);
}
/**
* Filter on an integer comparison.
*/
export interface ComparisonFilter__Output {
/**
* Comparison operator.
*/
'op': (keyof typeof _envoy_config_accesslog_v3_ComparisonFilter_Op);
/**
* Value to compare against.
*/
'value'?: (_envoy_config_core_v3_RuntimeUInt32__Output);
}

View File

@ -0,0 +1,23 @@
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { ComparisonFilter as _envoy_config_accesslog_v3_ComparisonFilter, ComparisonFilter__Output as _envoy_config_accesslog_v3_ComparisonFilter__Output } from '../../../../envoy/config/accesslog/v3/ComparisonFilter';
/**
* Filters on total request duration in milliseconds.
*/
export interface DurationFilter {
/**
* Comparison.
*/
'comparison'?: (_envoy_config_accesslog_v3_ComparisonFilter);
}
/**
* Filters on total request duration in milliseconds.
*/
export interface DurationFilter__Output {
/**
* Comparison.
*/
'comparison'?: (_envoy_config_accesslog_v3_ComparisonFilter__Output);
}

View File

@ -1,7 +1,6 @@
// Original file: deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../../google/protobuf/Struct';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../../google/protobuf/Any';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
/**
* Extension filter is statically registered at runtime.
@ -12,12 +11,11 @@ export interface ExtensionFilter {
* match a statically registered filter.
*/
'name'?: (string);
'config'?: (_google_protobuf_Struct);
'typed_config'?: (_google_protobuf_Any);
/**
* Custom configuration that depends on the filter being instantiated.
*/
'config_type'?: "config"|"typed_config";
'config_type'?: "typed_config";
}
/**
@ -29,10 +27,9 @@ export interface ExtensionFilter__Output {
* match a statically registered filter.
*/
'name': (string);
'config'?: (_google_protobuf_Struct__Output);
'typed_config'?: (_google_protobuf_Any__Output);
/**
* Custom configuration that depends on the filter being instantiated.
*/
'config_type': "config"|"typed_config";
'config_type': "typed_config";
}

View File

@ -1,9 +1,9 @@
// Original file: deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
// Original file: deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
export enum _envoy_config_filter_accesslog_v2_GrpcStatusFilter_Status {
export enum _envoy_config_accesslog_v3_GrpcStatusFilter_Status {
OK = 0,
CANCELED = 1,
UNKNOWN = 2,
@ -24,33 +24,35 @@ export enum _envoy_config_filter_accesslog_v2_GrpcStatusFilter_Status {
}
/**
* Filters gRPC requests based on their response status. If a gRPC status is not provided, the
* filter will infer the status from the HTTP status code.
* Filters gRPC requests based on their response status. If a gRPC status is not
* provided, the filter will infer the status from the HTTP status code.
*/
export interface GrpcStatusFilter {
/**
* Logs only responses that have any one of the gRPC statuses in this field.
*/
'statuses'?: (_envoy_config_filter_accesslog_v2_GrpcStatusFilter_Status | keyof typeof _envoy_config_filter_accesslog_v2_GrpcStatusFilter_Status)[];
'statuses'?: (_envoy_config_accesslog_v3_GrpcStatusFilter_Status | keyof typeof _envoy_config_accesslog_v3_GrpcStatusFilter_Status)[];
/**
* If included and set to true, the filter will instead block all responses with a gRPC status or
* inferred gRPC status enumerated in statuses, and allow all other responses.
* If included and set to true, the filter will instead block all responses
* with a gRPC status or inferred gRPC status enumerated in statuses, and
* allow all other responses.
*/
'exclude'?: (boolean);
}
/**
* Filters gRPC requests based on their response status. If a gRPC status is not provided, the
* filter will infer the status from the HTTP status code.
* Filters gRPC requests based on their response status. If a gRPC status is not
* provided, the filter will infer the status from the HTTP status code.
*/
export interface GrpcStatusFilter__Output {
/**
* Logs only responses that have any one of the gRPC statuses in this field.
*/
'statuses': (keyof typeof _envoy_config_filter_accesslog_v2_GrpcStatusFilter_Status)[];
'statuses': (keyof typeof _envoy_config_accesslog_v3_GrpcStatusFilter_Status)[];
/**
* If included and set to true, the filter will instead block all responses with a gRPC status or
* inferred gRPC status enumerated in statuses, and allow all other responses.
* If included and set to true, the filter will instead block all responses
* with a gRPC status or inferred gRPC status enumerated in statuses, and
* allow all other responses.
*/
'exclude': (boolean);
}

View File

@ -0,0 +1,25 @@
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { HeaderMatcher as _envoy_config_route_v3_HeaderMatcher, HeaderMatcher__Output as _envoy_config_route_v3_HeaderMatcher__Output } from '../../../../envoy/config/route/v3/HeaderMatcher';
/**
* Filters requests based on the presence or value of a request header.
*/
export interface HeaderFilter {
/**
* Only requests with a header which matches the specified HeaderMatcher will
* pass the filter check.
*/
'header'?: (_envoy_config_route_v3_HeaderMatcher);
}
/**
* Filters requests based on the presence or value of a request header.
*/
export interface HeaderFilter__Output {
/**
* Only requests with a header which matches the specified HeaderMatcher will
* pass the filter check.
*/
'header'?: (_envoy_config_route_v3_HeaderMatcher__Output);
}

View File

@ -0,0 +1,48 @@
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { MetadataMatcher as _envoy_type_matcher_v3_MetadataMatcher, MetadataMatcher__Output as _envoy_type_matcher_v3_MetadataMatcher__Output } from '../../../../envoy/type/matcher/v3/MetadataMatcher';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
/**
* Filters based on matching dynamic metadata.
* If the matcher path and key correspond to an existing key in dynamic
* metadata, the request is logged only if the matcher value is equal to the
* metadata value. If the matcher path and key *do not* correspond to an
* existing key in dynamic metadata, the request is logged only if
* match_if_key_not_found is "true" or unset.
*/
export interface MetadataFilter {
/**
* Matcher to check metadata for specified value. For example, to match on the
* access_log_hint metadata, set the filter to "envoy.common" and the path to
* "access_log_hint", and the value to "true".
*/
'matcher'?: (_envoy_type_matcher_v3_MetadataMatcher);
/**
* Default result if the key does not exist in dynamic metadata: if unset or
* true, then log; if false, then don't log.
*/
'match_if_key_not_found'?: (_google_protobuf_BoolValue);
}
/**
* Filters based on matching dynamic metadata.
* If the matcher path and key correspond to an existing key in dynamic
* metadata, the request is logged only if the matcher value is equal to the
* metadata value. If the matcher path and key *do not* correspond to an
* existing key in dynamic metadata, the request is logged only if
* match_if_key_not_found is "true" or unset.
*/
export interface MetadataFilter__Output {
/**
* Matcher to check metadata for specified value. For example, to match on the
* access_log_hint metadata, set the filter to "envoy.common" and the path to
* "access_log_hint", and the value to "true".
*/
'matcher'?: (_envoy_type_matcher_v3_MetadataMatcher__Output);
/**
* Default result if the key does not exist in dynamic metadata: if unset or
* true, then log; if false, then don't log.
*/
'match_if_key_not_found'?: (_google_protobuf_BoolValue__Output);
}

View File

@ -1,4 +1,4 @@
// Original file: deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
/**

View File

@ -1,6 +1,6 @@
// Original file: deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { AccessLogFilter as _envoy_config_filter_accesslog_v2_AccessLogFilter, AccessLogFilter__Output as _envoy_config_filter_accesslog_v2_AccessLogFilter__Output } from '../../../../../envoy/config/filter/accesslog/v2/AccessLogFilter';
import type { AccessLogFilter as _envoy_config_accesslog_v3_AccessLogFilter, AccessLogFilter__Output as _envoy_config_accesslog_v3_AccessLogFilter__Output } from '../../../../envoy/config/accesslog/v3/AccessLogFilter';
/**
* Performs a logical or operation on the result of each individual filter.
@ -8,7 +8,7 @@ import type { AccessLogFilter as _envoy_config_filter_accesslog_v2_AccessLogFilt
* filter returns true immediately.
*/
export interface OrFilter {
'filters'?: (_envoy_config_filter_accesslog_v2_AccessLogFilter)[];
'filters'?: (_envoy_config_accesslog_v3_AccessLogFilter)[];
}
/**
@ -17,5 +17,5 @@ export interface OrFilter {
* filter returns true immediately.
*/
export interface OrFilter__Output {
'filters': (_envoy_config_filter_accesslog_v2_AccessLogFilter__Output)[];
'filters': (_envoy_config_accesslog_v3_AccessLogFilter__Output)[];
}

View File

@ -1,16 +1,17 @@
// Original file: deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
/**
* Filters requests that received responses with an Envoy response flag set.
* A list of the response flags can be found
* in the access log formatter :ref:`documentation<config_access_log_format_response_flags>`.
* in the access log formatter
* :ref:`documentation<config_access_log_format_response_flags>`.
*/
export interface ResponseFlagFilter {
/**
* Only responses with the any of the flags listed in this field will be logged.
* This field is optional. If it is not specified, then any response flag will pass
* the filter check.
* Only responses with the any of the flags listed in this field will be
* logged. This field is optional. If it is not specified, then any response
* flag will pass the filter check.
*/
'flags'?: (string)[];
}
@ -18,13 +19,14 @@ export interface ResponseFlagFilter {
/**
* Filters requests that received responses with an Envoy response flag set.
* A list of the response flags can be found
* in the access log formatter :ref:`documentation<config_access_log_format_response_flags>`.
* in the access log formatter
* :ref:`documentation<config_access_log_format_response_flags>`.
*/
export interface ResponseFlagFilter__Output {
/**
* Only responses with the any of the flags listed in this field will be logged.
* This field is optional. If it is not specified, then any response flag will pass
* the filter check.
* Only responses with the any of the flags listed in this field will be
* logged. This field is optional. If it is not specified, then any response
* flag will pass the filter check.
*/
'flags': (string)[];
}

View File

@ -0,0 +1,73 @@
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { FractionalPercent as _envoy_type_v3_FractionalPercent, FractionalPercent__Output as _envoy_type_v3_FractionalPercent__Output } from '../../../../envoy/type/v3/FractionalPercent';
/**
* Filters for random sampling of requests.
*/
export interface RuntimeFilter {
/**
* Runtime key to get an optional overridden numerator for use in the
* *percent_sampled* field. If found in runtime, this value will replace the
* default numerator.
*/
'runtime_key'?: (string);
/**
* The default sampling percentage. If not specified, defaults to 0% with
* denominator of 100.
*/
'percent_sampled'?: (_envoy_type_v3_FractionalPercent);
/**
* By default, sampling pivots on the header
* :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` being
* present. If :ref:`x-request-id<config_http_conn_man_headers_x-request-id>`
* is present, the filter will consistently sample across multiple hosts based
* on the runtime key value and the value extracted from
* :ref:`x-request-id<config_http_conn_man_headers_x-request-id>`. If it is
* missing, or *use_independent_randomness* is set to true, the filter will
* randomly sample based on the runtime key value alone.
* *use_independent_randomness* can be used for logging kill switches within
* complex nested :ref:`AndFilter
* <envoy_api_msg_config.accesslog.v3.AndFilter>` and :ref:`OrFilter
* <envoy_api_msg_config.accesslog.v3.OrFilter>` blocks that are easier to
* reason about from a probability perspective (i.e., setting to true will
* cause the filter to behave like an independent random variable when
* composed within logical operator filters).
*/
'use_independent_randomness'?: (boolean);
}
/**
* Filters for random sampling of requests.
*/
export interface RuntimeFilter__Output {
/**
* Runtime key to get an optional overridden numerator for use in the
* *percent_sampled* field. If found in runtime, this value will replace the
* default numerator.
*/
'runtime_key': (string);
/**
* The default sampling percentage. If not specified, defaults to 0% with
* denominator of 100.
*/
'percent_sampled'?: (_envoy_type_v3_FractionalPercent__Output);
/**
* By default, sampling pivots on the header
* :ref:`x-request-id<config_http_conn_man_headers_x-request-id>` being
* present. If :ref:`x-request-id<config_http_conn_man_headers_x-request-id>`
* is present, the filter will consistently sample across multiple hosts based
* on the runtime key value and the value extracted from
* :ref:`x-request-id<config_http_conn_man_headers_x-request-id>`. If it is
* missing, or *use_independent_randomness* is set to true, the filter will
* randomly sample based on the runtime key value alone.
* *use_independent_randomness* can be used for logging kill switches within
* complex nested :ref:`AndFilter
* <envoy_api_msg_config.accesslog.v3.AndFilter>` and :ref:`OrFilter
* <envoy_api_msg_config.accesslog.v3.OrFilter>` blocks that are easier to
* reason about from a probability perspective (i.e., setting to true will
* cause the filter to behave like an independent random variable when
* composed within logical operator filters).
*/
'use_independent_randomness': (boolean);
}

View File

@ -0,0 +1,23 @@
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { ComparisonFilter as _envoy_config_accesslog_v3_ComparisonFilter, ComparisonFilter__Output as _envoy_config_accesslog_v3_ComparisonFilter__Output } from '../../../../envoy/config/accesslog/v3/ComparisonFilter';
/**
* Filters on HTTP response/status code.
*/
export interface StatusCodeFilter {
/**
* Comparison.
*/
'comparison'?: (_envoy_config_accesslog_v3_ComparisonFilter);
}
/**
* Filters on HTTP response/status code.
*/
export interface StatusCodeFilter__Output {
/**
* Comparison.
*/
'comparison'?: (_envoy_config_accesslog_v3_ComparisonFilter__Output);
}

View File

@ -1,4 +1,4 @@
// Original file: deps/envoy-api/envoy/config/filter/accesslog/v2/accesslog.proto
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
/**

View File

@ -1,10 +1,10 @@
// Original file: deps/envoy-api/envoy/api/v2/cluster/circuit_breaker.proto
// Original file: deps/envoy-api/envoy/config/cluster/v3/circuit_breaker.proto
import type { RoutingPriority as _envoy_api_v2_core_RoutingPriority } from '../../../../envoy/api/v2/core/RoutingPriority';
import type { RoutingPriority as _envoy_config_core_v3_RoutingPriority } from '../../../../envoy/config/core/v3/RoutingPriority';
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
import type { Percent as _envoy_type_Percent, Percent__Output as _envoy_type_Percent__Output } from '../../../../envoy/type/Percent';
import type { Percent as _envoy_type_v3_Percent, Percent__Output as _envoy_type_v3_Percent__Output } from '../../../../envoy/type/v3/Percent';
export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget {
export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget {
/**
* Specifies the limit on concurrent retries as a percentage of the sum of active requests and
* active pending requests. For example, if there are 100 active requests and the
@ -12,7 +12,7 @@ export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget {
*
* This parameter is optional. Defaults to 20%.
*/
'budget_percent'?: (_envoy_type_Percent);
'budget_percent'?: (_envoy_type_v3_Percent);
/**
* Specifies the minimum retry concurrency allowed for the retry budget. The limit on the
* number of active retries may never go below this number.
@ -22,7 +22,7 @@ export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget {
'min_retry_concurrency'?: (_google_protobuf_UInt32Value);
}
export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget__Output {
export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget__Output {
/**
* Specifies the limit on concurrent retries as a percentage of the sum of active requests and
* active pending requests. For example, if there are 100 active requests and the
@ -30,7 +30,7 @@ export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget__O
*
* This parameter is optional. Defaults to 20%.
*/
'budget_percent'?: (_envoy_type_Percent__Output);
'budget_percent'?: (_envoy_type_v3_Percent__Output);
/**
* Specifies the minimum retry concurrency allowed for the retry budget. The limit on the
* number of active retries may never go below this number.
@ -42,15 +42,15 @@ export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget__O
/**
* A Thresholds defines CircuitBreaker settings for a
* :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`.
* :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`.
* [#next-free-field: 9]
*/
export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds {
export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds {
/**
* The :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`
* The :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`
* the specified CircuitBreaker settings apply to.
*/
'priority'?: (_envoy_api_v2_core_RoutingPriority | keyof typeof _envoy_api_v2_core_RoutingPriority);
'priority'?: (_envoy_config_core_v3_RoutingPriority | keyof typeof _envoy_config_core_v3_RoutingPriority);
/**
* The maximum number of connections that Envoy will make to the upstream
* cluster. If not specified, the default is 1024.
@ -80,7 +80,7 @@ export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds {
* If this field is set, the retry budget will override any configured retry circuit
* breaker.
*/
'retry_budget'?: (_envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget);
'retry_budget'?: (_envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget);
/**
* If track_remaining is true, then stats will be published that expose
* the number of resources remaining until the circuit breakers open. If
@ -104,15 +104,15 @@ export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds {
/**
* A Thresholds defines CircuitBreaker settings for a
* :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`.
* :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`.
* [#next-free-field: 9]
*/
export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds__Output {
export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds__Output {
/**
* The :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`
* The :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`
* the specified CircuitBreaker settings apply to.
*/
'priority': (keyof typeof _envoy_api_v2_core_RoutingPriority);
'priority': (keyof typeof _envoy_config_core_v3_RoutingPriority);
/**
* The maximum number of connections that Envoy will make to the upstream
* cluster. If not specified, the default is 1024.
@ -142,7 +142,7 @@ export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds__Output {
* If this field is set, the retry budget will override any configured retry circuit
* breaker.
*/
'retry_budget'?: (_envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget__Output);
'retry_budget'?: (_envoy_config_cluster_v3_CircuitBreakers_Thresholds_RetryBudget__Output);
/**
* If track_remaining is true, then stats will be published that expose
* the number of resources remaining until the circuit breakers open. If
@ -170,13 +170,13 @@ export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds__Output {
*/
export interface CircuitBreakers {
/**
* If multiple :ref:`Thresholds<envoy_api_msg_cluster.CircuitBreakers.Thresholds>`
* are defined with the same :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`,
* If multiple :ref:`Thresholds<envoy_api_msg_config.cluster.v3.CircuitBreakers.Thresholds>`
* are defined with the same :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`,
* the first one in the list is used. If no Thresholds is defined for a given
* :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`, the default values
* :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`, the default values
* are used.
*/
'thresholds'?: (_envoy_api_v2_cluster_CircuitBreakers_Thresholds)[];
'thresholds'?: (_envoy_config_cluster_v3_CircuitBreakers_Thresholds)[];
}
/**
@ -185,11 +185,11 @@ export interface CircuitBreakers {
*/
export interface CircuitBreakers__Output {
/**
* If multiple :ref:`Thresholds<envoy_api_msg_cluster.CircuitBreakers.Thresholds>`
* are defined with the same :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`,
* If multiple :ref:`Thresholds<envoy_api_msg_config.cluster.v3.CircuitBreakers.Thresholds>`
* are defined with the same :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`,
* the first one in the list is used. If no Thresholds is defined for a given
* :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`, the default values
* :ref:`RoutingPriority<envoy_api_enum_config.core.v3.RoutingPriority>`, the default values
* are used.
*/
'thresholds': (_envoy_api_v2_cluster_CircuitBreakers_Thresholds__Output)[];
'thresholds': (_envoy_config_cluster_v3_CircuitBreakers_Thresholds__Output)[];
}

View File

@ -0,0 +1,19 @@
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
import type { CollectionEntry as _xds_core_v3_CollectionEntry, CollectionEntry__Output as _xds_core_v3_CollectionEntry__Output } from '../../../../xds/core/v3/CollectionEntry';
/**
* Cluster list collections. Entries are *Cluster* resources or references.
* [#not-implemented-hide:]
*/
export interface ClusterCollection {
'entries'?: (_xds_core_v3_CollectionEntry);
}
/**
* Cluster list collections. Entries are *Cluster* resources or references.
* [#not-implemented-hide:]
*/
export interface ClusterCollection__Output {
'entries'?: (_xds_core_v3_CollectionEntry__Output);
}

View File

@ -1,4 +1,4 @@
// Original file: deps/envoy-api/envoy/api/v2/cluster/filter.proto
// Original file: deps/envoy-api/envoy/config/cluster/v3/filter.proto
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';

View File

@ -1,31 +1,20 @@
// Original file: deps/envoy-api/envoy/api/v2/cluster.proto
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../google/protobuf/Struct';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
export interface _envoy_api_v2_LoadBalancingPolicy_Policy {
export interface _envoy_config_cluster_v3_LoadBalancingPolicy_Policy {
/**
* Required. The name of the LB policy.
*/
'name'?: (string);
/**
* Optional config for the LB policy.
* No more than one of these two fields may be populated.
*/
'config'?: (_google_protobuf_Struct);
'typed_config'?: (_google_protobuf_Any);
}
export interface _envoy_api_v2_LoadBalancingPolicy_Policy__Output {
export interface _envoy_config_cluster_v3_LoadBalancingPolicy_Policy__Output {
/**
* Required. The name of the LB policy.
*/
'name': (string);
/**
* Optional config for the LB policy.
* No more than one of these two fields may be populated.
*/
'config'?: (_google_protobuf_Struct__Output);
'typed_config'?: (_google_protobuf_Any__Output);
}
@ -56,7 +45,7 @@ export interface LoadBalancingPolicy {
* supports. This provides a mechanism for starting to use new LB policies that are not yet
* supported by all clients.
*/
'policies'?: (_envoy_api_v2_LoadBalancingPolicy_Policy)[];
'policies'?: (_envoy_config_cluster_v3_LoadBalancingPolicy_Policy)[];
}
/**
@ -86,5 +75,5 @@ export interface LoadBalancingPolicy__Output {
* supports. This provides a mechanism for starting to use new LB policies that are not yet
* supported by all clients.
*/
'policies': (_envoy_api_v2_LoadBalancingPolicy_Policy__Output)[];
'policies': (_envoy_config_cluster_v3_LoadBalancingPolicy_Policy__Output)[];
}

View File

@ -1,4 +1,4 @@
// Original file: deps/envoy-api/envoy/api/v2/cluster/outlier_detection.proto
// Original file: deps/envoy-api/envoy/config/cluster/v3/outlier_detection.proto
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
@ -6,7 +6,7 @@ import type { Duration as _google_protobuf_Duration, Duration__Output as _google
/**
* See the :ref:`architecture overview <arch_overview_outlier_detection>` for
* more information on outlier detection.
* [#next-free-field: 21]
* [#next-free-field: 22]
*/
export interface OutlierDetection {
/**
@ -23,7 +23,8 @@ export interface OutlierDetection {
'interval'?: (_google_protobuf_Duration);
/**
* The base time that a host is ejected for. The real time is equal to the
* base time multiplied by the number of times the host has been ejected.
* base time multiplied by the number of times the host has been ejected and is
* capped by :ref:`max_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.max_ejection_time>`.
* Defaults to 30000ms or 30s.
*/
'base_ejection_time'?: (_google_protobuf_Duration);
@ -83,17 +84,17 @@ export interface OutlierDetection {
/**
* Determines whether to distinguish local origin failures from external errors. If set to true
* the following configuration parameters are taken into account:
* :ref:`consecutive_local_origin_failure<envoy_api_field_cluster.OutlierDetection.consecutive_local_origin_failure>`,
* :ref:`enforcing_consecutive_local_origin_failure<envoy_api_field_cluster.OutlierDetection.enforcing_consecutive_local_origin_failure>`
* :ref:`consecutive_local_origin_failure<envoy_api_field_config.cluster.v3.OutlierDetection.consecutive_local_origin_failure>`,
* :ref:`enforcing_consecutive_local_origin_failure<envoy_api_field_config.cluster.v3.OutlierDetection.enforcing_consecutive_local_origin_failure>`
* and
* :ref:`enforcing_local_origin_success_rate<envoy_api_field_cluster.OutlierDetection.enforcing_local_origin_success_rate>`.
* :ref:`enforcing_local_origin_success_rate<envoy_api_field_config.cluster.v3.OutlierDetection.enforcing_local_origin_success_rate>`.
* Defaults to false.
*/
'split_external_local_origin_errors'?: (boolean);
/**
* The number of consecutive locally originated failures before ejection
* occurs. Defaults to 5. Parameter takes effect only when
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
* :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
* is set to true.
*/
'consecutive_local_origin_failure'?: (_google_protobuf_UInt32Value);
@ -102,7 +103,7 @@ export interface OutlierDetection {
* is detected through consecutive locally originated failures. This setting can be
* used to disable ejection or to ramp it up slowly. Defaults to 100.
* Parameter takes effect only when
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
* :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
* is set to true.
*/
'enforcing_consecutive_local_origin_failure'?: (_google_protobuf_UInt32Value);
@ -111,7 +112,7 @@ export interface OutlierDetection {
* is detected through success rate statistics for locally originated errors.
* This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
* Parameter takes effect only when
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
* :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
* is set to true.
*/
'enforcing_local_origin_success_rate'?: (_google_protobuf_UInt32Value);
@ -149,12 +150,18 @@ export interface OutlierDetection {
* this host. Defaults to 50.
*/
'failure_percentage_request_volume'?: (_google_protobuf_UInt32Value);
/**
* The maximum time that a host is ejected for. See :ref:`base_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>`
* for more information.
* Defaults to 300000ms or 300s.
*/
'max_ejection_time'?: (_google_protobuf_Duration);
}
/**
* See the :ref:`architecture overview <arch_overview_outlier_detection>` for
* more information on outlier detection.
* [#next-free-field: 21]
* [#next-free-field: 22]
*/
export interface OutlierDetection__Output {
/**
@ -171,7 +178,8 @@ export interface OutlierDetection__Output {
'interval'?: (_google_protobuf_Duration__Output);
/**
* The base time that a host is ejected for. The real time is equal to the
* base time multiplied by the number of times the host has been ejected.
* base time multiplied by the number of times the host has been ejected and is
* capped by :ref:`max_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.max_ejection_time>`.
* Defaults to 30000ms or 30s.
*/
'base_ejection_time'?: (_google_protobuf_Duration__Output);
@ -231,17 +239,17 @@ export interface OutlierDetection__Output {
/**
* Determines whether to distinguish local origin failures from external errors. If set to true
* the following configuration parameters are taken into account:
* :ref:`consecutive_local_origin_failure<envoy_api_field_cluster.OutlierDetection.consecutive_local_origin_failure>`,
* :ref:`enforcing_consecutive_local_origin_failure<envoy_api_field_cluster.OutlierDetection.enforcing_consecutive_local_origin_failure>`
* :ref:`consecutive_local_origin_failure<envoy_api_field_config.cluster.v3.OutlierDetection.consecutive_local_origin_failure>`,
* :ref:`enforcing_consecutive_local_origin_failure<envoy_api_field_config.cluster.v3.OutlierDetection.enforcing_consecutive_local_origin_failure>`
* and
* :ref:`enforcing_local_origin_success_rate<envoy_api_field_cluster.OutlierDetection.enforcing_local_origin_success_rate>`.
* :ref:`enforcing_local_origin_success_rate<envoy_api_field_config.cluster.v3.OutlierDetection.enforcing_local_origin_success_rate>`.
* Defaults to false.
*/
'split_external_local_origin_errors': (boolean);
/**
* The number of consecutive locally originated failures before ejection
* occurs. Defaults to 5. Parameter takes effect only when
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
* :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
* is set to true.
*/
'consecutive_local_origin_failure'?: (_google_protobuf_UInt32Value__Output);
@ -250,7 +258,7 @@ export interface OutlierDetection__Output {
* is detected through consecutive locally originated failures. This setting can be
* used to disable ejection or to ramp it up slowly. Defaults to 100.
* Parameter takes effect only when
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
* :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
* is set to true.
*/
'enforcing_consecutive_local_origin_failure'?: (_google_protobuf_UInt32Value__Output);
@ -259,7 +267,7 @@ export interface OutlierDetection__Output {
* is detected through success rate statistics for locally originated errors.
* This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
* Parameter takes effect only when
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
* :ref:`split_external_local_origin_errors<envoy_api_field_config.cluster.v3.OutlierDetection.split_external_local_origin_errors>`
* is set to true.
*/
'enforcing_local_origin_success_rate'?: (_google_protobuf_UInt32Value__Output);
@ -297,4 +305,10 @@ export interface OutlierDetection__Output {
* this host. Defaults to 50.
*/
'failure_percentage_request_volume'?: (_google_protobuf_UInt32Value__Output);
/**
* The maximum time that a host is ejected for. See :ref:`base_ejection_time<envoy_api_field_config.cluster.v3.OutlierDetection.base_ejection_time>`
* for more information.
* Defaults to 300000ms or 300s.
*/
'max_ejection_time'?: (_google_protobuf_Duration__Output);
}

View File

@ -0,0 +1,36 @@
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
export interface TrackClusterStats {
/**
* If timeout_budgets is true, the :ref:`timeout budget histograms
* <config_cluster_manager_cluster_stats_timeout_budgets>` will be published for each
* request. These show what percentage of a request's per try and global timeout was used. A value
* of 0 would indicate that none of the timeout was used or that the timeout was infinite. A value
* of 100 would indicate that the request took the entirety of the timeout given to it.
*/
'timeout_budgets'?: (boolean);
/**
* If request_response_sizes is true, then the :ref:`histograms
* <config_cluster_manager_cluster_stats_request_response_sizes>` tracking header and body sizes
* of requests and responses will be published.
*/
'request_response_sizes'?: (boolean);
}
export interface TrackClusterStats__Output {
/**
* If timeout_budgets is true, the :ref:`timeout budget histograms
* <config_cluster_manager_cluster_stats_timeout_budgets>` will be published for each
* request. These show what percentage of a request's per try and global timeout was used. A value
* of 0 would indicate that none of the timeout was used or that the timeout was infinite. A value
* of 100 would indicate that the request took the entirety of the timeout given to it.
*/
'timeout_budgets': (boolean);
/**
* If request_response_sizes is true, then the :ref:`histograms
* <config_cluster_manager_cluster_stats_request_response_sizes>` tracking header and body sizes
* of requests and responses will be published.
*/
'request_response_sizes': (boolean);
}

View File

@ -1,6 +1,6 @@
// Original file: deps/envoy-api/envoy/api/v2/cluster.proto
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
import type { Address as _envoy_api_v2_core_Address, Address__Output as _envoy_api_v2_core_Address__Output } from '../../../envoy/api/v2/core/Address';
import type { Address as _envoy_config_core_v3_Address, Address__Output as _envoy_config_core_v3_Address__Output } from '../../../../envoy/config/core/v3/Address';
/**
* An extensible structure containing the address Envoy should bind to when
@ -10,7 +10,7 @@ export interface UpstreamBindConfig {
/**
* The address Envoy should bind to when establishing upstream connections.
*/
'source_address'?: (_envoy_api_v2_core_Address);
'source_address'?: (_envoy_config_core_v3_Address);
}
/**
@ -21,5 +21,5 @@ export interface UpstreamBindConfig__Output {
/**
* The address Envoy should bind to when establishing upstream connections.
*/
'source_address'?: (_envoy_api_v2_core_Address__Output);
'source_address'?: (_envoy_config_core_v3_Address__Output);
}

View File

@ -0,0 +1,17 @@
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
import type { TcpKeepalive as _envoy_config_core_v3_TcpKeepalive, TcpKeepalive__Output as _envoy_config_core_v3_TcpKeepalive__Output } from '../../../../envoy/config/core/v3/TcpKeepalive';
export interface UpstreamConnectionOptions {
/**
* If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.
*/
'tcp_keepalive'?: (_envoy_config_core_v3_TcpKeepalive);
}
export interface UpstreamConnectionOptions__Output {
/**
* If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.
*/
'tcp_keepalive'?: (_envoy_config_core_v3_TcpKeepalive__Output);
}

View File

@ -0,0 +1,35 @@
// Original file: deps/envoy-api/envoy/config/core/v3/address.proto
import type { SocketAddress as _envoy_config_core_v3_SocketAddress, SocketAddress__Output as _envoy_config_core_v3_SocketAddress__Output } from '../../../../envoy/config/core/v3/SocketAddress';
import type { Pipe as _envoy_config_core_v3_Pipe, Pipe__Output as _envoy_config_core_v3_Pipe__Output } from '../../../../envoy/config/core/v3/Pipe';
import type { EnvoyInternalAddress as _envoy_config_core_v3_EnvoyInternalAddress, EnvoyInternalAddress__Output as _envoy_config_core_v3_EnvoyInternalAddress__Output } from '../../../../envoy/config/core/v3/EnvoyInternalAddress';
/**
* Addresses specify either a logical or physical address and port, which are
* used to tell Envoy where to bind/listen, connect to upstream and find
* management servers.
*/
export interface Address {
'socket_address'?: (_envoy_config_core_v3_SocketAddress);
'pipe'?: (_envoy_config_core_v3_Pipe);
/**
* [#not-implemented-hide:]
*/
'envoy_internal_address'?: (_envoy_config_core_v3_EnvoyInternalAddress);
'address'?: "socket_address"|"pipe"|"envoy_internal_address";
}
/**
* Addresses specify either a logical or physical address and port, which are
* used to tell Envoy where to bind/listen, connect to upstream and find
* management servers.
*/
export interface Address__Output {
'socket_address'?: (_envoy_config_core_v3_SocketAddress__Output);
'pipe'?: (_envoy_config_core_v3_Pipe__Output);
/**
* [#not-implemented-hide:]
*/
'envoy_internal_address'?: (_envoy_config_core_v3_EnvoyInternalAddress__Output);
'address': "socket_address"|"pipe"|"envoy_internal_address";
}

View File

@ -1,9 +1,9 @@
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
// Original file: deps/envoy-api/envoy/config/core/v3/config_source.proto
/**
* Aggregated Discovery Service (ADS) options. This is currently empty, but when
* set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
* set in :ref:`ConfigSource <envoy_api_msg_config.core.v3.ConfigSource>` can be used to
* specify that ADS is to be used.
*/
export interface AggregatedConfigSource {
@ -11,7 +11,7 @@ export interface AggregatedConfigSource {
/**
* Aggregated Discovery Service (ADS) options. This is currently empty, but when
* set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
* set in :ref:`ConfigSource <envoy_api_msg_config.core.v3.ConfigSource>` can be used to
* specify that ADS is to be used.
*/
export interface AggregatedConfigSource__Output {

View File

@ -1,21 +1,21 @@
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
// Original file: deps/envoy-api/envoy/config/core/v3/config_source.proto
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
import type { GrpcService as _envoy_api_v2_core_GrpcService, GrpcService__Output as _envoy_api_v2_core_GrpcService__Output } from '../../../../envoy/api/v2/core/GrpcService';
import type { RateLimitSettings as _envoy_api_v2_core_RateLimitSettings, RateLimitSettings__Output as _envoy_api_v2_core_RateLimitSettings__Output } from '../../../../envoy/api/v2/core/RateLimitSettings';
import type { ApiVersion as _envoy_api_v2_core_ApiVersion } from '../../../../envoy/api/v2/core/ApiVersion';
import type { GrpcService as _envoy_config_core_v3_GrpcService, GrpcService__Output as _envoy_config_core_v3_GrpcService__Output } from '../../../../envoy/config/core/v3/GrpcService';
import type { RateLimitSettings as _envoy_config_core_v3_RateLimitSettings, RateLimitSettings__Output as _envoy_config_core_v3_RateLimitSettings__Output } from '../../../../envoy/config/core/v3/RateLimitSettings';
import type { ApiVersion as _envoy_config_core_v3_ApiVersion } from '../../../../envoy/config/core/v3/ApiVersion';
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
// Original file: deps/envoy-api/envoy/config/core/v3/config_source.proto
/**
* APIs may be fetched via either REST or gRPC.
*/
export enum _envoy_api_v2_core_ApiConfigSource_ApiType {
export enum _envoy_config_core_v3_ApiConfigSource_ApiType {
/**
* Ideally this would be 'reserved 0' but one can't reserve the default
* value. Instead we throw an exception if this is ever used.
*/
UNSUPPORTED_REST_LEGACY = 0,
DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE = 0,
/**
* REST-JSON v2 API. The `canonical JSON encoding
* <https://developers.google.com/protocol-buffers/docs/proto3#json>`_ for
@ -23,7 +23,7 @@ export enum _envoy_api_v2_core_ApiConfigSource_ApiType {
*/
REST = 1,
/**
* gRPC v2 API.
* SotW gRPC service.
*/
GRPC = 2,
/**
@ -32,6 +32,18 @@ export enum _envoy_api_v2_core_ApiConfigSource_ApiType {
* with every update, the xDS server only sends what has changed since the last update.
*/
DELTA_GRPC = 3,
/**
* SotW xDS gRPC with ADS. All resources which resolve to this configuration source will be
* multiplexed on a single connection to an ADS endpoint.
* [#not-implemented-hide:]
*/
AGGREGATED_GRPC = 5,
/**
* Delta xDS gRPC with ADS. All resources which resolve to this configuration source will be
* multiplexed on a single connection to an ADS endpoint.
* [#not-implemented-hide:]
*/
AGGREGATED_DELTA_GRPC = 6,
}
/**
@ -43,7 +55,7 @@ export interface ApiConfigSource {
/**
* API type (gRPC, REST, delta gRPC)
*/
'api_type'?: (_envoy_api_v2_core_ApiConfigSource_ApiType | keyof typeof _envoy_api_v2_core_ApiConfigSource_ApiType);
'api_type'?: (_envoy_config_core_v3_ApiConfigSource_ApiType | keyof typeof _envoy_config_core_v3_ApiConfigSource_ApiType);
/**
* Cluster names should be used only with REST. If > 1
* cluster is defined, clusters will be cycled through if any kind of failure
@ -63,7 +75,7 @@ export interface ApiConfigSource {
* Multiple gRPC services be provided for GRPC. If > 1 cluster is defined,
* services will be cycled through if any kind of failure occurs.
*/
'grpc_services'?: (_envoy_api_v2_core_GrpcService)[];
'grpc_services'?: (_envoy_config_core_v3_GrpcService)[];
/**
* For REST APIs, the request timeout. If not set, a default value of 1s will be used.
*/
@ -72,7 +84,7 @@ export interface ApiConfigSource {
* For GRPC APIs, the rate limit settings. If present, discovery requests made by Envoy will be
* rate limited.
*/
'rate_limit_settings'?: (_envoy_api_v2_core_RateLimitSettings);
'rate_limit_settings'?: (_envoy_config_core_v3_RateLimitSettings);
/**
* Skip the node identifier in subsequent discovery requests for streaming gRPC config types.
*/
@ -81,7 +93,7 @@ export interface ApiConfigSource {
* API version for xDS transport protocol. This describes the xDS gRPC/REST
* endpoint and version of [Delta]DiscoveryRequest/Response used on the wire.
*/
'transport_api_version'?: (_envoy_api_v2_core_ApiVersion | keyof typeof _envoy_api_v2_core_ApiVersion);
'transport_api_version'?: (_envoy_config_core_v3_ApiVersion | keyof typeof _envoy_config_core_v3_ApiVersion);
}
/**
@ -93,7 +105,7 @@ export interface ApiConfigSource__Output {
/**
* API type (gRPC, REST, delta gRPC)
*/
'api_type': (keyof typeof _envoy_api_v2_core_ApiConfigSource_ApiType);
'api_type': (keyof typeof _envoy_config_core_v3_ApiConfigSource_ApiType);
/**
* Cluster names should be used only with REST. If > 1
* cluster is defined, clusters will be cycled through if any kind of failure
@ -113,7 +125,7 @@ export interface ApiConfigSource__Output {
* Multiple gRPC services be provided for GRPC. If > 1 cluster is defined,
* services will be cycled through if any kind of failure occurs.
*/
'grpc_services': (_envoy_api_v2_core_GrpcService__Output)[];
'grpc_services': (_envoy_config_core_v3_GrpcService__Output)[];
/**
* For REST APIs, the request timeout. If not set, a default value of 1s will be used.
*/
@ -122,7 +134,7 @@ export interface ApiConfigSource__Output {
* For GRPC APIs, the rate limit settings. If present, discovery requests made by Envoy will be
* rate limited.
*/
'rate_limit_settings'?: (_envoy_api_v2_core_RateLimitSettings__Output);
'rate_limit_settings'?: (_envoy_config_core_v3_RateLimitSettings__Output);
/**
* Skip the node identifier in subsequent discovery requests for streaming gRPC config types.
*/
@ -131,5 +143,5 @@ export interface ApiConfigSource__Output {
* API version for xDS transport protocol. This describes the xDS gRPC/REST
* endpoint and version of [Delta]DiscoveryRequest/Response used on the wire.
*/
'transport_api_version': (keyof typeof _envoy_api_v2_core_ApiVersion);
'transport_api_version': (keyof typeof _envoy_config_core_v3_ApiVersion);
}

View File

@ -1,7 +1,7 @@
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
// Original file: deps/envoy-api/envoy/config/core/v3/config_source.proto
/**
* xDS API version. This is used to describe both resource and transport
* xDS API and non-xDS services version. This is used to describe both resource and transport
* protocol versions (in distinct configuration fields).
*/
export enum ApiVersion {

View File

@ -0,0 +1,34 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { DataSource as _envoy_config_core_v3_DataSource, DataSource__Output as _envoy_config_core_v3_DataSource__Output } from '../../../../envoy/config/core/v3/DataSource';
import type { RemoteDataSource as _envoy_config_core_v3_RemoteDataSource, RemoteDataSource__Output as _envoy_config_core_v3_RemoteDataSource__Output } from '../../../../envoy/config/core/v3/RemoteDataSource';
/**
* Async data source which support async data fetch.
*/
export interface AsyncDataSource {
/**
* Local async data source.
*/
'local'?: (_envoy_config_core_v3_DataSource);
/**
* Remote async data source.
*/
'remote'?: (_envoy_config_core_v3_RemoteDataSource);
'specifier'?: "local"|"remote";
}
/**
* Async data source which support async data fetch.
*/
export interface AsyncDataSource__Output {
/**
* Local async data source.
*/
'local'?: (_envoy_config_core_v3_DataSource__Output);
/**
* Remote async data source.
*/
'remote'?: (_envoy_config_core_v3_RemoteDataSource__Output);
'specifier': "local"|"remote";
}

View File

@ -0,0 +1,43 @@
// Original file: deps/envoy-api/envoy/config/core/v3/backoff.proto
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
/**
* Configuration defining a jittered exponential back off strategy.
*/
export interface BackoffStrategy {
/**
* The base interval to be used for the next back off computation. It should
* be greater than zero and less than or equal to :ref:`max_interval
* <envoy_api_field_config.core.v3.BackoffStrategy.max_interval>`.
*/
'base_interval'?: (_google_protobuf_Duration);
/**
* Specifies the maximum interval between retries. This parameter is optional,
* but must be greater than or equal to the :ref:`base_interval
* <envoy_api_field_config.core.v3.BackoffStrategy.base_interval>` if set. The default
* is 10 times the :ref:`base_interval
* <envoy_api_field_config.core.v3.BackoffStrategy.base_interval>`.
*/
'max_interval'?: (_google_protobuf_Duration);
}
/**
* Configuration defining a jittered exponential back off strategy.
*/
export interface BackoffStrategy__Output {
/**
* The base interval to be used for the next back off computation. It should
* be greater than zero and less than or equal to :ref:`max_interval
* <envoy_api_field_config.core.v3.BackoffStrategy.max_interval>`.
*/
'base_interval'?: (_google_protobuf_Duration__Output);
/**
* Specifies the maximum interval between retries. This parameter is optional,
* but must be greater than or equal to the :ref:`base_interval
* <envoy_api_field_config.core.v3.BackoffStrategy.base_interval>` if set. The default
* is 10 times the :ref:`base_interval
* <envoy_api_field_config.core.v3.BackoffStrategy.base_interval>`.
*/
'max_interval'?: (_google_protobuf_Duration__Output);
}

View File

@ -0,0 +1,49 @@
// Original file: deps/envoy-api/envoy/config/core/v3/address.proto
import type { SocketAddress as _envoy_config_core_v3_SocketAddress, SocketAddress__Output as _envoy_config_core_v3_SocketAddress__Output } from '../../../../envoy/config/core/v3/SocketAddress';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { SocketOption as _envoy_config_core_v3_SocketOption, SocketOption__Output as _envoy_config_core_v3_SocketOption__Output } from '../../../../envoy/config/core/v3/SocketOption';
export interface BindConfig {
/**
* The address to bind to when creating a socket.
*/
'source_address'?: (_envoy_config_core_v3_SocketAddress);
/**
* Whether to set the *IP_FREEBIND* option when creating the socket. When this
* flag is set to true, allows the :ref:`source_address
* <envoy_api_field_config.cluster.v3.UpstreamBindConfig.source_address>` to be an IP address
* that is not configured on the system running Envoy. When this flag is set
* to false, the option *IP_FREEBIND* is disabled on the socket. When this
* flag is not set (default), the socket is not modified, i.e. the option is
* neither enabled nor disabled.
*/
'freebind'?: (_google_protobuf_BoolValue);
/**
* Additional socket options that may not be present in Envoy source code or
* precompiled binaries.
*/
'socket_options'?: (_envoy_config_core_v3_SocketOption)[];
}
export interface BindConfig__Output {
/**
* The address to bind to when creating a socket.
*/
'source_address'?: (_envoy_config_core_v3_SocketAddress__Output);
/**
* Whether to set the *IP_FREEBIND* option when creating the socket. When this
* flag is set to true, allows the :ref:`source_address
* <envoy_api_field_config.cluster.v3.UpstreamBindConfig.source_address>` to be an IP address
* that is not configured on the system running Envoy. When this flag is set
* to false, the option *IP_FREEBIND* is disabled on the socket. When this
* flag is not set (default), the socket is not modified, i.e. the option is
* neither enabled nor disabled.
*/
'freebind'?: (_google_protobuf_BoolValue__Output);
/**
* Additional socket options that may not be present in Envoy source code or
* precompiled binaries.
*/
'socket_options': (_envoy_config_core_v3_SocketOption__Output)[];
}

View File

@ -0,0 +1,36 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { SemanticVersion as _envoy_type_v3_SemanticVersion, SemanticVersion__Output as _envoy_type_v3_SemanticVersion__Output } from '../../../../envoy/type/v3/SemanticVersion';
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
/**
* BuildVersion combines SemVer version of extension with free-form build information
* (i.e. 'alpha', 'private-build') as a set of strings.
*/
export interface BuildVersion {
/**
* SemVer version of extension.
*/
'version'?: (_envoy_type_v3_SemanticVersion);
/**
* Free-form build information.
* Envoy defines several well known keys in the source/common/version/version.h file
*/
'metadata'?: (_google_protobuf_Struct);
}
/**
* BuildVersion combines SemVer version of extension with free-form build information
* (i.e. 'alpha', 'private-build') as a set of strings.
*/
export interface BuildVersion__Output {
/**
* SemVer version of extension.
*/
'version'?: (_envoy_type_v3_SemanticVersion__Output);
/**
* Free-form build information.
* Envoy defines several well known keys in the source/common/version/version.h file
*/
'metadata'?: (_google_protobuf_Struct__Output);
}

View File

@ -0,0 +1,33 @@
// Original file: deps/envoy-api/envoy/config/core/v3/address.proto
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
/**
* CidrRange specifies an IP Address and a prefix length to construct
* the subnet mask for a `CIDR <https://tools.ietf.org/html/rfc4632>`_ range.
*/
export interface CidrRange {
/**
* IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
*/
'address_prefix'?: (string);
/**
* Length of prefix, e.g. 0, 32.
*/
'prefix_len'?: (_google_protobuf_UInt32Value);
}
/**
* CidrRange specifies an IP Address and a prefix length to construct
* the subnet mask for a `CIDR <https://tools.ietf.org/html/rfc4632>`_ range.
*/
export interface CidrRange__Output {
/**
* IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
*/
'address_prefix': (string);
/**
* Length of prefix, e.g. 0, 32.
*/
'prefix_len'?: (_google_protobuf_UInt32Value__Output);
}

View File

@ -1,24 +1,25 @@
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
// Original file: deps/envoy-api/envoy/config/core/v3/config_source.proto
import type { ApiConfigSource as _envoy_api_v2_core_ApiConfigSource, ApiConfigSource__Output as _envoy_api_v2_core_ApiConfigSource__Output } from '../../../../envoy/api/v2/core/ApiConfigSource';
import type { AggregatedConfigSource as _envoy_api_v2_core_AggregatedConfigSource, AggregatedConfigSource__Output as _envoy_api_v2_core_AggregatedConfigSource__Output } from '../../../../envoy/api/v2/core/AggregatedConfigSource';
import type { ApiConfigSource as _envoy_config_core_v3_ApiConfigSource, ApiConfigSource__Output as _envoy_config_core_v3_ApiConfigSource__Output } from '../../../../envoy/config/core/v3/ApiConfigSource';
import type { AggregatedConfigSource as _envoy_config_core_v3_AggregatedConfigSource, AggregatedConfigSource__Output as _envoy_config_core_v3_AggregatedConfigSource__Output } from '../../../../envoy/config/core/v3/AggregatedConfigSource';
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
import type { SelfConfigSource as _envoy_api_v2_core_SelfConfigSource, SelfConfigSource__Output as _envoy_api_v2_core_SelfConfigSource__Output } from '../../../../envoy/api/v2/core/SelfConfigSource';
import type { ApiVersion as _envoy_api_v2_core_ApiVersion } from '../../../../envoy/api/v2/core/ApiVersion';
import type { SelfConfigSource as _envoy_config_core_v3_SelfConfigSource, SelfConfigSource__Output as _envoy_config_core_v3_SelfConfigSource__Output } from '../../../../envoy/config/core/v3/SelfConfigSource';
import type { ApiVersion as _envoy_config_core_v3_ApiVersion } from '../../../../envoy/config/core/v3/ApiVersion';
import type { Authority as _xds_core_v3_Authority, Authority__Output as _xds_core_v3_Authority__Output } from '../../../../xds/core/v3/Authority';
/**
* Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
* <config_cluster_manager>`, :ref:`routes
* <envoy_api_msg_RouteConfiguration>`, :ref:`endpoints
* <envoy_api_msg_config.route.v3.RouteConfiguration>`, :ref:`endpoints
* <arch_overview_service_discovery>` etc. may either be sourced from the
* filesystem or from an xDS API source. Filesystem configs are watched with
* inotify for updates.
* [#next-free-field: 7]
* [#next-free-field: 8]
*/
export interface ConfigSource {
/**
* Path on the filesystem to source and watch for configuration updates.
* When sourcing configuration for :ref:`secret <envoy_api_msg_auth.Secret>`,
* When sourcing configuration for :ref:`secret <envoy_api_msg_extensions.transport_sockets.tls.v3.Secret>`,
* the certificate and key files are also watched for updates.
*
* .. note::
@ -35,12 +36,12 @@ export interface ConfigSource {
/**
* API configuration source.
*/
'api_config_source'?: (_envoy_api_v2_core_ApiConfigSource);
'api_config_source'?: (_envoy_config_core_v3_ApiConfigSource);
/**
* When set, ADS will be used to fetch resources. The ADS API configuration
* source in the bootstrap configuration is used.
*/
'ads'?: (_envoy_api_v2_core_AggregatedConfigSource);
'ads'?: (_envoy_config_core_v3_AggregatedConfigSource);
/**
* When this timeout is specified, Envoy will wait no longer than the specified time for first
* config response on this xDS subscription during the :ref:`initialization process
@ -64,29 +65,36 @@ export interface ConfigSource {
* this field can implicitly mean to use the same stream in the case where the ConfigSource
* is provided via ADS and the specified data can also be obtained via ADS.]
*/
'self'?: (_envoy_api_v2_core_SelfConfigSource);
'self'?: (_envoy_config_core_v3_SelfConfigSource);
/**
* API version for xDS resources. This implies the type URLs that the client
* will request for resources and the resource type that the client will in
* turn expect to be delivered.
*/
'resource_api_version'?: (_envoy_api_v2_core_ApiVersion | keyof typeof _envoy_api_v2_core_ApiVersion);
'resource_api_version'?: (_envoy_config_core_v3_ApiVersion | keyof typeof _envoy_config_core_v3_ApiVersion);
/**
* Authorities that this config source may be used for. An authority specified in a xdstp:// URL
* is resolved to a *ConfigSource* prior to configuration fetch. This field provides the
* association between authority name and configuration source.
* [#not-implemented-hide:]
*/
'authorities'?: (_xds_core_v3_Authority)[];
'config_source_specifier'?: "path"|"api_config_source"|"ads"|"self";
}
/**
* Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
* <config_cluster_manager>`, :ref:`routes
* <envoy_api_msg_RouteConfiguration>`, :ref:`endpoints
* <envoy_api_msg_config.route.v3.RouteConfiguration>`, :ref:`endpoints
* <arch_overview_service_discovery>` etc. may either be sourced from the
* filesystem or from an xDS API source. Filesystem configs are watched with
* inotify for updates.
* [#next-free-field: 7]
* [#next-free-field: 8]
*/
export interface ConfigSource__Output {
/**
* Path on the filesystem to source and watch for configuration updates.
* When sourcing configuration for :ref:`secret <envoy_api_msg_auth.Secret>`,
* When sourcing configuration for :ref:`secret <envoy_api_msg_extensions.transport_sockets.tls.v3.Secret>`,
* the certificate and key files are also watched for updates.
*
* .. note::
@ -103,12 +111,12 @@ export interface ConfigSource__Output {
/**
* API configuration source.
*/
'api_config_source'?: (_envoy_api_v2_core_ApiConfigSource__Output);
'api_config_source'?: (_envoy_config_core_v3_ApiConfigSource__Output);
/**
* When set, ADS will be used to fetch resources. The ADS API configuration
* source in the bootstrap configuration is used.
*/
'ads'?: (_envoy_api_v2_core_AggregatedConfigSource__Output);
'ads'?: (_envoy_config_core_v3_AggregatedConfigSource__Output);
/**
* When this timeout is specified, Envoy will wait no longer than the specified time for first
* config response on this xDS subscription during the :ref:`initialization process
@ -132,12 +140,19 @@ export interface ConfigSource__Output {
* this field can implicitly mean to use the same stream in the case where the ConfigSource
* is provided via ADS and the specified data can also be obtained via ADS.]
*/
'self'?: (_envoy_api_v2_core_SelfConfigSource__Output);
'self'?: (_envoy_config_core_v3_SelfConfigSource__Output);
/**
* API version for xDS resources. This implies the type URLs that the client
* will request for resources and the resource type that the client will in
* turn expect to be delivered.
*/
'resource_api_version': (keyof typeof _envoy_api_v2_core_ApiVersion);
'resource_api_version': (keyof typeof _envoy_config_core_v3_ApiVersion);
/**
* Authorities that this config source may be used for. An authority specified in a xdstp:// URL
* is resolved to a *ConfigSource* prior to configuration fetch. This field provides the
* association between authority name and configuration source.
* [#not-implemented-hide:]
*/
'authorities': (_xds_core_v3_Authority__Output)[];
'config_source_specifier': "path"|"api_config_source"|"ads"|"self";
}

View File

@ -0,0 +1,26 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
/**
* Identifies a specific ControlPlane instance that Envoy is connected to.
*/
export interface ControlPlane {
/**
* An opaque control plane identifier that uniquely identifies an instance
* of control plane. This can be used to identify which control plane instance,
* the Envoy is connected to.
*/
'identifier'?: (string);
}
/**
* Identifies a specific ControlPlane instance that Envoy is connected to.
*/
export interface ControlPlane__Output {
/**
* An opaque control plane identifier that uniquely identifies an instance
* of control plane. This can be used to identify which control plane instance,
* the Envoy is connected to.
*/
'identifier': (string);
}

View File

@ -0,0 +1,40 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
/**
* Data source consisting of either a file or an inline value.
*/
export interface DataSource {
/**
* Local filesystem data source.
*/
'filename'?: (string);
/**
* Bytes inlined in the configuration.
*/
'inline_bytes'?: (Buffer | Uint8Array | string);
/**
* String inlined in the configuration.
*/
'inline_string'?: (string);
'specifier'?: "filename"|"inline_bytes"|"inline_string";
}
/**
* Data source consisting of either a file or an inline value.
*/
export interface DataSource__Output {
/**
* Local filesystem data source.
*/
'filename'?: (string);
/**
* Bytes inlined in the configuration.
*/
'inline_bytes'?: (Buffer);
/**
* String inlined in the configuration.
*/
'inline_string'?: (string);
'specifier': "filename"|"inline_bytes"|"inline_string";
}

View File

@ -0,0 +1,28 @@
// Original file: deps/envoy-api/envoy/config/core/v3/address.proto
/**
* [#not-implemented-hide:] The address represents an envoy internal listener.
* TODO(lambdai): Make this address available for listener and endpoint.
* TODO(asraa): When address available, remove workaround from test/server/server_fuzz_test.cc:30.
*/
export interface EnvoyInternalAddress {
/**
* [#not-implemented-hide:] The :ref:`listener name <envoy_api_field_config.listener.v3.Listener.name>` of the destination internal listener.
*/
'server_listener_name'?: (string);
'address_name_specifier'?: "server_listener_name";
}
/**
* [#not-implemented-hide:] The address represents an envoy internal listener.
* TODO(lambdai): Make this address available for listener and endpoint.
* TODO(asraa): When address available, remove workaround from test/server/server_fuzz_test.cc:30.
*/
export interface EnvoyInternalAddress__Output {
/**
* [#not-implemented-hide:] The :ref:`listener name <envoy_api_field_config.listener.v3.Listener.name>` of the destination internal listener.
*/
'server_listener_name'?: (string);
'address_name_specifier': "server_listener_name";
}

View File

@ -1,6 +1,6 @@
// Original file: deps/envoy-api/envoy/api/v2/core/event_service_config.proto
// Original file: deps/envoy-api/envoy/config/core/v3/event_service_config.proto
import type { GrpcService as _envoy_api_v2_core_GrpcService, GrpcService__Output as _envoy_api_v2_core_GrpcService__Output } from '../../../../envoy/api/v2/core/GrpcService';
import type { GrpcService as _envoy_config_core_v3_GrpcService, GrpcService__Output as _envoy_config_core_v3_GrpcService__Output } from '../../../../envoy/config/core/v3/GrpcService';
/**
* [#not-implemented-hide:]
@ -10,7 +10,7 @@ export interface EventServiceConfig {
/**
* Specifies the gRPC service that hosts the event reporting service.
*/
'grpc_service'?: (_envoy_api_v2_core_GrpcService);
'grpc_service'?: (_envoy_config_core_v3_GrpcService);
'config_source_specifier'?: "grpc_service";
}
@ -22,6 +22,6 @@ export interface EventServiceConfig__Output {
/**
* Specifies the gRPC service that hosts the event reporting service.
*/
'grpc_service'?: (_envoy_api_v2_core_GrpcService__Output);
'grpc_service'?: (_envoy_config_core_v3_GrpcService__Output);
'config_source_specifier': "grpc_service";
}

View File

@ -0,0 +1,75 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { BuildVersion as _envoy_config_core_v3_BuildVersion, BuildVersion__Output as _envoy_config_core_v3_BuildVersion__Output } from '../../../../envoy/config/core/v3/BuildVersion';
/**
* Version and identification for an Envoy extension.
* [#next-free-field: 6]
*/
export interface Extension {
/**
* This is the name of the Envoy filter as specified in the Envoy
* configuration, e.g. envoy.filters.http.router, com.acme.widget.
*/
'name'?: (string);
/**
* Category of the extension.
* Extension category names use reverse DNS notation. For instance "envoy.filters.listener"
* for Envoy's built-in listener filters or "com.acme.filters.http" for HTTP filters from
* acme.com vendor.
* [#comment:TODO(yanavlasov): Link to the doc with existing envoy category names.]
*/
'category'?: (string);
/**
* [#not-implemented-hide:] Type descriptor of extension configuration proto.
* [#comment:TODO(yanavlasov): Link to the doc with existing configuration protos.]
* [#comment:TODO(yanavlasov): Add tests when PR #9391 lands.]
*/
'type_descriptor'?: (string);
/**
* The version is a property of the extension and maintained independently
* of other extensions and the Envoy API.
* This field is not set when extension did not provide version information.
*/
'version'?: (_envoy_config_core_v3_BuildVersion);
/**
* Indicates that the extension is present but was disabled via dynamic configuration.
*/
'disabled'?: (boolean);
}
/**
* Version and identification for an Envoy extension.
* [#next-free-field: 6]
*/
export interface Extension__Output {
/**
* This is the name of the Envoy filter as specified in the Envoy
* configuration, e.g. envoy.filters.http.router, com.acme.widget.
*/
'name': (string);
/**
* Category of the extension.
* Extension category names use reverse DNS notation. For instance "envoy.filters.listener"
* for Envoy's built-in listener filters or "com.acme.filters.http" for HTTP filters from
* acme.com vendor.
* [#comment:TODO(yanavlasov): Link to the doc with existing envoy category names.]
*/
'category': (string);
/**
* [#not-implemented-hide:] Type descriptor of extension configuration proto.
* [#comment:TODO(yanavlasov): Link to the doc with existing configuration protos.]
* [#comment:TODO(yanavlasov): Add tests when PR #9391 lands.]
*/
'type_descriptor': (string);
/**
* The version is a property of the extension and maintained independently
* of other extensions and the Envoy API.
* This field is not set when extension did not provide version information.
*/
'version'?: (_envoy_config_core_v3_BuildVersion__Output);
/**
* Indicates that the extension is present but was disabled via dynamic configuration.
*/
'disabled': (boolean);
}

View File

@ -0,0 +1,72 @@
// Original file: deps/envoy-api/envoy/config/core/v3/extension.proto
import type { ConfigSource as _envoy_config_core_v3_ConfigSource, ConfigSource__Output as _envoy_config_core_v3_ConfigSource__Output } from '../../../../envoy/config/core/v3/ConfigSource';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
/**
* Configuration source specifier for a late-bound extension configuration. The
* parent resource is warmed until all the initial extension configurations are
* received, unless the flag to apply the default configuration is set.
* Subsequent extension updates are atomic on a per-worker basis. Once an
* extension configuration is applied to a request or a connection, it remains
* constant for the duration of processing. If the initial delivery of the
* extension configuration fails, due to a timeout for example, the optional
* default configuration is applied. Without a default configuration, the
* extension is disabled, until an extension configuration is received. The
* behavior of a disabled extension depends on the context. For example, a
* filter chain with a disabled extension filter rejects all incoming streams.
*/
export interface ExtensionConfigSource {
'config_source'?: (_envoy_config_core_v3_ConfigSource);
/**
* Optional default configuration to use as the initial configuration if
* there is a failure to receive the initial extension configuration or if
* `apply_default_config_without_warming` flag is set.
*/
'default_config'?: (_google_protobuf_Any);
/**
* Use the default config as the initial configuration without warming and
* waiting for the first discovery response. Requires the default configuration
* to be supplied.
*/
'apply_default_config_without_warming'?: (boolean);
/**
* A set of permitted extension type URLs. Extension configuration updates are rejected
* if they do not match any type URL in the set.
*/
'type_urls'?: (string)[];
}
/**
* Configuration source specifier for a late-bound extension configuration. The
* parent resource is warmed until all the initial extension configurations are
* received, unless the flag to apply the default configuration is set.
* Subsequent extension updates are atomic on a per-worker basis. Once an
* extension configuration is applied to a request or a connection, it remains
* constant for the duration of processing. If the initial delivery of the
* extension configuration fails, due to a timeout for example, the optional
* default configuration is applied. Without a default configuration, the
* extension is disabled, until an extension configuration is received. The
* behavior of a disabled extension depends on the context. For example, a
* filter chain with a disabled extension filter rejects all incoming streams.
*/
export interface ExtensionConfigSource__Output {
'config_source'?: (_envoy_config_core_v3_ConfigSource__Output);
/**
* Optional default configuration to use as the initial configuration if
* there is a failure to receive the initial extension configuration or if
* `apply_default_config_without_warming` flag is set.
*/
'default_config'?: (_google_protobuf_Any__Output);
/**
* Use the default config as the initial configuration without warming and
* waiting for the first discovery response. Requires the default configuration
* to be supplied.
*/
'apply_default_config_without_warming': (boolean);
/**
* A set of permitted extension type URLs. Extension configuration updates are rejected
* if they do not match any type URL in the set.
*/
'type_urls': (string)[];
}

View File

@ -0,0 +1,17 @@
// Original file: deps/envoy-api/envoy/config/core/v3/protocol.proto
import type { Http2ProtocolOptions as _envoy_config_core_v3_Http2ProtocolOptions, Http2ProtocolOptions__Output as _envoy_config_core_v3_Http2ProtocolOptions__Output } from '../../../../envoy/config/core/v3/Http2ProtocolOptions';
/**
* [#not-implemented-hide:]
*/
export interface GrpcProtocolOptions {
'http2_protocol_options'?: (_envoy_config_core_v3_Http2ProtocolOptions);
}
/**
* [#not-implemented-hide:]
*/
export interface GrpcProtocolOptions__Output {
'http2_protocol_options'?: (_envoy_config_core_v3_Http2ProtocolOptions__Output);
}

View File

@ -1,9 +1,10 @@
// Original file: deps/envoy-api/envoy/api/v2/core/grpc_service.proto
// Original file: deps/envoy-api/envoy/config/core/v3/grpc_service.proto
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
import type { HeaderValue as _envoy_api_v2_core_HeaderValue, HeaderValue__Output as _envoy_api_v2_core_HeaderValue__Output } from '../../../../envoy/api/v2/core/HeaderValue';
import type { HeaderValue as _envoy_config_core_v3_HeaderValue, HeaderValue__Output as _envoy_config_core_v3_HeaderValue__Output } from '../../../../envoy/config/core/v3/HeaderValue';
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
import type { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
import type { DataSource as _envoy_config_core_v3_DataSource, DataSource__Output as _envoy_config_core_v3_DataSource__Output } from '../../../../envoy/config/core/v3/DataSource';
import type { Empty as _google_protobuf_Empty, Empty__Output as _google_protobuf_Empty__Output } from '../../../../google/protobuf/Empty';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
import type { Long } from '@grpc/proto-loader';
@ -11,7 +12,7 @@ import type { Long } from '@grpc/proto-loader';
/**
* [#next-free-field: 8]
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials {
/**
* Access token credentials.
* https://grpc.io/grpc/cpp/namespacegrpc.html#ad3a80da696ffdaea943f0f858d7a360d.
@ -31,31 +32,31 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials {
* Service Account JWT Access credentials.
* https://grpc.io/grpc/cpp/namespacegrpc.html#a92a9f959d6102461f66ee973d8e9d3aa.
*/
'service_account_jwt_access'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials);
'service_account_jwt_access'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials);
/**
* Google IAM credentials.
* https://grpc.io/grpc/cpp/namespacegrpc.html#a9fc1fc101b41e680d47028166e76f9d0.
*/
'google_iam'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials);
'google_iam'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials);
/**
* Custom authenticator credentials.
* https://grpc.io/grpc/cpp/namespacegrpc.html#a823c6a4b19ffc71fb33e90154ee2ad07.
* https://grpc.io/docs/guides/auth.html#extending-grpc-to-support-other-authentication-mechanisms.
*/
'from_plugin'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin);
'from_plugin'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin);
/**
* Custom security token service which implements OAuth 2.0 token exchange.
* https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16
* See https://github.com/grpc/grpc/pull/19587.
*/
'sts_service'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsService);
'sts_service'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService);
'credential_specifier'?: "access_token"|"google_compute_engine"|"google_refresh_token"|"service_account_jwt_access"|"google_iam"|"from_plugin"|"sts_service";
}
/**
* [#next-free-field: 8]
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials__Output {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials__Output {
/**
* Access token credentials.
* https://grpc.io/grpc/cpp/namespacegrpc.html#ad3a80da696ffdaea943f0f858d7a360d.
@ -75,38 +76,58 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials__Outp
* Service Account JWT Access credentials.
* https://grpc.io/grpc/cpp/namespacegrpc.html#a92a9f959d6102461f66ee973d8e9d3aa.
*/
'service_account_jwt_access'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials__Output);
'service_account_jwt_access'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials__Output);
/**
* Google IAM credentials.
* https://grpc.io/grpc/cpp/namespacegrpc.html#a9fc1fc101b41e680d47028166e76f9d0.
*/
'google_iam'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials__Output);
'google_iam'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials__Output);
/**
* Custom authenticator credentials.
* https://grpc.io/grpc/cpp/namespacegrpc.html#a823c6a4b19ffc71fb33e90154ee2ad07.
* https://grpc.io/docs/guides/auth.html#extending-grpc-to-support-other-authentication-mechanisms.
*/
'from_plugin'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin__Output);
'from_plugin'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin__Output);
/**
* Custom security token service which implements OAuth 2.0 token exchange.
* https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16
* See https://github.com/grpc/grpc/pull/19587.
*/
'sts_service'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsService__Output);
'sts_service'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService__Output);
'credential_specifier': "access_token"|"google_compute_engine"|"google_refresh_token"|"service_account_jwt_access"|"google_iam"|"from_plugin"|"sts_service";
}
/**
* Channel arguments.
*/
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs {
/**
* See grpc_types.h GRPC_ARG #defines for keys that work here.
*/
'args'?: ({[key: string]: _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value});
}
/**
* Channel arguments.
*/
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs__Output {
/**
* See grpc_types.h GRPC_ARG #defines for keys that work here.
*/
'args'?: ({[key: string]: _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value__Output});
}
/**
* See https://grpc.io/docs/guides/auth.html#credential-types to understand Channel and Call
* credential types.
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_ChannelCredentials {
'ssl_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_SslCredentials);
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials {
'ssl_credentials'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials);
/**
* https://grpc.io/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61
*/
'google_default'?: (_google_protobuf_Empty);
'local_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_GoogleLocalCredentials);
'local_credentials'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials);
'credential_specifier'?: "ssl_credentials"|"google_default"|"local_credentials";
}
@ -114,50 +135,60 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_ChannelCredentials {
* See https://grpc.io/docs/guides/auth.html#credential-types to understand Channel and Call
* credential types.
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_ChannelCredentials__Output {
'ssl_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_SslCredentials__Output);
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials__Output {
'ssl_credentials'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials__Output);
/**
* https://grpc.io/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61
*/
'google_default'?: (_google_protobuf_Empty__Output);
'local_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_GoogleLocalCredentials__Output);
'local_credentials'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials__Output);
'credential_specifier': "ssl_credentials"|"google_default"|"local_credentials";
}
export interface _envoy_api_v2_core_GrpcService_EnvoyGrpc {
export interface _envoy_config_core_v3_GrpcService_EnvoyGrpc {
/**
* The name of the upstream gRPC cluster. SSL credentials will be supplied
* in the :ref:`Cluster <envoy_api_msg_Cluster>` :ref:`transport_socket
* <envoy_api_field_Cluster.transport_socket>`.
* in the :ref:`Cluster <envoy_api_msg_config.cluster.v3.Cluster>` :ref:`transport_socket
* <envoy_api_field_config.cluster.v3.Cluster.transport_socket>`.
*/
'cluster_name'?: (string);
/**
* The `:authority` header in the grpc request. If this field is not set, the authority header value will be `cluster_name`.
* Note that this authority does not override the SNI. The SNI is provided by the transport socket of the cluster.
*/
'authority'?: (string);
}
export interface _envoy_api_v2_core_GrpcService_EnvoyGrpc__Output {
export interface _envoy_config_core_v3_GrpcService_EnvoyGrpc__Output {
/**
* The name of the upstream gRPC cluster. SSL credentials will be supplied
* in the :ref:`Cluster <envoy_api_msg_Cluster>` :ref:`transport_socket
* <envoy_api_field_Cluster.transport_socket>`.
* in the :ref:`Cluster <envoy_api_msg_config.cluster.v3.Cluster>` :ref:`transport_socket
* <envoy_api_field_config.cluster.v3.Cluster.transport_socket>`.
*/
'cluster_name': (string);
/**
* The `:authority` header in the grpc request. If this field is not set, the authority header value will be `cluster_name`.
* Note that this authority does not override the SNI. The SNI is provided by the transport socket of the cluster.
*/
'authority': (string);
}
/**
* [#next-free-field: 7]
* [#next-free-field: 9]
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc {
/**
* The target URI when using the `Google C++ gRPC client
* <https://github.com/grpc/grpc>`_. SSL credentials will be supplied in
* :ref:`channel_credentials <envoy_api_field_core.GrpcService.GoogleGrpc.channel_credentials>`.
* :ref:`channel_credentials <envoy_api_field_config.core.v3.GrpcService.GoogleGrpc.channel_credentials>`.
*/
'target_uri'?: (string);
'channel_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_ChannelCredentials);
'channel_credentials'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials);
/**
* A set of call credentials that can be composed with `channel credentials
* <https://grpc.io/docs/guides/auth.html#credential-types>`_.
*/
'call_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials)[];
'call_credentials'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials)[];
/**
* The human readable prefix to use when emitting statistics for the gRPC
* service.
@ -181,24 +212,33 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc {
* gRPC library.
*/
'config'?: (_google_protobuf_Struct);
/**
* How many bytes each stream can buffer internally.
* If not set an implementation defined default is applied (1MiB).
*/
'per_stream_buffer_limit_bytes'?: (_google_protobuf_UInt32Value);
/**
* Custom channels args.
*/
'channel_args'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs);
}
/**
* [#next-free-field: 7]
* [#next-free-field: 9]
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc__Output {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc__Output {
/**
* The target URI when using the `Google C++ gRPC client
* <https://github.com/grpc/grpc>`_. SSL credentials will be supplied in
* :ref:`channel_credentials <envoy_api_field_core.GrpcService.GoogleGrpc.channel_credentials>`.
* :ref:`channel_credentials <envoy_api_field_config.core.v3.GrpcService.GoogleGrpc.channel_credentials>`.
*/
'target_uri': (string);
'channel_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_ChannelCredentials__Output);
'channel_credentials'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials__Output);
/**
* A set of call credentials that can be composed with `channel credentials
* <https://grpc.io/docs/guides/auth.html#credential-types>`_.
*/
'call_credentials': (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials__Output)[];
'call_credentials': (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials__Output)[];
/**
* The human readable prefix to use when emitting statistics for the gRPC
* service.
@ -222,14 +262,23 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc__Output {
* gRPC library.
*/
'config'?: (_google_protobuf_Struct__Output);
/**
* How many bytes each stream can buffer internally.
* If not set an implementation defined default is applied (1MiB).
*/
'per_stream_buffer_limit_bytes'?: (_google_protobuf_UInt32Value__Output);
/**
* Custom channels args.
*/
'channel_args'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs__Output);
}
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials {
'authorization_token'?: (string);
'authority_selector'?: (string);
}
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials__Output {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials__Output {
'authorization_token': (string);
'authority_selector': (string);
}
@ -238,36 +287,34 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_Googl
* Local channel credentials. Only UDS is supported for now.
* See https://github.com/grpc/grpc/pull/15909.
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_GoogleLocalCredentials {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials {
}
/**
* Local channel credentials. Only UDS is supported for now.
* See https://github.com/grpc/grpc/pull/15909.
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_GoogleLocalCredentials__Output {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials__Output {
}
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin {
'name'?: (string);
'config'?: (_google_protobuf_Struct);
'typed_config'?: (_google_protobuf_Any);
'config_type'?: "config"|"typed_config";
'config_type'?: "typed_config";
}
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin__Output {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin__Output {
'name': (string);
'config'?: (_google_protobuf_Struct__Output);
'typed_config'?: (_google_protobuf_Any__Output);
'config_type': "config"|"typed_config";
'config_type': "typed_config";
}
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials {
'json_key'?: (string);
'token_lifetime_seconds'?: (number | string | Long);
}
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials__Output {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials__Output {
'json_key': (string);
'token_lifetime_seconds': (string);
}
@ -275,37 +322,37 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_Servi
/**
* See https://grpc.io/grpc/cpp/structgrpc_1_1_ssl_credentials_options.html.
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_SslCredentials {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials {
/**
* PEM encoded server root certificates.
*/
'root_certs'?: (_envoy_api_v2_core_DataSource);
'root_certs'?: (_envoy_config_core_v3_DataSource);
/**
* PEM encoded client private key.
*/
'private_key'?: (_envoy_api_v2_core_DataSource);
'private_key'?: (_envoy_config_core_v3_DataSource);
/**
* PEM encoded client certificate chain.
*/
'cert_chain'?: (_envoy_api_v2_core_DataSource);
'cert_chain'?: (_envoy_config_core_v3_DataSource);
}
/**
* See https://grpc.io/grpc/cpp/structgrpc_1_1_ssl_credentials_options.html.
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_SslCredentials__Output {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_SslCredentials__Output {
/**
* PEM encoded server root certificates.
*/
'root_certs'?: (_envoy_api_v2_core_DataSource__Output);
'root_certs'?: (_envoy_config_core_v3_DataSource__Output);
/**
* PEM encoded client private key.
*/
'private_key'?: (_envoy_api_v2_core_DataSource__Output);
'private_key'?: (_envoy_config_core_v3_DataSource__Output);
/**
* PEM encoded client certificate chain.
*/
'cert_chain'?: (_envoy_api_v2_core_DataSource__Output);
'cert_chain'?: (_envoy_config_core_v3_DataSource__Output);
}
/**
@ -315,7 +362,7 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_SslCredentials__Outpu
* https://github.com/grpc/grpc/pull/19587.
* [#next-free-field: 10]
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsService {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService {
/**
* URI of the token exchange service that handles token exchange requests.
* [#comment:TODO(asraa): Add URI validation when implemented. Tracked by
@ -369,7 +416,7 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsSe
* https://github.com/grpc/grpc/pull/19587.
* [#next-free-field: 10]
*/
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsService__Output {
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService__Output {
/**
* URI of the token exchange service that handles token exchange requests.
* [#comment:TODO(asraa): Add URI validation when implemented. Tracked by
@ -416,9 +463,29 @@ export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsSe
'actor_token_type': (string);
}
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value {
'string_value'?: (string);
'int_value'?: (number | string | Long);
/**
* Pointer values are not supported, since they don't make any sense when
* delivered via the API.
*/
'value_specifier'?: "string_value"|"int_value";
}
export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value__Output {
'string_value'?: (string);
'int_value'?: (string);
/**
* Pointer values are not supported, since they don't make any sense when
* delivered via the API.
*/
'value_specifier': "string_value"|"int_value";
}
/**
* gRPC service configuration. This is used by :ref:`ApiConfigSource
* <envoy_api_msg_core.ApiConfigSource>` and filter configurations.
* <envoy_api_msg_config.core.v3.ApiConfigSource>` and filter configurations.
* [#next-free-field: 6]
*/
export interface GrpcService {
@ -427,30 +494,32 @@ export interface GrpcService {
* See the :ref:`gRPC services overview <arch_overview_grpc_services>`
* documentation for discussion on gRPC client selection.
*/
'envoy_grpc'?: (_envoy_api_v2_core_GrpcService_EnvoyGrpc);
'envoy_grpc'?: (_envoy_config_core_v3_GrpcService_EnvoyGrpc);
/**
* `Google C++ gRPC client <https://github.com/grpc/grpc>`_
* See the :ref:`gRPC services overview <arch_overview_grpc_services>`
* documentation for discussion on gRPC client selection.
*/
'google_grpc'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc);
'google_grpc'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc);
/**
* The timeout for the gRPC request. This is the timeout for a specific
* request.
*/
'timeout'?: (_google_protobuf_Duration);
/**
* Additional metadata to include in streams initiated to the GrpcService.
* This can be used for scenarios in which additional ad hoc authorization
* headers (e.g. ``x-foo-bar: baz-key``) are to be injected.
* Additional metadata to include in streams initiated to the GrpcService. This can be used for
* scenarios in which additional ad hoc authorization headers (e.g. ``x-foo-bar: baz-key``) are to
* be injected. For more information, including details on header value syntax, see the
* documentation on :ref:`custom request headers
* <config_http_conn_man_headers_custom_request_headers>`.
*/
'initial_metadata'?: (_envoy_api_v2_core_HeaderValue)[];
'initial_metadata'?: (_envoy_config_core_v3_HeaderValue)[];
'target_specifier'?: "envoy_grpc"|"google_grpc";
}
/**
* gRPC service configuration. This is used by :ref:`ApiConfigSource
* <envoy_api_msg_core.ApiConfigSource>` and filter configurations.
* <envoy_api_msg_config.core.v3.ApiConfigSource>` and filter configurations.
* [#next-free-field: 6]
*/
export interface GrpcService__Output {
@ -459,23 +528,25 @@ export interface GrpcService__Output {
* See the :ref:`gRPC services overview <arch_overview_grpc_services>`
* documentation for discussion on gRPC client selection.
*/
'envoy_grpc'?: (_envoy_api_v2_core_GrpcService_EnvoyGrpc__Output);
'envoy_grpc'?: (_envoy_config_core_v3_GrpcService_EnvoyGrpc__Output);
/**
* `Google C++ gRPC client <https://github.com/grpc/grpc>`_
* See the :ref:`gRPC services overview <arch_overview_grpc_services>`
* documentation for discussion on gRPC client selection.
*/
'google_grpc'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc__Output);
'google_grpc'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc__Output);
/**
* The timeout for the gRPC request. This is the timeout for a specific
* request.
*/
'timeout'?: (_google_protobuf_Duration__Output);
/**
* Additional metadata to include in streams initiated to the GrpcService.
* This can be used for scenarios in which additional ad hoc authorization
* headers (e.g. ``x-foo-bar: baz-key``) are to be injected.
* Additional metadata to include in streams initiated to the GrpcService. This can be used for
* scenarios in which additional ad hoc authorization headers (e.g. ``x-foo-bar: baz-key``) are to
* be injected. For more information, including details on header value syntax, see the
* documentation on :ref:`custom request headers
* <config_http_conn_man_headers_custom_request_headers>`.
*/
'initial_metadata': (_envoy_api_v2_core_HeaderValue__Output)[];
'initial_metadata': (_envoy_config_core_v3_HeaderValue__Output)[];
'target_specifier': "envoy_grpc"|"google_grpc";
}

View File

@ -0,0 +1,17 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { HeaderValue as _envoy_config_core_v3_HeaderValue, HeaderValue__Output as _envoy_config_core_v3_HeaderValue__Output } from '../../../../envoy/config/core/v3/HeaderValue';
/**
* Wrapper for a set of headers.
*/
export interface HeaderMap {
'headers'?: (_envoy_config_core_v3_HeaderValue)[];
}
/**
* Wrapper for a set of headers.
*/
export interface HeaderMap__Output {
'headers': (_envoy_config_core_v3_HeaderValue__Output)[];
}

View File

@ -0,0 +1,38 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
/**
* Header name/value pair.
*/
export interface HeaderValue {
/**
* Header name.
*/
'key'?: (string);
/**
* Header value.
*
* The same :ref:`format specifier <config_access_log_format>` as used for
* :ref:`HTTP access logging <config_access_log>` applies here, however
* unknown header values are replaced with the empty string instead of `-`.
*/
'value'?: (string);
}
/**
* Header name/value pair.
*/
export interface HeaderValue__Output {
/**
* Header name.
*/
'key': (string);
/**
* Header value.
*
* The same :ref:`format specifier <config_access_log_format>` as used for
* :ref:`HTTP access logging <config_access_log>` applies here, however
* unknown header values are replaced with the empty string instead of `-`.
*/
'value': (string);
}

View File

@ -0,0 +1,34 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { HeaderValue as _envoy_config_core_v3_HeaderValue, HeaderValue__Output as _envoy_config_core_v3_HeaderValue__Output } from '../../../../envoy/config/core/v3/HeaderValue';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
/**
* Header name/value pair plus option to control append behavior.
*/
export interface HeaderValueOption {
/**
* Header name/value pair that this option applies to.
*/
'header'?: (_envoy_config_core_v3_HeaderValue);
/**
* Should the value be appended? If true (default), the value is appended to
* existing values. Otherwise it replaces any existing values.
*/
'append'?: (_google_protobuf_BoolValue);
}
/**
* Header name/value pair plus option to control append behavior.
*/
export interface HeaderValueOption__Output {
/**
* Header name/value pair that this option applies to.
*/
'header'?: (_envoy_config_core_v3_HeaderValue__Output);
/**
* Should the value be appended? If true (default), the value is appended to
* existing values. Otherwise it replaces any existing values.
*/
'append'?: (_google_protobuf_BoolValue__Output);
}

View File

@ -1,49 +1,47 @@
// Original file: deps/envoy-api/envoy/api/v2/core/health_check.proto
// Original file: deps/envoy-api/envoy/config/core/v3/health_check.proto
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { EventServiceConfig as _envoy_api_v2_core_EventServiceConfig, EventServiceConfig__Output as _envoy_api_v2_core_EventServiceConfig__Output } from '../../../../envoy/api/v2/core/EventServiceConfig';
import type { HeaderValueOption as _envoy_api_v2_core_HeaderValueOption, HeaderValueOption__Output as _envoy_api_v2_core_HeaderValueOption__Output } from '../../../../envoy/api/v2/core/HeaderValueOption';
import type { Int64Range as _envoy_type_Int64Range, Int64Range__Output as _envoy_type_Int64Range__Output } from '../../../../envoy/type/Int64Range';
import type { CodecClientType as _envoy_type_CodecClientType } from '../../../../envoy/type/CodecClientType';
import type { StringMatcher as _envoy_type_matcher_StringMatcher, StringMatcher__Output as _envoy_type_matcher_StringMatcher__Output } from '../../../../envoy/type/matcher/StringMatcher';
import type { EventServiceConfig as _envoy_config_core_v3_EventServiceConfig, EventServiceConfig__Output as _envoy_config_core_v3_EventServiceConfig__Output } from '../../../../envoy/config/core/v3/EventServiceConfig';
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
import type { HeaderValueOption as _envoy_config_core_v3_HeaderValueOption, HeaderValueOption__Output as _envoy_config_core_v3_HeaderValueOption__Output } from '../../../../envoy/config/core/v3/HeaderValueOption';
import type { Int64Range as _envoy_type_v3_Int64Range, Int64Range__Output as _envoy_type_v3_Int64Range__Output } from '../../../../envoy/type/v3/Int64Range';
import type { CodecClientType as _envoy_type_v3_CodecClientType } from '../../../../envoy/type/v3/CodecClientType';
import type { StringMatcher as _envoy_type_matcher_v3_StringMatcher, StringMatcher__Output as _envoy_type_matcher_v3_StringMatcher__Output } from '../../../../envoy/type/matcher/v3/StringMatcher';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
import type { Long } from '@grpc/proto-loader';
/**
* Custom health check.
*/
export interface _envoy_api_v2_core_HealthCheck_CustomHealthCheck {
export interface _envoy_config_core_v3_HealthCheck_CustomHealthCheck {
/**
* The registered name of the custom health checker.
*/
'name'?: (string);
'config'?: (_google_protobuf_Struct);
'typed_config'?: (_google_protobuf_Any);
/**
* A custom health checker specific configuration which depends on the custom health checker
* being instantiated. See :api:`envoy/config/health_checker` for reference.
*/
'config_type'?: "config"|"typed_config";
'config_type'?: "typed_config";
}
/**
* Custom health check.
*/
export interface _envoy_api_v2_core_HealthCheck_CustomHealthCheck__Output {
export interface _envoy_config_core_v3_HealthCheck_CustomHealthCheck__Output {
/**
* The registered name of the custom health checker.
*/
'name': (string);
'config'?: (_google_protobuf_Struct__Output);
'typed_config'?: (_google_protobuf_Any__Output);
/**
* A custom health checker specific configuration which depends on the custom health checker
* being instantiated. See :api:`envoy/config/health_checker` for reference.
*/
'config_type': "config"|"typed_config";
'config_type': "typed_config";
}
/**
@ -52,7 +50,7 @@ export interface _envoy_api_v2_core_HealthCheck_CustomHealthCheck__Output {
* healthcheck. See `gRPC doc <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_
* for details.
*/
export interface _envoy_api_v2_core_HealthCheck_GrpcHealthCheck {
export interface _envoy_config_core_v3_HealthCheck_GrpcHealthCheck {
/**
* An optional service name parameter which will be sent to gRPC service in
* `grpc.health.v1.HealthCheckRequest
@ -65,7 +63,7 @@ export interface _envoy_api_v2_core_HealthCheck_GrpcHealthCheck {
* The value of the :authority header in the gRPC health check request. If
* left empty (default value), the name of the cluster this health check is associated
* with will be used. The authority header can be customized for a specific endpoint by setting
* the :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
* the :ref:`hostname <envoy_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
*/
'authority'?: (string);
}
@ -76,7 +74,7 @@ export interface _envoy_api_v2_core_HealthCheck_GrpcHealthCheck {
* healthcheck. See `gRPC doc <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_
* for details.
*/
export interface _envoy_api_v2_core_HealthCheck_GrpcHealthCheck__Output {
export interface _envoy_config_core_v3_HealthCheck_GrpcHealthCheck__Output {
/**
* An optional service name parameter which will be sent to gRPC service in
* `grpc.health.v1.HealthCheckRequest
@ -89,7 +87,7 @@ export interface _envoy_api_v2_core_HealthCheck_GrpcHealthCheck__Output {
* The value of the :authority header in the gRPC health check request. If
* left empty (default value), the name of the cluster this health check is associated
* with will be used. The authority header can be customized for a specific endpoint by setting
* the :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
* the :ref:`hostname <envoy_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
*/
'authority': (string);
}
@ -97,12 +95,12 @@ export interface _envoy_api_v2_core_HealthCheck_GrpcHealthCheck__Output {
/**
* [#next-free-field: 12]
*/
export interface _envoy_api_v2_core_HealthCheck_HttpHealthCheck {
export interface _envoy_config_core_v3_HealthCheck_HttpHealthCheck {
/**
* The value of the host header in the HTTP health check request. If
* left empty (default value), the name of the cluster this health check is associated
* with will be used. The host header can be customized for a specific endpoint by setting the
* :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
* :ref:`hostname <envoy_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
*/
'host'?: (string);
/**
@ -113,69 +111,52 @@ export interface _envoy_api_v2_core_HealthCheck_HttpHealthCheck {
/**
* [#not-implemented-hide:] HTTP specific payload.
*/
'send'?: (_envoy_api_v2_core_HealthCheck_Payload);
'send'?: (_envoy_config_core_v3_HealthCheck_Payload);
/**
* [#not-implemented-hide:] HTTP specific response.
*/
'receive'?: (_envoy_api_v2_core_HealthCheck_Payload);
/**
* An optional service name parameter which is used to validate the identity of
* the health checked cluster. See the :ref:`architecture overview
* <arch_overview_health_checking_identity>` for more information.
*
* .. attention::
*
* This field has been deprecated in favor of `service_name_matcher` for better flexibility
* over matching with service-cluster name.
*/
'service_name'?: (string);
'receive'?: (_envoy_config_core_v3_HealthCheck_Payload);
/**
* Specifies a list of HTTP headers that should be added to each request that is sent to the
* health checked cluster. For more information, including details on header value syntax, see
* the documentation on :ref:`custom request headers
* <config_http_conn_man_headers_custom_request_headers>`.
*/
'request_headers_to_add'?: (_envoy_api_v2_core_HeaderValueOption)[];
'request_headers_to_add'?: (_envoy_config_core_v3_HeaderValueOption)[];
/**
* Specifies a list of HTTP headers that should be removed from each request that is sent to the
* health checked cluster.
*/
'request_headers_to_remove'?: (string)[];
/**
* If set, health checks will be made using http/2.
* Deprecated, use :ref:`codec_client_type
* <envoy_api_field_core.HealthCheck.HttpHealthCheck.codec_client_type>` instead.
*/
'use_http2'?: (boolean);
/**
* Specifies a list of HTTP response statuses considered healthy. If provided, replaces default
* 200-only policy - 200 must be included explicitly as needed. Ranges follow half-open
* semantics of :ref:`Int64Range <envoy_api_msg_type.Int64Range>`. The start and end of each
* semantics of :ref:`Int64Range <envoy_api_msg_type.v3.Int64Range>`. The start and end of each
* range are required. Only statuses in the range [100, 600) are allowed.
*/
'expected_statuses'?: (_envoy_type_Int64Range)[];
'expected_statuses'?: (_envoy_type_v3_Int64Range)[];
/**
* Use specified application protocol for health checks.
*/
'codec_client_type'?: (_envoy_type_CodecClientType | keyof typeof _envoy_type_CodecClientType);
'codec_client_type'?: (_envoy_type_v3_CodecClientType | keyof typeof _envoy_type_v3_CodecClientType);
/**
* An optional service name parameter which is used to validate the identity of
* the health checked cluster using a :ref:`StringMatcher
* <envoy_api_msg_type.matcher.StringMatcher>`. See the :ref:`architecture overview
* <envoy_api_msg_type.matcher.v3.StringMatcher>`. See the :ref:`architecture overview
* <arch_overview_health_checking_identity>` for more information.
*/
'service_name_matcher'?: (_envoy_type_matcher_StringMatcher);
'service_name_matcher'?: (_envoy_type_matcher_v3_StringMatcher);
}
/**
* [#next-free-field: 12]
*/
export interface _envoy_api_v2_core_HealthCheck_HttpHealthCheck__Output {
export interface _envoy_config_core_v3_HealthCheck_HttpHealthCheck__Output {
/**
* The value of the host header in the HTTP health check request. If
* left empty (default value), the name of the cluster this health check is associated
* with will be used. The host header can be customized for a specific endpoint by setting the
* :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
* :ref:`hostname <envoy_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field.
*/
'host': (string);
/**
@ -186,64 +167,47 @@ export interface _envoy_api_v2_core_HealthCheck_HttpHealthCheck__Output {
/**
* [#not-implemented-hide:] HTTP specific payload.
*/
'send'?: (_envoy_api_v2_core_HealthCheck_Payload__Output);
'send'?: (_envoy_config_core_v3_HealthCheck_Payload__Output);
/**
* [#not-implemented-hide:] HTTP specific response.
*/
'receive'?: (_envoy_api_v2_core_HealthCheck_Payload__Output);
/**
* An optional service name parameter which is used to validate the identity of
* the health checked cluster. See the :ref:`architecture overview
* <arch_overview_health_checking_identity>` for more information.
*
* .. attention::
*
* This field has been deprecated in favor of `service_name_matcher` for better flexibility
* over matching with service-cluster name.
*/
'service_name': (string);
'receive'?: (_envoy_config_core_v3_HealthCheck_Payload__Output);
/**
* Specifies a list of HTTP headers that should be added to each request that is sent to the
* health checked cluster. For more information, including details on header value syntax, see
* the documentation on :ref:`custom request headers
* <config_http_conn_man_headers_custom_request_headers>`.
*/
'request_headers_to_add': (_envoy_api_v2_core_HeaderValueOption__Output)[];
'request_headers_to_add': (_envoy_config_core_v3_HeaderValueOption__Output)[];
/**
* Specifies a list of HTTP headers that should be removed from each request that is sent to the
* health checked cluster.
*/
'request_headers_to_remove': (string)[];
/**
* If set, health checks will be made using http/2.
* Deprecated, use :ref:`codec_client_type
* <envoy_api_field_core.HealthCheck.HttpHealthCheck.codec_client_type>` instead.
*/
'use_http2': (boolean);
/**
* Specifies a list of HTTP response statuses considered healthy. If provided, replaces default
* 200-only policy - 200 must be included explicitly as needed. Ranges follow half-open
* semantics of :ref:`Int64Range <envoy_api_msg_type.Int64Range>`. The start and end of each
* semantics of :ref:`Int64Range <envoy_api_msg_type.v3.Int64Range>`. The start and end of each
* range are required. Only statuses in the range [100, 600) are allowed.
*/
'expected_statuses': (_envoy_type_Int64Range__Output)[];
'expected_statuses': (_envoy_type_v3_Int64Range__Output)[];
/**
* Use specified application protocol for health checks.
*/
'codec_client_type': (keyof typeof _envoy_type_CodecClientType);
'codec_client_type': (keyof typeof _envoy_type_v3_CodecClientType);
/**
* An optional service name parameter which is used to validate the identity of
* the health checked cluster using a :ref:`StringMatcher
* <envoy_api_msg_type.matcher.StringMatcher>`. See the :ref:`architecture overview
* <envoy_api_msg_type.matcher.v3.StringMatcher>`. See the :ref:`architecture overview
* <arch_overview_health_checking_identity>` for more information.
*/
'service_name_matcher'?: (_envoy_type_matcher_StringMatcher__Output);
'service_name_matcher'?: (_envoy_type_matcher_v3_StringMatcher__Output);
}
/**
* Describes the encoding of the payload bytes in the payload.
*/
export interface _envoy_api_v2_core_HealthCheck_Payload {
export interface _envoy_config_core_v3_HealthCheck_Payload {
/**
* Hex encoded payload. E.g., "000000FF".
*/
@ -258,7 +222,7 @@ export interface _envoy_api_v2_core_HealthCheck_Payload {
/**
* Describes the encoding of the payload bytes in the payload.
*/
export interface _envoy_api_v2_core_HealthCheck_Payload__Output {
export interface _envoy_config_core_v3_HealthCheck_Payload__Output {
/**
* Hex encoded payload. E.g., "000000FF".
*/
@ -270,7 +234,7 @@ export interface _envoy_api_v2_core_HealthCheck_Payload__Output {
'payload': "text"|"binary";
}
export interface _envoy_api_v2_core_HealthCheck_RedisHealthCheck {
export interface _envoy_config_core_v3_HealthCheck_RedisHealthCheck {
/**
* If set, optionally perform ``EXISTS <key>`` instead of ``PING``. A return value
* from Redis of 0 (does not exist) is considered a passing healthcheck. A return value other
@ -280,7 +244,7 @@ export interface _envoy_api_v2_core_HealthCheck_RedisHealthCheck {
'key'?: (string);
}
export interface _envoy_api_v2_core_HealthCheck_RedisHealthCheck__Output {
export interface _envoy_config_core_v3_HealthCheck_RedisHealthCheck__Output {
/**
* If set, optionally perform ``EXISTS <key>`` instead of ``PING``. A return value
* from Redis of 0 (does not exist) is considered a passing healthcheck. A return value other
@ -290,30 +254,30 @@ export interface _envoy_api_v2_core_HealthCheck_RedisHealthCheck__Output {
'key': (string);
}
export interface _envoy_api_v2_core_HealthCheck_TcpHealthCheck {
export interface _envoy_config_core_v3_HealthCheck_TcpHealthCheck {
/**
* Empty payloads imply a connect-only health check.
*/
'send'?: (_envoy_api_v2_core_HealthCheck_Payload);
'send'?: (_envoy_config_core_v3_HealthCheck_Payload);
/**
* When checking the response, fuzzy matching is performed such that each
* binary block must be found, and in the order specified, but not
* necessarily contiguous.
*/
'receive'?: (_envoy_api_v2_core_HealthCheck_Payload)[];
'receive'?: (_envoy_config_core_v3_HealthCheck_Payload)[];
}
export interface _envoy_api_v2_core_HealthCheck_TcpHealthCheck__Output {
export interface _envoy_config_core_v3_HealthCheck_TcpHealthCheck__Output {
/**
* Empty payloads imply a connect-only health check.
*/
'send'?: (_envoy_api_v2_core_HealthCheck_Payload__Output);
'send'?: (_envoy_config_core_v3_HealthCheck_Payload__Output);
/**
* When checking the response, fuzzy matching is performed such that each
* binary block must be found, and in the order specified, but not
* necessarily contiguous.
*/
'receive': (_envoy_api_v2_core_HealthCheck_Payload__Output)[];
'receive': (_envoy_config_core_v3_HealthCheck_Payload__Output)[];
}
/**
@ -322,11 +286,11 @@ export interface _envoy_api_v2_core_HealthCheck_TcpHealthCheck__Output {
*
* This allows overriding the cluster TLS settings, just for health check connections.
*/
export interface _envoy_api_v2_core_HealthCheck_TlsOptions {
export interface _envoy_config_core_v3_HealthCheck_TlsOptions {
/**
* Specifies the ALPN protocols for health check connections. This is useful if the
* corresponding upstream is using ALPN-based :ref:`FilterChainMatch
* <envoy_api_msg_listener.FilterChainMatch>` along with different protocols for health checks
* <envoy_api_msg_config.listener.v3.FilterChainMatch>` along with different protocols for health checks
* versus data connections. If empty, no ALPN protocols will be set on health check connections.
*/
'alpn_protocols'?: (string)[];
@ -338,18 +302,18 @@ export interface _envoy_api_v2_core_HealthCheck_TlsOptions {
*
* This allows overriding the cluster TLS settings, just for health check connections.
*/
export interface _envoy_api_v2_core_HealthCheck_TlsOptions__Output {
export interface _envoy_config_core_v3_HealthCheck_TlsOptions__Output {
/**
* Specifies the ALPN protocols for health check connections. This is useful if the
* corresponding upstream is using ALPN-based :ref:`FilterChainMatch
* <envoy_api_msg_listener.FilterChainMatch>` along with different protocols for health checks
* <envoy_api_msg_config.listener.v3.FilterChainMatch>` along with different protocols for health checks
* versus data connections. If empty, no ALPN protocols will be set on health check connections.
*/
'alpn_protocols': (string)[];
}
/**
* [#next-free-field: 23]
* [#next-free-field: 25]
*/
export interface HealthCheck {
/**
@ -389,15 +353,15 @@ export interface HealthCheck {
/**
* HTTP health check.
*/
'http_health_check'?: (_envoy_api_v2_core_HealthCheck_HttpHealthCheck);
'http_health_check'?: (_envoy_config_core_v3_HealthCheck_HttpHealthCheck);
/**
* TCP health check.
*/
'tcp_health_check'?: (_envoy_api_v2_core_HealthCheck_TcpHealthCheck);
'tcp_health_check'?: (_envoy_config_core_v3_HealthCheck_TcpHealthCheck);
/**
* gRPC health check.
*/
'grpc_health_check'?: (_envoy_api_v2_core_HealthCheck_GrpcHealthCheck);
'grpc_health_check'?: (_envoy_config_core_v3_HealthCheck_GrpcHealthCheck);
/**
* The "no traffic interval" is a special health check interval that is used when a cluster has
* never had traffic routed to it. This lower interval allows cluster information to be kept up to
@ -412,7 +376,7 @@ export interface HealthCheck {
/**
* Custom health check.
*/
'custom_health_check'?: (_envoy_api_v2_core_HealthCheck_CustomHealthCheck);
'custom_health_check'?: (_envoy_config_core_v3_HealthCheck_CustomHealthCheck);
/**
* The "unhealthy interval" is a health check interval that is used for hosts that are marked as
* unhealthy. As soon as the host is marked as healthy, Envoy will shift back to using the
@ -467,18 +431,67 @@ export interface HealthCheck {
/**
* This allows overriding the cluster TLS settings, just for health check connections.
*/
'tls_options'?: (_envoy_api_v2_core_HealthCheck_TlsOptions);
'tls_options'?: (_envoy_config_core_v3_HealthCheck_TlsOptions);
/**
* [#not-implemented-hide:]
* The gRPC service for the health check event service.
* If empty, health check events won't be sent to a remote endpoint.
*/
'event_service'?: (_envoy_api_v2_core_EventServiceConfig);
'event_service'?: (_envoy_config_core_v3_EventServiceConfig);
/**
* Optional key/value pairs that will be used to match a transport socket from those specified in the cluster's
* :ref:`tranport socket matches <envoy_api_field_config.cluster.v3.Cluster.transport_socket_matches>`.
* For example, the following match criteria
*
* .. code-block:: yaml
*
* transport_socket_match_criteria:
* useMTLS: true
*
* Will match the following :ref:`cluster socket match <envoy_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>`
*
* .. code-block:: yaml
*
* transport_socket_matches:
* - name: "useMTLS"
* match:
* useMTLS: true
* transport_socket:
* name: envoy.transport_sockets.tls
* config: { ... } # tls socket configuration
*
* If this field is set, then for health checks it will supersede an entry of *envoy.transport_socket* in the
* :ref:`LbEndpoint.Metadata <envoy_api_field_config.endpoint.v3.LbEndpoint.metadata>`.
* This allows using different transport socket capabilities for health checking versus proxying to the
* endpoint.
*
* If the key/values pairs specified do not match any
* :ref:`transport socket matches <envoy_api_field_config.cluster.v3.Cluster.transport_socket_matches>`,
* the cluster's :ref:`transport socket <envoy_api_field_config.cluster.v3.Cluster.transport_socket>`
* will be used for health check socket configuration.
*/
'transport_socket_match_criteria'?: (_google_protobuf_Struct);
/**
* The "no traffic healthy interval" is a special health check interval that
* is used for hosts that are currently passing active health checking
* (including new hosts) when the cluster has received no traffic.
*
* This is useful for when we want to send frequent health checks with
* `no_traffic_interval` but then revert to lower frequency `no_traffic_healthy_interval` once
* a host in the cluster is marked as healthy.
*
* Once a cluster has been used for traffic routing, Envoy will shift back to using the
* standard health check interval that is defined.
*
* If no_traffic_healthy_interval is not set, it will default to the
* no traffic interval and send that interval regardless of health state.
*/
'no_traffic_healthy_interval'?: (_google_protobuf_Duration);
'health_checker'?: "http_health_check"|"tcp_health_check"|"grpc_health_check"|"custom_health_check";
}
/**
* [#next-free-field: 23]
* [#next-free-field: 25]
*/
export interface HealthCheck__Output {
/**
@ -518,15 +531,15 @@ export interface HealthCheck__Output {
/**
* HTTP health check.
*/
'http_health_check'?: (_envoy_api_v2_core_HealthCheck_HttpHealthCheck__Output);
'http_health_check'?: (_envoy_config_core_v3_HealthCheck_HttpHealthCheck__Output);
/**
* TCP health check.
*/
'tcp_health_check'?: (_envoy_api_v2_core_HealthCheck_TcpHealthCheck__Output);
'tcp_health_check'?: (_envoy_config_core_v3_HealthCheck_TcpHealthCheck__Output);
/**
* gRPC health check.
*/
'grpc_health_check'?: (_envoy_api_v2_core_HealthCheck_GrpcHealthCheck__Output);
'grpc_health_check'?: (_envoy_config_core_v3_HealthCheck_GrpcHealthCheck__Output);
/**
* The "no traffic interval" is a special health check interval that is used when a cluster has
* never had traffic routed to it. This lower interval allows cluster information to be kept up to
@ -541,7 +554,7 @@ export interface HealthCheck__Output {
/**
* Custom health check.
*/
'custom_health_check'?: (_envoy_api_v2_core_HealthCheck_CustomHealthCheck__Output);
'custom_health_check'?: (_envoy_config_core_v3_HealthCheck_CustomHealthCheck__Output);
/**
* The "unhealthy interval" is a health check interval that is used for hosts that are marked as
* unhealthy. As soon as the host is marked as healthy, Envoy will shift back to using the
@ -596,12 +609,61 @@ export interface HealthCheck__Output {
/**
* This allows overriding the cluster TLS settings, just for health check connections.
*/
'tls_options'?: (_envoy_api_v2_core_HealthCheck_TlsOptions__Output);
'tls_options'?: (_envoy_config_core_v3_HealthCheck_TlsOptions__Output);
/**
* [#not-implemented-hide:]
* The gRPC service for the health check event service.
* If empty, health check events won't be sent to a remote endpoint.
*/
'event_service'?: (_envoy_api_v2_core_EventServiceConfig__Output);
'event_service'?: (_envoy_config_core_v3_EventServiceConfig__Output);
/**
* Optional key/value pairs that will be used to match a transport socket from those specified in the cluster's
* :ref:`tranport socket matches <envoy_api_field_config.cluster.v3.Cluster.transport_socket_matches>`.
* For example, the following match criteria
*
* .. code-block:: yaml
*
* transport_socket_match_criteria:
* useMTLS: true
*
* Will match the following :ref:`cluster socket match <envoy_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>`
*
* .. code-block:: yaml
*
* transport_socket_matches:
* - name: "useMTLS"
* match:
* useMTLS: true
* transport_socket:
* name: envoy.transport_sockets.tls
* config: { ... } # tls socket configuration
*
* If this field is set, then for health checks it will supersede an entry of *envoy.transport_socket* in the
* :ref:`LbEndpoint.Metadata <envoy_api_field_config.endpoint.v3.LbEndpoint.metadata>`.
* This allows using different transport socket capabilities for health checking versus proxying to the
* endpoint.
*
* If the key/values pairs specified do not match any
* :ref:`transport socket matches <envoy_api_field_config.cluster.v3.Cluster.transport_socket_matches>`,
* the cluster's :ref:`transport socket <envoy_api_field_config.cluster.v3.Cluster.transport_socket>`
* will be used for health check socket configuration.
*/
'transport_socket_match_criteria'?: (_google_protobuf_Struct__Output);
/**
* The "no traffic healthy interval" is a special health check interval that
* is used for hosts that are currently passing active health checking
* (including new hosts) when the cluster has received no traffic.
*
* This is useful for when we want to send frequent health checks with
* `no_traffic_interval` but then revert to lower frequency `no_traffic_healthy_interval` once
* a host in the cluster is marked as healthy.
*
* Once a cluster has been used for traffic routing, Envoy will shift back to using the
* standard health check interval that is defined.
*
* If no_traffic_healthy_interval is not set, it will default to the
* no traffic interval and send that interval regardless of health state.
*/
'no_traffic_healthy_interval'?: (_google_protobuf_Duration__Output);
'health_checker': "http_health_check"|"tcp_health_check"|"grpc_health_check"|"custom_health_check";
}

View File

@ -1,4 +1,4 @@
// Original file: deps/envoy-api/envoy/api/v2/core/health_check.proto
// Original file: deps/envoy-api/envoy/config/core/v3/health_check.proto
/**
* Endpoint health status.

View File

@ -1,8 +1,8 @@
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
// Original file: deps/envoy-api/envoy/config/core/v3/protocol.proto
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat {
export interface _envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat {
/**
* Formats the header by proper casing words: the first character and any character following
* a special character will be capitalized if it's an alpha character. For example,
@ -10,11 +10,11 @@ export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat {
* Note that while this results in most headers following conventional casing, certain headers
* are not covered. For example, the "TE" header will be formatted as "Te".
*/
'proper_case_words'?: (_envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords);
'proper_case_words'?: (_envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords);
'header_format'?: "proper_case_words";
}
export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat__Output {
export interface _envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat__Output {
/**
* Formats the header by proper casing words: the first character and any character following
* a special character will be capitalized if it's an alpha character. For example,
@ -22,18 +22,18 @@ export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat__Output
* Note that while this results in most headers following conventional casing, certain headers
* are not covered. For example, the "TE" header will be formatted as "Te".
*/
'proper_case_words'?: (_envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords__Output);
'proper_case_words'?: (_envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords__Output);
'header_format': "proper_case_words";
}
export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords {
export interface _envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords {
}
export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords__Output {
export interface _envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords__Output {
}
/**
* [#next-free-field: 6]
* [#next-free-field: 8]
*/
export interface Http1ProtocolOptions {
/**
@ -60,7 +60,7 @@ export interface Http1ProtocolOptions {
* Describes how the keys for response headers should be formatted. By default, all header keys
* are lower cased.
*/
'header_key_format'?: (_envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat);
'header_key_format'?: (_envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat);
/**
* Enables trailers for HTTP/1. By default the HTTP/1 codec drops proxied trailers.
*
@ -73,10 +73,30 @@ export interface Http1ProtocolOptions {
* - The content length header is not present.
*/
'enable_trailers'?: (boolean);
/**
* Allows Envoy to process requests/responses with both `Content-Length` and `Transfer-Encoding`
* headers set. By default such messages are rejected, but if option is enabled - Envoy will
* remove Content-Length header and process message.
* See `RFC7230, sec. 3.3.3 <https://tools.ietf.org/html/rfc7230#section-3.3.3>` for details.
*
* .. attention::
* Enabling this option might lead to request smuggling vulnerability, especially if traffic
* is proxied via multiple layers of proxies.
*/
'allow_chunked_length'?: (boolean);
/**
* Allows invalid HTTP messaging. When this option is false, then Envoy will terminate
* HTTP/1.1 connections upon receiving an invalid HTTP message. However,
* when this option is true, then Envoy will leave the HTTP/1.1 connection
* open where possible.
* If set, this overrides any HCM :ref:`stream_error_on_invalid_http_messaging
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_error_on_invalid_http_message>`.
*/
'override_stream_error_on_invalid_http_message'?: (_google_protobuf_BoolValue);
}
/**
* [#next-free-field: 6]
* [#next-free-field: 8]
*/
export interface Http1ProtocolOptions__Output {
/**
@ -103,7 +123,7 @@ export interface Http1ProtocolOptions__Output {
* Describes how the keys for response headers should be formatted. By default, all header keys
* are lower cased.
*/
'header_key_format'?: (_envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat__Output);
'header_key_format'?: (_envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat__Output);
/**
* Enables trailers for HTTP/1. By default the HTTP/1 codec drops proxied trailers.
*
@ -116,4 +136,24 @@ export interface Http1ProtocolOptions__Output {
* - The content length header is not present.
*/
'enable_trailers': (boolean);
/**
* Allows Envoy to process requests/responses with both `Content-Length` and `Transfer-Encoding`
* headers set. By default such messages are rejected, but if option is enabled - Envoy will
* remove Content-Length header and process message.
* See `RFC7230, sec. 3.3.3 <https://tools.ietf.org/html/rfc7230#section-3.3.3>` for details.
*
* .. attention::
* Enabling this option might lead to request smuggling vulnerability, especially if traffic
* is proxied via multiple layers of proxies.
*/
'allow_chunked_length': (boolean);
/**
* Allows invalid HTTP messaging. When this option is false, then Envoy will terminate
* HTTP/1.1 connections upon receiving an invalid HTTP message. However,
* when this option is true, then Envoy will leave the HTTP/1.1 connection
* open where possible.
* If set, this overrides any HCM :ref:`stream_error_on_invalid_http_messaging
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_error_on_invalid_http_message>`.
*/
'override_stream_error_on_invalid_http_message'?: (_google_protobuf_BoolValue__Output);
}

View File

@ -1,12 +1,14 @@
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
// Original file: deps/envoy-api/envoy/config/core/v3/protocol.proto
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { KeepaliveSettings as _envoy_config_core_v3_KeepaliveSettings, KeepaliveSettings__Output as _envoy_config_core_v3_KeepaliveSettings__Output } from '../../../../envoy/config/core/v3/KeepaliveSettings';
/**
* Defines a parameter to be sent in the SETTINGS frame.
* See `RFC7540, sec. 6.5.1 <https://tools.ietf.org/html/rfc7540#section-6.5.1>`_ for details.
*/
export interface _envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter {
export interface _envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter {
/**
* The 16 bit parameter identifier.
*/
@ -21,7 +23,7 @@ export interface _envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter {
* Defines a parameter to be sent in the SETTINGS frame.
* See `RFC7540, sec. 6.5.1 <https://tools.ietf.org/html/rfc7540#section-6.5.1>`_ for details.
*/
export interface _envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter__Output {
export interface _envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter__Output {
/**
* The 16 bit parameter identifier.
*/
@ -33,7 +35,7 @@ export interface _envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter__Outp
}
/**
* [#next-free-field: 14]
* [#next-free-field: 16]
*/
export interface Http2ProtocolOptions {
/**
@ -81,7 +83,7 @@ export interface Http2ProtocolOptions {
* Still under implementation. DO NOT USE.
*
* Allows metadata. See [metadata
* docs](https://github.com/envoyproxy/envoy/blob/master/source/docs/h2_metadata.md) for more
* docs](https://github.com/envoyproxy/envoy/blob/main/source/docs/h2_metadata.md) for more
* information.
*/
'allow_metadata'?: (boolean);
@ -90,7 +92,8 @@ export interface Http2ProtocolOptions {
* be written into the socket). Exceeding this limit triggers flood mitigation and connection is
* terminated. The ``http2.outbound_flood`` stat tracks the number of terminated connections due
* to flood mitigation. The default limit is 10000.
* [#comment:TODO: implement same limits for upstream outbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_outbound_frames'?: (_google_protobuf_UInt32Value);
/**
@ -99,7 +102,8 @@ export interface Http2ProtocolOptions {
* this limit triggers flood mitigation and connection is terminated. The
* ``http2.outbound_control_flood`` stat tracks the number of terminated connections due to flood
* mitigation. The default limit is 1000.
* [#comment:TODO: implement same limits for upstream outbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_outbound_control_frames'?: (_google_protobuf_UInt32Value);
/**
@ -109,7 +113,8 @@ export interface Http2ProtocolOptions {
* stat tracks the number of connections terminated due to flood mitigation.
* Setting this to 0 will terminate connection upon receiving first frame with an empty payload
* and no end stream flag. The default limit is 1.
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_consecutive_inbound_frames_with_empty_payload'?: (_google_protobuf_UInt32Value);
/**
@ -117,11 +122,15 @@ export interface Http2ProtocolOptions {
* of PRIORITY frames received over the lifetime of connection exceeds the value calculated
* using this formula::
*
* max_inbound_priority_frames_per_stream * (1 + inbound_streams)
* max_inbound_priority_frames_per_stream * (1 + opened_streams)
*
* the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
* the connection is terminated. For downstream connections the `opened_streams` is incremented when
* Envoy receives complete response headers from the upstream server. For upstream connection the
* `opened_streams` is incremented when Envoy send the HEADERS frame for a new stream. The
* ``http2.inbound_priority_frames_flood`` stat tracks
* the number of connections terminated due to flood mitigation. The default limit is 100.
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_inbound_priority_frames_per_stream'?: (_google_protobuf_UInt32Value);
/**
@ -129,14 +138,18 @@ export interface Http2ProtocolOptions {
* of WINDOW_UPDATE frames received over the lifetime of connection exceeds the value calculated
* using this formula::
*
* 1 + 2 * (inbound_streams +
* 5 + 2 * (opened_streams +
* max_inbound_window_update_frames_per_data_frame_sent * outbound_data_frames)
*
* the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
* the number of connections terminated due to flood mitigation. The default limit is 10.
* the connection is terminated. For downstream connections the `opened_streams` is incremented when
* Envoy receives complete response headers from the upstream server. For upstream connections the
* `opened_streams` is incremented when Envoy sends the HEADERS frame for a new stream. The
* ``http2.inbound_priority_frames_flood`` stat tracks the number of connections terminated due to
* flood mitigation. The default max_inbound_window_update_frames_per_data_frame_sent value is 10.
* Setting this to 1 should be enough to support HTTP/2 implementations with basic flow control,
* but more complex implementations that try to estimate available bandwidth require at least 2.
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_inbound_window_update_frames_per_data_frame_sent'?: (_google_protobuf_UInt32Value);
/**
@ -144,6 +157,13 @@ export interface Http2ProtocolOptions {
* the whole HTTP/2 connection is terminated upon receiving invalid HEADERS frame. However,
* when this option is enabled, only the offending stream is terminated.
*
* This is overridden by HCM :ref:`stream_error_on_invalid_http_messaging
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_error_on_invalid_http_message>`
* iff present.
*
* This is deprecated in favor of :ref:`override_stream_error_on_invalid_http_message
* <envoy_v3_api_field_config.core.v3.Http2ProtocolOptions.override_stream_error_on_invalid_http_message>`
*
* See `RFC7540, sec. 8.1 <https://tools.ietf.org/html/rfc7540#section-8.1>`_ for details.
*/
'stream_error_on_invalid_http_messaging'?: (boolean);
@ -175,11 +195,27 @@ export interface Http2ProtocolOptions {
* <https://www.iana.org/assignments/http2-parameters/http2-parameters.xhtml#settings>`_ for
* standardized identifiers.
*/
'custom_settings_parameters'?: (_envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter)[];
'custom_settings_parameters'?: (_envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter)[];
/**
* Allows invalid HTTP messaging and headers. When this option is disabled (default), then
* the whole HTTP/2 connection is terminated upon receiving invalid HEADERS frame. However,
* when this option is enabled, only the offending stream is terminated.
*
* This overrides any HCM :ref:`stream_error_on_invalid_http_messaging
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_error_on_invalid_http_message>`
*
* See `RFC7540, sec. 8.1 <https://tools.ietf.org/html/rfc7540#section-8.1>`_ for details.
*/
'override_stream_error_on_invalid_http_message'?: (_google_protobuf_BoolValue);
/**
* Send HTTP/2 PING frames to verify that the connection is still healthy. If the remote peer
* does not respond within the configured timeout, the connection will be aborted.
*/
'connection_keepalive'?: (_envoy_config_core_v3_KeepaliveSettings);
}
/**
* [#next-free-field: 14]
* [#next-free-field: 16]
*/
export interface Http2ProtocolOptions__Output {
/**
@ -227,7 +263,7 @@ export interface Http2ProtocolOptions__Output {
* Still under implementation. DO NOT USE.
*
* Allows metadata. See [metadata
* docs](https://github.com/envoyproxy/envoy/blob/master/source/docs/h2_metadata.md) for more
* docs](https://github.com/envoyproxy/envoy/blob/main/source/docs/h2_metadata.md) for more
* information.
*/
'allow_metadata': (boolean);
@ -236,7 +272,8 @@ export interface Http2ProtocolOptions__Output {
* be written into the socket). Exceeding this limit triggers flood mitigation and connection is
* terminated. The ``http2.outbound_flood`` stat tracks the number of terminated connections due
* to flood mitigation. The default limit is 10000.
* [#comment:TODO: implement same limits for upstream outbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_outbound_frames'?: (_google_protobuf_UInt32Value__Output);
/**
@ -245,7 +282,8 @@ export interface Http2ProtocolOptions__Output {
* this limit triggers flood mitigation and connection is terminated. The
* ``http2.outbound_control_flood`` stat tracks the number of terminated connections due to flood
* mitigation. The default limit is 1000.
* [#comment:TODO: implement same limits for upstream outbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_outbound_control_frames'?: (_google_protobuf_UInt32Value__Output);
/**
@ -255,7 +293,8 @@ export interface Http2ProtocolOptions__Output {
* stat tracks the number of connections terminated due to flood mitigation.
* Setting this to 0 will terminate connection upon receiving first frame with an empty payload
* and no end stream flag. The default limit is 1.
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_consecutive_inbound_frames_with_empty_payload'?: (_google_protobuf_UInt32Value__Output);
/**
@ -263,11 +302,15 @@ export interface Http2ProtocolOptions__Output {
* of PRIORITY frames received over the lifetime of connection exceeds the value calculated
* using this formula::
*
* max_inbound_priority_frames_per_stream * (1 + inbound_streams)
* max_inbound_priority_frames_per_stream * (1 + opened_streams)
*
* the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
* the connection is terminated. For downstream connections the `opened_streams` is incremented when
* Envoy receives complete response headers from the upstream server. For upstream connection the
* `opened_streams` is incremented when Envoy send the HEADERS frame for a new stream. The
* ``http2.inbound_priority_frames_flood`` stat tracks
* the number of connections terminated due to flood mitigation. The default limit is 100.
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_inbound_priority_frames_per_stream'?: (_google_protobuf_UInt32Value__Output);
/**
@ -275,14 +318,18 @@ export interface Http2ProtocolOptions__Output {
* of WINDOW_UPDATE frames received over the lifetime of connection exceeds the value calculated
* using this formula::
*
* 1 + 2 * (inbound_streams +
* 5 + 2 * (opened_streams +
* max_inbound_window_update_frames_per_data_frame_sent * outbound_data_frames)
*
* the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
* the number of connections terminated due to flood mitigation. The default limit is 10.
* the connection is terminated. For downstream connections the `opened_streams` is incremented when
* Envoy receives complete response headers from the upstream server. For upstream connections the
* `opened_streams` is incremented when Envoy sends the HEADERS frame for a new stream. The
* ``http2.inbound_priority_frames_flood`` stat tracks the number of connections terminated due to
* flood mitigation. The default max_inbound_window_update_frames_per_data_frame_sent value is 10.
* Setting this to 1 should be enough to support HTTP/2 implementations with basic flow control,
* but more complex implementations that try to estimate available bandwidth require at least 2.
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
* NOTE: flood and abuse mitigation for upstream connections is presently enabled by the
* `envoy.reloadable_features.upstream_http2_flood_checks` flag.
*/
'max_inbound_window_update_frames_per_data_frame_sent'?: (_google_protobuf_UInt32Value__Output);
/**
@ -290,6 +337,13 @@ export interface Http2ProtocolOptions__Output {
* the whole HTTP/2 connection is terminated upon receiving invalid HEADERS frame. However,
* when this option is enabled, only the offending stream is terminated.
*
* This is overridden by HCM :ref:`stream_error_on_invalid_http_messaging
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_error_on_invalid_http_message>`
* iff present.
*
* This is deprecated in favor of :ref:`override_stream_error_on_invalid_http_message
* <envoy_v3_api_field_config.core.v3.Http2ProtocolOptions.override_stream_error_on_invalid_http_message>`
*
* See `RFC7540, sec. 8.1 <https://tools.ietf.org/html/rfc7540#section-8.1>`_ for details.
*/
'stream_error_on_invalid_http_messaging': (boolean);
@ -321,5 +375,21 @@ export interface Http2ProtocolOptions__Output {
* <https://www.iana.org/assignments/http2-parameters/http2-parameters.xhtml#settings>`_ for
* standardized identifiers.
*/
'custom_settings_parameters': (_envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter__Output)[];
'custom_settings_parameters': (_envoy_config_core_v3_Http2ProtocolOptions_SettingsParameter__Output)[];
/**
* Allows invalid HTTP messaging and headers. When this option is disabled (default), then
* the whole HTTP/2 connection is terminated upon receiving invalid HEADERS frame. However,
* when this option is enabled, only the offending stream is terminated.
*
* This overrides any HCM :ref:`stream_error_on_invalid_http_messaging
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_error_on_invalid_http_message>`
*
* See `RFC7540, sec. 8.1 <https://tools.ietf.org/html/rfc7540#section-8.1>`_ for details.
*/
'override_stream_error_on_invalid_http_message'?: (_google_protobuf_BoolValue__Output);
/**
* Send HTTP/2 PING frames to verify that the connection is still healthy. If the remote peer
* does not respond within the configured timeout, the connection will be aborted.
*/
'connection_keepalive'?: (_envoy_config_core_v3_KeepaliveSettings__Output);
}

View File

@ -0,0 +1,22 @@
// Original file: deps/envoy-api/envoy/config/core/v3/protocol.proto
/**
* [#not-implemented-hide:]
*
* A message which allows using HTTP/3 as an upstream protocol.
*
* Eventually this will include configuration for tuning HTTP/3.
*/
export interface Http3ProtocolOptions {
}
/**
* [#not-implemented-hide:]
*
* A message which allows using HTTP/3 as an upstream protocol.
*
* Eventually this will include configuration for tuning HTTP/3.
*/
export interface Http3ProtocolOptions__Output {
}

View File

@ -1,9 +1,9 @@
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
// Original file: deps/envoy-api/envoy/config/core/v3/protocol.proto
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
// Original file: deps/envoy-api/envoy/config/core/v3/protocol.proto
/**
* Action to take when Envoy receives client request with header names containing underscore
@ -12,7 +12,7 @@ import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output a
* as a security measure due to systems that treat '_' and '-' as interchangeable. Envoy by default allows client request headers with underscore
* characters.
*/
export enum _envoy_api_v2_core_HttpProtocolOptions_HeadersWithUnderscoresAction {
export enum _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction {
/**
* Allow headers with underscores. This is the default behavior.
*/
@ -41,13 +41,17 @@ export interface HttpProtocolOptions {
* idle timeout is reached the connection will be closed. If the connection is an HTTP/2
* downstream connection a drain sequence will occur prior to closing the connection, see
* :ref:`drain_timeout
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
* <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
* Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.
* If not specified, this defaults to 1 hour. To disable idle timeouts explicitly set this to 0.
*
* .. warning::
* Disabling this timeout has a highly likelihood of yielding connection leaks due to lost TCP
* FIN packets, etc.
*
* If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
* is configured, this timeout is scaled for downstream connections according to the value for
* :ref:`HTTP_DOWNSTREAM_CONNECTION_IDLE <envoy_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_CONNECTION_IDLE>`.
*/
'idle_timeout'?: (_google_protobuf_Duration);
/**
@ -61,7 +65,7 @@ export interface HttpProtocolOptions {
* was established. If not set, there is no max duration. When max_connection_duration is reached
* the connection will be closed. Drain sequence will occur prior to closing the connection if
* if's applicable. See :ref:`drain_timeout
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
* <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
* Note: not implemented for upstream connections.
*/
'max_connection_duration'?: (_google_protobuf_Duration);
@ -75,7 +79,7 @@ export interface HttpProtocolOptions {
* If this setting is not specified, the value defaults to ALLOW.
* Note: upstream responses are not affected by this setting.
*/
'headers_with_underscores_action'?: (_envoy_api_v2_core_HttpProtocolOptions_HeadersWithUnderscoresAction | keyof typeof _envoy_api_v2_core_HttpProtocolOptions_HeadersWithUnderscoresAction);
'headers_with_underscores_action'?: (_envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction | keyof typeof _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction);
}
/**
@ -88,13 +92,17 @@ export interface HttpProtocolOptions__Output {
* idle timeout is reached the connection will be closed. If the connection is an HTTP/2
* downstream connection a drain sequence will occur prior to closing the connection, see
* :ref:`drain_timeout
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
* <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
* Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.
* If not specified, this defaults to 1 hour. To disable idle timeouts explicitly set this to 0.
*
* .. warning::
* Disabling this timeout has a highly likelihood of yielding connection leaks due to lost TCP
* FIN packets, etc.
*
* If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
* is configured, this timeout is scaled for downstream connections according to the value for
* :ref:`HTTP_DOWNSTREAM_CONNECTION_IDLE <envoy_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_CONNECTION_IDLE>`.
*/
'idle_timeout'?: (_google_protobuf_Duration__Output);
/**
@ -108,7 +116,7 @@ export interface HttpProtocolOptions__Output {
* was established. If not set, there is no max duration. When max_connection_duration is reached
* the connection will be closed. Drain sequence will occur prior to closing the connection if
* if's applicable. See :ref:`drain_timeout
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
* <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.drain_timeout>`.
* Note: not implemented for upstream connections.
*/
'max_connection_duration'?: (_google_protobuf_Duration__Output);
@ -122,5 +130,5 @@ export interface HttpProtocolOptions__Output {
* If this setting is not specified, the value defaults to ALLOW.
* Note: upstream responses are not affected by this setting.
*/
'headers_with_underscores_action': (keyof typeof _envoy_api_v2_core_HttpProtocolOptions_HeadersWithUnderscoresAction);
'headers_with_underscores_action': (keyof typeof _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction);
}

View File

@ -0,0 +1,79 @@
// Original file: deps/envoy-api/envoy/config/core/v3/http_uri.proto
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
/**
* Envoy external URI descriptor
*/
export interface HttpUri {
/**
* The HTTP server URI. It should be a full FQDN with protocol, host and path.
*
* Example:
*
* .. code-block:: yaml
*
* uri: https://www.googleapis.com/oauth2/v1/certs
*/
'uri'?: (string);
/**
* A cluster is created in the Envoy "cluster_manager" config
* section. This field specifies the cluster name.
*
* Example:
*
* .. code-block:: yaml
*
* cluster: jwks_cluster
*/
'cluster'?: (string);
/**
* Sets the maximum duration in milliseconds that a response can take to arrive upon request.
*/
'timeout'?: (_google_protobuf_Duration);
/**
* Specify how `uri` is to be fetched. Today, this requires an explicit
* cluster, but in the future we may support dynamic cluster creation or
* inline DNS resolution. See `issue
* <https://github.com/envoyproxy/envoy/issues/1606>`_.
*/
'http_upstream_type'?: "cluster";
}
/**
* Envoy external URI descriptor
*/
export interface HttpUri__Output {
/**
* The HTTP server URI. It should be a full FQDN with protocol, host and path.
*
* Example:
*
* .. code-block:: yaml
*
* uri: https://www.googleapis.com/oauth2/v1/certs
*/
'uri': (string);
/**
* A cluster is created in the Envoy "cluster_manager" config
* section. This field specifies the cluster name.
*
* Example:
*
* .. code-block:: yaml
*
* cluster: jwks_cluster
*/
'cluster'?: (string);
/**
* Sets the maximum duration in milliseconds that a response can take to arrive upon request.
*/
'timeout'?: (_google_protobuf_Duration__Output);
/**
* Specify how `uri` is to be fetched. Today, this requires an explicit
* cluster, but in the future we may support dynamic cluster creation or
* inline DNS resolution. See `issue
* <https://github.com/envoyproxy/envoy/issues/1606>`_.
*/
'http_upstream_type': "cluster";
}

View File

@ -0,0 +1,40 @@
// Original file: deps/envoy-api/envoy/config/core/v3/protocol.proto
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
import type { Percent as _envoy_type_v3_Percent, Percent__Output as _envoy_type_v3_Percent__Output } from '../../../../envoy/type/v3/Percent';
export interface KeepaliveSettings {
/**
* Send HTTP/2 PING frames at this period, in order to test that the connection is still alive.
*/
'interval'?: (_google_protobuf_Duration);
/**
* How long to wait for a response to a keepalive PING. If a response is not received within this
* time period, the connection will be aborted.
*/
'timeout'?: (_google_protobuf_Duration);
/**
* A random jitter amount as a percentage of interval that will be added to each interval.
* A value of zero means there will be no jitter.
* The default value is 15%.
*/
'interval_jitter'?: (_envoy_type_v3_Percent);
}
export interface KeepaliveSettings__Output {
/**
* Send HTTP/2 PING frames at this period, in order to test that the connection is still alive.
*/
'interval'?: (_google_protobuf_Duration__Output);
/**
* How long to wait for a response to a keepalive PING. If a response is not received within this
* time period, the connection will be aborted.
*/
'timeout'?: (_google_protobuf_Duration__Output);
/**
* A random jitter amount as a percentage of interval that will be added to each interval.
* A value of zero means there will be no jitter.
* The default value is 15%.
*/
'interval_jitter'?: (_envoy_type_v3_Percent__Output);
}

View File

@ -0,0 +1,56 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
/**
* Identifies location of where either Envoy runs or where upstream hosts run.
*/
export interface Locality {
/**
* Region this :ref:`zone <envoy_api_field_config.core.v3.Locality.zone>` belongs to.
*/
'region'?: (string);
/**
* Defines the local service zone where Envoy is running. Though optional, it
* should be set if discovery service routing is used and the discovery
* service exposes :ref:`zone data <envoy_api_field_config.endpoint.v3.LocalityLbEndpoints.locality>`,
* either in this message or via :option:`--service-zone`. The meaning of zone
* is context dependent, e.g. `Availability Zone (AZ)
* <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_
* on AWS, `Zone <https://cloud.google.com/compute/docs/regions-zones/>`_ on
* GCP, etc.
*/
'zone'?: (string);
/**
* When used for locality of upstream hosts, this field further splits zone
* into smaller chunks of sub-zones so they can be load balanced
* independently.
*/
'sub_zone'?: (string);
}
/**
* Identifies location of where either Envoy runs or where upstream hosts run.
*/
export interface Locality__Output {
/**
* Region this :ref:`zone <envoy_api_field_config.core.v3.Locality.zone>` belongs to.
*/
'region': (string);
/**
* Defines the local service zone where Envoy is running. Though optional, it
* should be set if discovery service routing is used and the discovery
* service exposes :ref:`zone data <envoy_api_field_config.endpoint.v3.LocalityLbEndpoints.locality>`,
* either in this message or via :option:`--service-zone`. The meaning of zone
* is context dependent, e.g. `Availability Zone (AZ)
* <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_
* on AWS, `Zone <https://cloud.google.com/compute/docs/regions-zones/>`_ on
* GCP, etc.
*/
'zone': (string);
/**
* When used for locality of upstream hosts, this field further splits zone
* into smaller chunks of sub-zones so they can be load balanced
* independently.
*/
'sub_zone': (string);
}

View File

@ -0,0 +1,67 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
/**
* Metadata provides additional inputs to filters based on matched listeners,
* filter chains, routes and endpoints. It is structured as a map, usually from
* filter name (in reverse DNS format) to metadata specific to the filter. Metadata
* key-values for a filter are merged as connection and request handling occurs,
* with later values for the same key overriding earlier values.
*
* An example use of metadata is providing additional values to
* http_connection_manager in the envoy.http_connection_manager.access_log
* namespace.
*
* Another example use of metadata is to per service config info in cluster metadata, which may get
* consumed by multiple filters.
*
* For load balancing, Metadata provides a means to subset cluster endpoints.
* Endpoints have a Metadata object associated and routes contain a Metadata
* object to match against. There are some well defined metadata used today for
* this purpose:
*
* * ``{"envoy.lb": {"canary": <bool> }}`` This indicates the canary status of an
* endpoint and is also used during header processing
* (x-envoy-upstream-canary) and for stats purposes.
* [#next-major-version: move to type/metadata/v2]
*/
export interface Metadata {
/**
* Key is the reverse DNS filter name, e.g. com.acme.widget. The envoy.*
* namespace is reserved for Envoy's built-in filters.
*/
'filter_metadata'?: ({[key: string]: _google_protobuf_Struct});
}
/**
* Metadata provides additional inputs to filters based on matched listeners,
* filter chains, routes and endpoints. It is structured as a map, usually from
* filter name (in reverse DNS format) to metadata specific to the filter. Metadata
* key-values for a filter are merged as connection and request handling occurs,
* with later values for the same key overriding earlier values.
*
* An example use of metadata is providing additional values to
* http_connection_manager in the envoy.http_connection_manager.access_log
* namespace.
*
* Another example use of metadata is to per service config info in cluster metadata, which may get
* consumed by multiple filters.
*
* For load balancing, Metadata provides a means to subset cluster endpoints.
* Endpoints have a Metadata object associated and routes contain a Metadata
* object to match against. There are some well defined metadata used today for
* this purpose:
*
* * ``{"envoy.lb": {"canary": <bool> }}`` This indicates the canary status of an
* endpoint and is also used during header processing
* (x-envoy-upstream-canary) and for stats purposes.
* [#next-major-version: move to type/metadata/v2]
*/
export interface Metadata__Output {
/**
* Key is the reverse DNS filter name, e.g. com.acme.widget. The envoy.*
* namespace is reserved for Envoy's built-in filters.
*/
'filter_metadata'?: ({[key: string]: _google_protobuf_Struct__Output});
}

View File

@ -0,0 +1,159 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
import type { Locality as _envoy_config_core_v3_Locality, Locality__Output as _envoy_config_core_v3_Locality__Output } from '../../../../envoy/config/core/v3/Locality';
import type { BuildVersion as _envoy_config_core_v3_BuildVersion, BuildVersion__Output as _envoy_config_core_v3_BuildVersion__Output } from '../../../../envoy/config/core/v3/BuildVersion';
import type { Extension as _envoy_config_core_v3_Extension, Extension__Output as _envoy_config_core_v3_Extension__Output } from '../../../../envoy/config/core/v3/Extension';
import type { Address as _envoy_config_core_v3_Address, Address__Output as _envoy_config_core_v3_Address__Output } from '../../../../envoy/config/core/v3/Address';
/**
* Identifies a specific Envoy instance. The node identifier is presented to the
* management server, which may use this identifier to distinguish per Envoy
* configuration for serving.
* [#next-free-field: 12]
*/
export interface Node {
/**
* An opaque node identifier for the Envoy node. This also provides the local
* service node name. It should be set if any of the following features are
* used: :ref:`statsd <arch_overview_statistics>`, :ref:`CDS
* <config_cluster_manager_cds>`, and :ref:`HTTP tracing
* <arch_overview_tracing>`, either in this message or via
* :option:`--service-node`.
*/
'id'?: (string);
/**
* Defines the local service cluster name where Envoy is running. Though
* optional, it should be set if any of the following features are used:
* :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
* verification
* <envoy_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>`,
* :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v3.Runtime>`,
* :ref:`user agent addition
* <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.add_user_agent>`,
* :ref:`HTTP global rate limiting <config_http_filters_rate_limit>`,
* :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
* <arch_overview_tracing>`, either in this message or via
* :option:`--service-cluster`.
*/
'cluster'?: (string);
/**
* Opaque metadata extending the node identifier. Envoy will pass this
* directly to the management server.
*/
'metadata'?: (_google_protobuf_Struct);
/**
* Locality specifying where the Envoy instance is running.
*/
'locality'?: (_envoy_config_core_v3_Locality);
/**
* Free-form string that identifies the entity requesting config.
* E.g. "envoy" or "grpc"
*/
'user_agent_name'?: (string);
/**
* Free-form string that identifies the version of the entity requesting config.
* E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild"
*/
'user_agent_version'?: (string);
/**
* Structured version of the entity requesting config.
*/
'user_agent_build_version'?: (_envoy_config_core_v3_BuildVersion);
/**
* List of extensions and their versions supported by the node.
*/
'extensions'?: (_envoy_config_core_v3_Extension)[];
/**
* Client feature support list. These are well known features described
* in the Envoy API repository for a given major version of an API. Client features
* use reverse DNS naming scheme, for example `com.acme.feature`.
* See :ref:`the list of features <client_features>` that xDS client may
* support.
*/
'client_features'?: (string)[];
/**
* Known listening ports on the node as a generic hint to the management server
* for filtering :ref:`listeners <config_listeners>` to be returned. For example,
* if there is a listener bound to port 80, the list can optionally contain the
* SocketAddress `(0.0.0.0,80)`. The field is optional and just a hint.
*/
'listening_addresses'?: (_envoy_config_core_v3_Address)[];
'user_agent_version_type'?: "user_agent_version"|"user_agent_build_version";
}
/**
* Identifies a specific Envoy instance. The node identifier is presented to the
* management server, which may use this identifier to distinguish per Envoy
* configuration for serving.
* [#next-free-field: 12]
*/
export interface Node__Output {
/**
* An opaque node identifier for the Envoy node. This also provides the local
* service node name. It should be set if any of the following features are
* used: :ref:`statsd <arch_overview_statistics>`, :ref:`CDS
* <config_cluster_manager_cds>`, and :ref:`HTTP tracing
* <arch_overview_tracing>`, either in this message or via
* :option:`--service-node`.
*/
'id': (string);
/**
* Defines the local service cluster name where Envoy is running. Though
* optional, it should be set if any of the following features are used:
* :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
* verification
* <envoy_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>`,
* :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v3.Runtime>`,
* :ref:`user agent addition
* <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.add_user_agent>`,
* :ref:`HTTP global rate limiting <config_http_filters_rate_limit>`,
* :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
* <arch_overview_tracing>`, either in this message or via
* :option:`--service-cluster`.
*/
'cluster': (string);
/**
* Opaque metadata extending the node identifier. Envoy will pass this
* directly to the management server.
*/
'metadata'?: (_google_protobuf_Struct__Output);
/**
* Locality specifying where the Envoy instance is running.
*/
'locality'?: (_envoy_config_core_v3_Locality__Output);
/**
* Free-form string that identifies the entity requesting config.
* E.g. "envoy" or "grpc"
*/
'user_agent_name': (string);
/**
* Free-form string that identifies the version of the entity requesting config.
* E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild"
*/
'user_agent_version'?: (string);
/**
* Structured version of the entity requesting config.
*/
'user_agent_build_version'?: (_envoy_config_core_v3_BuildVersion__Output);
/**
* List of extensions and their versions supported by the node.
*/
'extensions': (_envoy_config_core_v3_Extension__Output)[];
/**
* Client feature support list. These are well known features described
* in the Envoy API repository for a given major version of an API. Client features
* use reverse DNS naming scheme, for example `com.acme.feature`.
* See :ref:`the list of features <client_features>` that xDS client may
* support.
*/
'client_features': (string)[];
/**
* Known listening ports on the node as a generic hint to the management server
* for filtering :ref:`listeners <config_listeners>` to be returned. For example,
* if there is a listener bound to port 80, the list can optionally contain the
* SocketAddress `(0.0.0.0,80)`. The field is optional and just a hint.
*/
'listening_addresses': (_envoy_config_core_v3_Address__Output)[];
'user_agent_version_type': "user_agent_version"|"user_agent_build_version";
}

View File

@ -0,0 +1,30 @@
// Original file: deps/envoy-api/envoy/config/core/v3/address.proto
export interface Pipe {
/**
* Unix Domain Socket path. On Linux, paths starting with '@' will use the
* abstract namespace. The starting '@' is replaced by a null byte by Envoy.
* Paths starting with '@' will result in an error in environments other than
* Linux.
*/
'path'?: (string);
/**
* The mode for the Pipe. Not applicable for abstract sockets.
*/
'mode'?: (number);
}
export interface Pipe__Output {
/**
* Unix Domain Socket path. On Linux, paths starting with '@' will use the
* abstract namespace. The starting '@' is replaced by a null byte by Envoy.
* Paths starting with '@' will result in an error in environments other than
* Linux.
*/
'path': (string);
/**
* The mode for the Pipe. Not applicable for abstract sockets.
*/
'mode': (number);
}

View File

@ -0,0 +1,29 @@
// Original file: deps/envoy-api/envoy/config/core/v3/proxy_protocol.proto
// Original file: deps/envoy-api/envoy/config/core/v3/proxy_protocol.proto
export enum _envoy_config_core_v3_ProxyProtocolConfig_Version {
/**
* PROXY protocol version 1. Human readable format.
*/
V1 = 0,
/**
* PROXY protocol version 2. Binary format.
*/
V2 = 1,
}
export interface ProxyProtocolConfig {
/**
* The PROXY protocol version to use. See https://www.haproxy.org/download/2.1/doc/proxy-protocol.txt for details
*/
'version'?: (_envoy_config_core_v3_ProxyProtocolConfig_Version | keyof typeof _envoy_config_core_v3_ProxyProtocolConfig_Version);
}
export interface ProxyProtocolConfig__Output {
/**
* The PROXY protocol version to use. See https://www.haproxy.org/download/2.1/doc/proxy-protocol.txt for details
*/
'version': (keyof typeof _envoy_config_core_v3_ProxyProtocolConfig_Version);
}

View File

@ -1,4 +1,4 @@
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
// Original file: deps/envoy-api/envoy/config/core/v3/config_source.proto
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
import type { DoubleValue as _google_protobuf_DoubleValue, DoubleValue__Output as _google_protobuf_DoubleValue__Output } from '../../../../google/protobuf/DoubleValue';

View File

@ -0,0 +1,40 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { HttpUri as _envoy_config_core_v3_HttpUri, HttpUri__Output as _envoy_config_core_v3_HttpUri__Output } from '../../../../envoy/config/core/v3/HttpUri';
import type { RetryPolicy as _envoy_config_core_v3_RetryPolicy, RetryPolicy__Output as _envoy_config_core_v3_RetryPolicy__Output } from '../../../../envoy/config/core/v3/RetryPolicy';
/**
* The message specifies how to fetch data from remote and how to verify it.
*/
export interface RemoteDataSource {
/**
* The HTTP URI to fetch the remote data.
*/
'http_uri'?: (_envoy_config_core_v3_HttpUri);
/**
* SHA256 string for verifying data.
*/
'sha256'?: (string);
/**
* Retry policy for fetching remote data.
*/
'retry_policy'?: (_envoy_config_core_v3_RetryPolicy);
}
/**
* The message specifies how to fetch data from remote and how to verify it.
*/
export interface RemoteDataSource__Output {
/**
* The HTTP URI to fetch the remote data.
*/
'http_uri'?: (_envoy_config_core_v3_HttpUri__Output);
/**
* SHA256 string for verifying data.
*/
'sha256': (string);
/**
* Retry policy for fetching remote data.
*/
'retry_policy'?: (_envoy_config_core_v3_RetryPolicy__Output);
}

View File

@ -0,0 +1,17 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
/**
* HTTP request method.
*/
export enum RequestMethod {
METHOD_UNSPECIFIED = 0,
GET = 1,
HEAD = 2,
POST = 3,
PUT = 4,
DELETE = 5,
CONNECT = 6,
OPTIONS = 7,
TRACE = 8,
PATCH = 9,
}

View File

@ -0,0 +1,38 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { BackoffStrategy as _envoy_config_core_v3_BackoffStrategy, BackoffStrategy__Output as _envoy_config_core_v3_BackoffStrategy__Output } from '../../../../envoy/config/core/v3/BackoffStrategy';
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
/**
* The message specifies the retry policy of remote data source when fetching fails.
*/
export interface RetryPolicy {
/**
* Specifies parameters that control :ref:`retry backoff strategy <envoy_api_msg_config.core.v3.BackoffStrategy>`.
* This parameter is optional, in which case the default base interval is 1000 milliseconds. The
* default maximum interval is 10 times the base interval.
*/
'retry_back_off'?: (_envoy_config_core_v3_BackoffStrategy);
/**
* Specifies the allowed number of retries. This parameter is optional and
* defaults to 1.
*/
'num_retries'?: (_google_protobuf_UInt32Value);
}
/**
* The message specifies the retry policy of remote data source when fetching fails.
*/
export interface RetryPolicy__Output {
/**
* Specifies parameters that control :ref:`retry backoff strategy <envoy_api_msg_config.core.v3.BackoffStrategy>`.
* This parameter is optional, in which case the default base interval is 1000 milliseconds. The
* default maximum interval is 10 times the base interval.
*/
'retry_back_off'?: (_envoy_config_core_v3_BackoffStrategy__Output);
/**
* Specifies the allowed number of retries. This parameter is optional and
* defaults to 1.
*/
'num_retries'?: (_google_protobuf_UInt32Value__Output);
}

View File

@ -0,0 +1,15 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
/**
* Envoy supports :ref:`upstream priority routing
* <arch_overview_http_routing_priority>` both at the route and the virtual
* cluster level. The current priority implementation uses different connection
* pool and circuit breaking settings for each priority level. This means that
* even for HTTP/2 requests, two physical connections will be used to an
* upstream host. In the future Envoy will likely support true HTTP/2 priority
* over a single upstream connection.
*/
export enum RoutingPriority {
DEFAULT = 0,
HIGH = 1,
}

View File

@ -0,0 +1,30 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
/**
* Runtime derived double with a default when not specified.
*/
export interface RuntimeDouble {
/**
* Default value if runtime value is not available.
*/
'default_value'?: (number | string);
/**
* Runtime key to get value for comparison. This value is used if defined.
*/
'runtime_key'?: (string);
}
/**
* Runtime derived double with a default when not specified.
*/
export interface RuntimeDouble__Output {
/**
* Default value if runtime value is not available.
*/
'default_value': (number);
/**
* Runtime key to get value for comparison. This value is used if defined.
*/
'runtime_key': (string);
}

View File

@ -0,0 +1,35 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
/**
* Runtime derived bool with a default when not specified.
*/
export interface RuntimeFeatureFlag {
/**
* Default value if runtime value is not available.
*/
'default_value'?: (_google_protobuf_BoolValue);
/**
* Runtime key to get value for comparison. This value is used if defined. The boolean value must
* be represented via its
* `canonical JSON encoding <https://developers.google.com/protocol-buffers/docs/proto3#json>`_.
*/
'runtime_key'?: (string);
}
/**
* Runtime derived bool with a default when not specified.
*/
export interface RuntimeFeatureFlag__Output {
/**
* Default value if runtime value is not available.
*/
'default_value'?: (_google_protobuf_BoolValue__Output);
/**
* Runtime key to get value for comparison. This value is used if defined. The boolean value must
* be represented via its
* `canonical JSON encoding <https://developers.google.com/protocol-buffers/docs/proto3#json>`_.
*/
'runtime_key': (string);
}

View File

@ -0,0 +1,49 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { FractionalPercent as _envoy_type_v3_FractionalPercent, FractionalPercent__Output as _envoy_type_v3_FractionalPercent__Output } from '../../../../envoy/type/v3/FractionalPercent';
/**
* Runtime derived FractionalPercent with defaults for when the numerator or denominator is not
* specified via a runtime key.
*
* .. note::
*
* Parsing of the runtime key's data is implemented such that it may be represented as a
* :ref:`FractionalPercent <envoy_api_msg_type.v3.FractionalPercent>` proto represented as JSON/YAML
* and may also be represented as an integer with the assumption that the value is an integral
* percentage out of 100. For instance, a runtime key lookup returning the value "42" would parse
* as a `FractionalPercent` whose numerator is 42 and denominator is HUNDRED.
*/
export interface RuntimeFractionalPercent {
/**
* Default value if the runtime value's for the numerator/denominator keys are not available.
*/
'default_value'?: (_envoy_type_v3_FractionalPercent);
/**
* Runtime key for a YAML representation of a FractionalPercent.
*/
'runtime_key'?: (string);
}
/**
* Runtime derived FractionalPercent with defaults for when the numerator or denominator is not
* specified via a runtime key.
*
* .. note::
*
* Parsing of the runtime key's data is implemented such that it may be represented as a
* :ref:`FractionalPercent <envoy_api_msg_type.v3.FractionalPercent>` proto represented as JSON/YAML
* and may also be represented as an integer with the assumption that the value is an integral
* percentage out of 100. For instance, a runtime key lookup returning the value "42" would parse
* as a `FractionalPercent` whose numerator is 42 and denominator is HUNDRED.
*/
export interface RuntimeFractionalPercent__Output {
/**
* Default value if the runtime value's for the numerator/denominator keys are not available.
*/
'default_value'?: (_envoy_type_v3_FractionalPercent__Output);
/**
* Runtime key for a YAML representation of a FractionalPercent.
*/
'runtime_key': (string);
}

View File

@ -0,0 +1,31 @@
// Original file: deps/envoy-api/envoy/config/core/v3/base.proto
import type { Percent as _envoy_type_v3_Percent, Percent__Output as _envoy_type_v3_Percent__Output } from '../../../../envoy/type/v3/Percent';
/**
* Runtime derived percentage with a default when not specified.
*/
export interface RuntimePercent {
/**
* Default value if runtime value is not available.
*/
'default_value'?: (_envoy_type_v3_Percent);
/**
* Runtime key to get value for comparison. This value is used if defined.
*/
'runtime_key'?: (string);
}
/**
* Runtime derived percentage with a default when not specified.
*/
export interface RuntimePercent__Output {
/**
* Default value if runtime value is not available.
*/
'default_value'?: (_envoy_type_v3_Percent__Output);
/**
* Runtime key to get value for comparison. This value is used if defined.
*/
'runtime_key': (string);
}

Some files were not shown because too many files have changed in this diff Show More