Merge branch 'master' into grpc-js-xds_server2

This commit is contained in:
Michael Lumish 2024-07-01 11:19:12 -07:00
commit f2dcb21a77
233 changed files with 5225 additions and 5655 deletions

View File

@ -8,17 +8,21 @@ See [CONTRIBUTING.md](https://github.com/grpc/grpc-community/blob/master/CONTRIB
for general contribution guidelines.
## Maintainers (in alphabetical order)
- [jtattermusch](https://github.com/jtattermusch), Google Inc.
- [gnossen](https://github.com/gnossen), Google Inc.
- [murgatroid99](https://github.com/murgatroid99), Google Inc.
- [nicolasnoble](https://github.com/nicolasnoble), Google Inc.
- [srini100](https://github.com/srini100), Google Inc.
- [sergiitk](https://github.com/sergiitk), Google Inc.
- [temawi](https://github.com/temawi), Google Inc.
- [wenbozhu](https://github.com/wenbozhu), Google Inc.
## Emeritus Maintainers (in alphabetical order)
- [jiangtaoli2016](https://github.com/jiangtaoli2016), Google Inc.
- [kjin](https://github.com/kjin), Google Inc.
- [matt-kwong](https://github.com/matt-kwong), Google Inc.
- [ofrobots](https://github.com/ofrobots), Google Inc.
- [WeiranFang](https://github.com/WeiranFang), Google Inc.
- [jiangtaoli2016](https://github.com/jiangtaoli2016)
- [jtattermusch](https://github.com/jtattermusch)
- [kjin](https://github.com/kjin)
- [matt-kwong](https://github.com/matt-kwong)
- [nicolasnoble](https://github.com/nicolasnoble)
- [nimf](https://github.com/nimf)
- [ofrobots](https://github.com/ofrobots)
- [srini100](https://github.com/srini100)
- [WeiranFang](https://github.com/WeiranFang)

View File

@ -0,0 +1,120 @@
# Interceptor
Node gRPC provides simple APIs to implement and install interceptors on clients
and servers. An interceptor intercepts the execution of each incoming/outgoing
RPC call on the client or server where it is installed. Users can use
interceptors to do logging, authentication/authorization, metrics collection,
and many other functions that can be shared across RPCs.
## Run the server
```
node server.js
```
## Run the client
```
node client.js
```
# Explanation
In Node gRPC, clients and servers each have their own types of interceptors.
## Client
Node gRPC client interceptors are formally specified in [gRFC L5](https://github.com/grpc/proposal/blob/master/L5-node-client-interceptors.md).
An interceptor is a function that can wrap a call object with an
`InterceptingCall`, with intercepting functions for individual call operations.
To illustrate, the following is a trivial interceptor with all interception
methods:
```js
const interceptor = function(options, nextCall) {
const requester = {
start: function(metadata, listener, next) {
const listener = {
onReceiveMetadata: function(metadata, next) {
next(metadata);
},
onReceiveMessage: function(message, next) {
next(message);
},
onReceiveStatus: function(status, next) {
next(status);
}
};
next(metadata, listener);
},
sendMessage: function(message, next) {
next(messasge);
},
halfClose: function(next) {
next();
},
cancel: function(message, next) {
next();
}
};
return new InterceptingCall(nextCall(options), requester);
};
```
The requester intercepts outgoing operations, and the listener intercepts
incoming operations. Each intercepting method can read or modify the data for
that operation before passing it along to the `next` callback.
The `RequesterBuilder` and `ListenerBuilder` utility classes provide an
alternative way to construct requester and listener objects
## Server
Node gRPC server interceptors are formally specified in [gRFC L112](https://github.com/grpc/proposal/blob/master/L112-node-server-interceptors.md).
Similar to client interceptors, a server interceptor is a function that can
wrap a call object with a `ServerInterceptingCall`, with intercepting functions
for individual call operations. Server intercepting functions broadly mirror
the client intercepting functions, with sending and receiving switched. To
illustrate, the following is a trivial server interceptor with all interception
methods:
```js
const interceptor = function(methodDescriptor, call) {
const responder = {
start: function(next) {
const listener = {
onReceiveMetadata: function(metadata, next) {
next(metadata);
},
onReceiveMessage: function(message, next) {
next(message);
},
onReceiveHalfClose: function(next) {
next();
},
onCancel: function() {
}
};
next(listener);
},
sendMetadata: function(metadata, next) {
next(metadata);
},
sendMessage: function(message, next) {
next(message);
},
sendStatus: function(status, next) {
next(status);
}
};
return new ServerInterceptingCall(call, responder);
}
```
As with client interceptors, the responder intercepts outgoing operations and
the listener intercepts incoming operations. Each intercepting method can read
or modify the data for that operation before passing it along to the `next`
callback.
The `ResponderBuilder` and `ServerListenerBuilder` utility classes provide an
alternative way to build responder and server listener objects.

View File

@ -0,0 +1,113 @@
/*
*
* Copyright 2024 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.
*
*/
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const parseArgs = require('minimist');
const PROTO_PATH = __dirname + '/../protos/echo.proto';
const packageDefinition = protoLoader.loadSync(
PROTO_PATH,
{keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
const echoProto = grpc.loadPackageDefinition(packageDefinition).grpc.examples.echo;
function authInterceptor(options, nextCall) {
const requester = (new grpc.RequesterBuilder())
.withStart((metadata, listener, next) => {
metadata.set('authorization', 'some-secret-token');
next(metadata, listener);
}).build();
return new grpc.InterceptingCall(nextCall(options), requester);
}
// logger is to mock a sophisticated logging system. To simplify the example, we just print out the content.
function logger(format, ...args) {
console.log(`LOG (client):\t${format}\n`, ...args);
}
function loggingInterceptor(options, nextCall) {
const listener = (new grpc.ListenerBuilder())
.withOnReceiveMessage((message, next) => {
logger(`Receive a message ${JSON.stringify(message)} at ${(new Date()).toISOString()}`);
next(message);
}).build();
const requester = (new grpc.RequesterBuilder())
.withSendMessage((message, next) => {
logger(`Send a message ${JSON.stringify(message)} at ${(new Date()).toISOString()}`);
next(message);
}).build();
return new grpc.InterceptingCall(nextCall(options), requester);
}
function callUnaryEcho(client, message) {
return new Promise((resolve, reject) => {
const deadline = new Date();
deadline.setSeconds(deadline.getSeconds() + 10);
client.unaryEcho({message: message}, {deadline}, (error, value) => {
if (error) {
reject(error);
return;
}
console.log(`UnaryEcho: ${JSON.stringify(value)}`);
resolve();
});
});
}
function callBidiStreamingEcho(client) {
return new Promise((resolve, reject) => {
const deadline = new Date();
deadline.setSeconds(deadline.getSeconds() + 10);
const call = client.bidirectionalStreamingEcho({deadline});
call.on('data', value => {
console.log(`BidiStreamingEcho: ${JSON.stringify(value)}`);
});
call.on('status', status => {
if (status.code === grpc.status.OK) {
resolve();
} else {
reject(status);
}
});
call.on('error', () => {
// Ignore error event
});
for (let i = 0; i < 5; i++) {
call.write({message: `Request ${i + 1}`});
}
call.end();
});
}
async function main() {
let argv = parseArgs(process.argv.slice(2), {
string: 'target',
default: {target: 'localhost:50051'}
});
const client = new echoProto.Echo(argv.target, grpc.credentials.createInsecure(), {interceptors: [authInterceptor, loggingInterceptor]});
await callUnaryEcho(client, 'hello world');
await callBidiStreamingEcho(client);
}
main();

View File

@ -0,0 +1,120 @@
/*
*
* Copyright 2024 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.
*
*/
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const parseArgs = require('minimist');
const PROTO_PATH = __dirname + '/../protos/echo.proto';
const packageDefinition = protoLoader.loadSync(
PROTO_PATH,
{keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
const echoProto = grpc.loadPackageDefinition(packageDefinition).grpc.examples.echo;
function unaryEcho(call, callback) {
console.log(`unary echoing message ${call.request.message}`);
callback(null, call.request);
}
function bidirectionalStreamingEcho(call) {
call.on('data', request => {
console.log(`bidi echoing message ${request.message}`);
call.write(request);
});
call.on('end', () => {
call.end();
});
}
const serviceImplementation = {
unaryEcho,
bidirectionalStreamingEcho
}
function validateAuthorizationMetadata(metadata) {
const authorization = metadata.get('authorization');
if (authorization.length < 1) {
return false;
}
return authorization[0] === 'some-secret-token';
}
function authInterceptor(methodDescriptor, call) {
const listener = (new grpc.ServerListenerBuilder())
.withOnReceiveMetadata((metadata, next) => {
if (validateAuthorizationMetadata(metadata)) {
next(metadata);
} else {
call.sendStatus({
code: grpc.status.UNAUTHENTICATED,
details: 'Auth metadata not correct'
});
}
}).build();
const responder = (new grpc.ResponderBuilder())
.withStart(next => {
next(listener);
}).build();
return new grpc.ServerInterceptingCall(call, responder);
}
// logger is to mock a sophisticated logging system. To simplify the example, we just print out the content.
function logger(format, ...args) {
console.log(`LOG (server):\t${format}\n`, ...args);
}
function loggingInterceptor(methodDescriptor, call) {
const listener = new grpc.ServerListenerBuilder()
.withOnReceiveMessage((message, next) => {
logger(`Receive a message ${JSON.stringify(message)} at ${(new Date()).toISOString()}`);
next(message);
}).build();
const responder = new grpc.ResponderBuilder()
.withStart(next => {
next(listener);
})
.withSendMessage((message, next) => {
logger(`Send a message ${JSON.stringify(message)} at ${(new Date()).toISOString()}`);
next(message);
}).build();
return new grpc.ServerInterceptingCall(call, responder);
}
function main() {
const argv = parseArgs(process.argv.slice(2), {
string: 'port',
default: {port: '50051'}
});
const server = new grpc.Server({interceptors: [authInterceptor, loggingInterceptor]});
server.addService(echoProto.Echo.service, serviceImplementation);
server.bindAsync(`0.0.0.0:${argv.port}`, grpc.ServerCredentials.createInsecure(), (err, port) => {
if (err != null) {
return console.error(err);
}
console.log(`gRPC listening on ${port}`)
});
client = new echoProto.Echo(`localhost:${argv.port}`, grpc.credentials.createInsecure());
}
main();

View File

@ -0,0 +1,16 @@
# Keepalive
This example illustrates how to set up client-side keepalive pings and
server-side keepalive pings and connection age and idleness settings.
## Start the server
```
node server.js
```
## Start the client
```
GRPC_TRACE=transport,keepalive GRPC_VERBOSITY=DEBUG node client.js
```

View File

@ -0,0 +1,61 @@
/*
*
* Copyright 2024 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.
*
*/
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const parseArgs = require('minimist');
const PROTO_PATH = __dirname + '/../protos/echo.proto';
const packageDefinition = protoLoader.loadSync(
PROTO_PATH,
{keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
const echoProto = grpc.loadPackageDefinition(packageDefinition).grpc.examples.echo;
const keepaliveOptions = {
// Ping the server every 10 seconds to ensure the connection is still active
'grpc.keepalive_time_ms': 10_000,
// Wait 1 second for the ping ack before assuming the connection is dead
'grpc.keepalive_timeout_ms': 1_000,
// send pings even without active streams
'grpc.keepalive_permit_without_calls': 1
}
function main() {
let argv = parseArgs(process.argv.slice(2), {
string: 'target',
default: {target: 'localhost:50052'}
});
const client = new echoProto.Echo(argv.target, grpc.credentials.createInsecure(), keepaliveOptions);
client.unaryEcho({message: 'keepalive demo'}, (error, value) => {
if (error) {
console.log(`Unexpected error from UnaryEcho: ${error}`);
return;
}
console.log(`RPC response: ${JSON.stringify(value)}`);
});
// Keep process alive forever; run with GRPC_TRACE=transport,keepalive GRPC_VERBOSITY=DEBUG to observe ping frames and GOAWAYs due to idleness.
setInterval(() => {}, 1000);
}
main();

View File

@ -0,0 +1,71 @@
/*
*
* Copyright 2024 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.
*
*/
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const parseArgs = require('minimist');
const PROTO_PATH = __dirname + '/../protos/echo.proto';
const packageDefinition = protoLoader.loadSync(
PROTO_PATH,
{keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
const echoProto = grpc.loadPackageDefinition(packageDefinition).grpc.examples.echo;
const keepaliveOptions = {
// If a client is idle for 15 seconds, send a GOAWAY
'grpc.max_connection_idle_ms': 15_000,
// If any connection is alive for more than 30 seconds, send a GOAWAY
'grpc.max_connection_age_ms': 30_000,
// Allow 5 seconds for pending RPCs to complete before forcibly closing connections
'grpc.max_connection_age_grace_ms': 5_000,
// Ping the client every 5 seconds to ensure the connection is still active
'grpc.keepalive_time_ms': 5_000,
// Wait 1 second for the ping ack before assuming the connection is dead
'grpc.keepalive_timeout_ms': 1_000
}
function unaryEcho(call, callback) {
callback(null, call.request);
}
const serviceImplementation = {
unaryEcho
};
function main() {
const argv = parseArgs(process.argv.slice(2), {
string: 'port',
default: {port: '50052'}
});
const server = new grpc.Server(keepaliveOptions);
server.addService(echoProto.Echo.service, serviceImplementation);
server.bindAsync(`0.0.0.0:${argv.port}`, grpc.ServerCredentials.createInsecure(), (err, port) => {
if (err != null) {
return console.error(err);
}
console.log(`gRPC listening on ${port}`)
});
}
main();

View File

@ -5,8 +5,8 @@
"@grpc/proto-loader": "^0.6.0",
"async": "^1.5.2",
"google-protobuf": "^3.0.0",
"@grpc/grpc-js": "^1.8.0",
"@grpc/grpc-js-xds": "^1.8.0",
"@grpc/grpc-js": "^1.10.2",
"@grpc/grpc-js-xds": "^1.10.0",
"@grpc/reflection": "^1.0.0",
"lodash": "^4.6.1",
"minimist": "^1.2.0"

View File

@ -23,15 +23,15 @@ import * as reflection from './packages/grpc-reflection/gulpfile';
import * as protobuf from './packages/proto-loader/gulpfile';
import * as internalTest from './test/gulpfile';
const installAll = gulp.series(jsCore.install, healthCheck.install, protobuf.install, internalTest.install, jsXds.install, reflection.install);
const installAll = gulp.series(protobuf.install, jsCore.install, healthCheck.install, internalTest.install, jsXds.install, reflection.install);
const lint = gulp.parallel(jsCore.lint);
const build = gulp.series(jsCore.compile, protobuf.compile, jsXds.compile);
const build = gulp.series(protobuf.compile, jsCore.compile, jsXds.compile);
const setup = gulp.series(installAll);
const setupPureJSInterop = gulp.series(jsCore.install, protobuf.install, internalTest.install);
const setupPureJSInterop = gulp.series(protobuf.install, jsCore.install, internalTest.install);
const clean = gulp.series(jsCore.clean, protobuf.clean, jsXds.clean);

View File

@ -20,14 +20,13 @@
"del": "^3.0.0",
"execa": "^0.8.0",
"gulp": "^4.0.1",
"gulp-jsdoc3": "^1.0.1",
"gulp-jshint": "^2.0.4",
"gulp-mocha": "^4.3.1",
"gulp-sourcemaps": "^2.6.1",
"gulp-tslint": "^8.1.1",
"gulp-typescript": "^3.2.2",
"gulp-util": "^3.0.8",
"jsdoc": "^3.3.2",
"jsdoc": "^4.0.3",
"jshint": "^2.9.5",
"make-dir": "^1.1.0",
"merge2": "^1.1.0",

View File

@ -1,6 +1,6 @@
{
"name": "grpc-health-check",
"version": "2.0.1",
"version": "2.0.2",
"author": "Google Inc.",
"description": "Health check client and service for use with gRPC-node",
"repository": {
@ -21,7 +21,7 @@
"generate-test-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --includeComments --includeDirs proto/ -O test/generated --grpcLib=@grpc/grpc-js health/v1/health.proto"
},
"dependencies": {
"@grpc/proto-loader": "^0.7.10"
"@grpc/proto-loader": "^0.7.13"
},
"files": [
"LICENSE",

View File

@ -1,6 +1,6 @@
# @grpc/grpc-js xDS plugin
This package provides support for the `xds://` URL scheme to the `@grpc/grpc-js` library. The latest version of this package is compatible with `@grpc/grpc-js` version 1.9.x.
This package provides support for the `xds://` URL scheme to the `@grpc/grpc-js` library. The latest version of this package is compatible with `@grpc/grpc-js` version 1.10.x.
## Installation
@ -30,5 +30,8 @@ const client = new MyServiceClient('xds:///example.com:123');
- [Client Status Discovery Service](https://github.com/grpc/proposal/blob/master/A40-csds-support.md)
- [Outlier Detection](https://github.com/grpc/proposal/blob/master/A50-xds-outlier-detection.md)
- [xDS Retry Support](https://github.com/grpc/proposal/blob/master/A44-xds-retry.md)
- [xDS Aggregate and Logical DNS Clusters](https://github.com/grpc/proposal/blob/master/A37-xds-aggregate-and-logical-dns-clusters.md)'
- [xDS Aggregate and Logical DNS Clusters](https://github.com/grpc/proposal/blob/master/A37-xds-aggregate-and-logical-dns-clusters.md)
- [xDS Federation](https://github.com/grpc/proposal/blob/master/A47-xds-federation.md) (Currently experimental, enabled by environment variable `GRPC_EXPERIMENTAL_XDS_FEDERATION`)
- [xDS Custom Load Balancer Configuration](https://github.com/grpc/proposal/blob/master/A52-xds-custom-lb-policies.md) (Custom load balancer registration not currently supported)
- [xDS Ring Hash LB Policy](https://github.com/grpc/proposal/blob/master/A42-xds-ring-hash-lb-policy.md)
- [`pick_first` via xDS](https://github.com/grpc/proposal/blob/master/A62-pick-first.md#pick_first-via-xds-1) (Currently experimental, enabled by environment variable `GRPC_EXPERIMENTAL_PICKFIRST_LB_CONFIG`)

View File

@ -62,10 +62,9 @@ const compile = checkTask(() => execNpmCommand('compile'));
const runTests = checkTask(() => {
process.env.GRPC_EXPERIMENTAL_XDS_FEDERATION = 'true';
process.env.GRPC_EXPERIMENTAL_XDS_CUSTOM_LB_CONFIG = 'true';
process.env.GRPC_EXPERIMENTAL_PICKFIRST_LB_CONFIG = 'true';
if (Number(process.versions.node.split('.')[0]) > 14) {
process.env.GRPC_XDS_EXPERIMENTAL_ENABLE_RING_HASH = 'true';
if (Number(process.versions.node.split('.')[0]) <= 14) {
process.env.GRPC_XDS_EXPERIMENTAL_ENABLE_RING_HASH = 'false';
}
return gulp.src(`${outDir}/test/**/*.js`)
.pipe(mocha({reporter: 'mocha-jenkins-reporter',

View File

@ -22,6 +22,8 @@ FROM node:18-slim as build
WORKDIR /node/src/grpc-node
COPY . .
WORKDIR /node/src/grpc-node/packages/proto-loader
RUN npm install
WORKDIR /node/src/grpc-node/packages/grpc-js
RUN npm install
WORKDIR /node/src/grpc-node/packages/grpc-js-xds
@ -29,6 +31,7 @@ RUN npm install
FROM gcr.io/distroless/nodejs18-debian11:latest
WORKDIR /node/src/grpc-node
COPY --from=build /node/src/grpc-node/packages/proto-loader ./packages/proto-loader/
COPY --from=build /node/src/grpc-node/packages/grpc-js ./packages/grpc-js/
COPY --from=build /node/src/grpc-node/packages/grpc-js-xds ./packages/grpc-js-xds/

View File

@ -5,7 +5,7 @@
* Metadata to be attached for the given type of RPCs.
*/
export interface _grpc_testing_ClientConfigureRequest_Metadata {
'type'?: (_grpc_testing_ClientConfigureRequest_RpcType | keyof typeof _grpc_testing_ClientConfigureRequest_RpcType);
'type'?: (_grpc_testing_ClientConfigureRequest_RpcType);
'key'?: (string);
'value'?: (string);
}
@ -14,7 +14,7 @@ export interface _grpc_testing_ClientConfigureRequest_Metadata {
* Metadata to be attached for the given type of RPCs.
*/
export interface _grpc_testing_ClientConfigureRequest_Metadata__Output {
'type': (keyof typeof _grpc_testing_ClientConfigureRequest_RpcType);
'type': (_grpc_testing_ClientConfigureRequest_RpcType__Output);
'key': (string);
'value': (string);
}
@ -24,10 +24,24 @@ export interface _grpc_testing_ClientConfigureRequest_Metadata__Output {
/**
* Type of RPCs to send.
*/
export enum _grpc_testing_ClientConfigureRequest_RpcType {
EMPTY_CALL = 0,
UNARY_CALL = 1,
}
export const _grpc_testing_ClientConfigureRequest_RpcType = {
EMPTY_CALL: 'EMPTY_CALL',
UNARY_CALL: 'UNARY_CALL',
} as const;
/**
* Type of RPCs to send.
*/
export type _grpc_testing_ClientConfigureRequest_RpcType =
| 'EMPTY_CALL'
| 0
| 'UNARY_CALL'
| 1
/**
* Type of RPCs to send.
*/
export type _grpc_testing_ClientConfigureRequest_RpcType__Output = typeof _grpc_testing_ClientConfigureRequest_RpcType[keyof typeof _grpc_testing_ClientConfigureRequest_RpcType]
/**
* Configurations for a test client.
@ -36,7 +50,7 @@ export interface ClientConfigureRequest {
/**
* The types of RPCs the client sends.
*/
'types'?: (_grpc_testing_ClientConfigureRequest_RpcType | keyof typeof _grpc_testing_ClientConfigureRequest_RpcType)[];
'types'?: (_grpc_testing_ClientConfigureRequest_RpcType)[];
/**
* The collection of custom metadata to be attached to RPCs sent by the client.
*/
@ -55,7 +69,7 @@ export interface ClientConfigureRequest__Output {
/**
* The types of RPCs the client sends.
*/
'types': (keyof typeof _grpc_testing_ClientConfigureRequest_RpcType)[];
'types': (_grpc_testing_ClientConfigureRequest_RpcType__Output)[];
/**
* The collection of custom metadata to be attached to RPCs sent by the client.
*/

View File

@ -8,17 +8,52 @@
* the address of this server from the gRPCLB server BalanceLoad RPC). Exactly
* how this detection is done is context and server dependent.
*/
export enum GrpclbRouteType {
export const GrpclbRouteType = {
/**
* Server didn't detect the route that a client took to reach it.
*/
GRPCLB_ROUTE_TYPE_UNKNOWN = 0,
GRPCLB_ROUTE_TYPE_UNKNOWN: 'GRPCLB_ROUTE_TYPE_UNKNOWN',
/**
* Indicates that a client reached a server via gRPCLB fallback.
*/
GRPCLB_ROUTE_TYPE_FALLBACK = 1,
GRPCLB_ROUTE_TYPE_FALLBACK: 'GRPCLB_ROUTE_TYPE_FALLBACK',
/**
* Indicates that a client reached a server as a gRPCLB-given backend.
*/
GRPCLB_ROUTE_TYPE_BACKEND = 2,
}
GRPCLB_ROUTE_TYPE_BACKEND: 'GRPCLB_ROUTE_TYPE_BACKEND',
} as const;
/**
* The type of route that a client took to reach a server w.r.t. gRPCLB.
* The server must fill in "fallback" if it detects that the RPC reached
* the server via the "gRPCLB fallback" path, and "backend" if it detects
* that the RPC reached the server via "gRPCLB backend" path (i.e. if it got
* the address of this server from the gRPCLB server BalanceLoad RPC). Exactly
* how this detection is done is context and server dependent.
*/
export type GrpclbRouteType =
/**
* Server didn't detect the route that a client took to reach it.
*/
| 'GRPCLB_ROUTE_TYPE_UNKNOWN'
| 0
/**
* Indicates that a client reached a server via gRPCLB fallback.
*/
| 'GRPCLB_ROUTE_TYPE_FALLBACK'
| 1
/**
* Indicates that a client reached a server as a gRPCLB-given backend.
*/
| 'GRPCLB_ROUTE_TYPE_BACKEND'
| 2
/**
* The type of route that a client took to reach a server w.r.t. gRPCLB.
* The server must fill in "fallback" if it detects that the RPC reached
* the server via the "gRPCLB fallback" path, and "backend" if it detects
* that the RPC reached the server via "gRPCLB backend" path (i.e. if it got
* the address of this server from the gRPCLB server BalanceLoad RPC). Exactly
* how this detection is done is context and server dependent.
*/
export type GrpclbRouteType__Output = typeof GrpclbRouteType[keyof typeof GrpclbRouteType]

View File

@ -32,16 +32,19 @@ export interface LoadBalancerAccumulatedStatsResponse {
/**
* The total number of RPCs have ever issued for each type.
* Deprecated: use stats_per_method.rpcs_started instead.
* @deprecated
*/
'num_rpcs_started_by_method'?: ({[key: string]: number});
/**
* The total number of RPCs have ever completed successfully for each type.
* Deprecated: use stats_per_method.result instead.
* @deprecated
*/
'num_rpcs_succeeded_by_method'?: ({[key: string]: number});
/**
* The total number of RPCs have ever failed for each type.
* Deprecated: use stats_per_method.result instead.
* @deprecated
*/
'num_rpcs_failed_by_method'?: ({[key: string]: number});
/**
@ -58,21 +61,24 @@ export interface LoadBalancerAccumulatedStatsResponse__Output {
/**
* The total number of RPCs have ever issued for each type.
* Deprecated: use stats_per_method.rpcs_started instead.
* @deprecated
*/
'num_rpcs_started_by_method': ({[key: string]: number});
/**
* The total number of RPCs have ever completed successfully for each type.
* Deprecated: use stats_per_method.result instead.
* @deprecated
*/
'num_rpcs_succeeded_by_method': ({[key: string]: number});
/**
* The total number of RPCs have ever failed for each type.
* Deprecated: use stats_per_method.result instead.
* @deprecated
*/
'num_rpcs_failed_by_method': ({[key: string]: number});
/**
* Per-method RPC statistics. The key is the RpcType in string form; e.g.
* 'EMPTY_CALL' or 'UNARY_CALL'
*/
'stats_per_method'?: ({[key: string]: _grpc_testing_LoadBalancerAccumulatedStatsResponse_MethodStats__Output});
'stats_per_method': ({[key: string]: _grpc_testing_LoadBalancerAccumulatedStatsResponse_MethodStats__Output});
}

View File

@ -36,5 +36,5 @@ export interface LoadBalancerStatsResponse__Output {
* The number of RPCs that failed to record a remote peer.
*/
'num_failures': (number);
'rpcs_by_method'?: ({[key: string]: _grpc_testing_LoadBalancerStatsResponse_RpcsByPeer__Output});
'rpcs_by_method': ({[key: string]: _grpc_testing_LoadBalancerStatsResponse_RpcsByPeer__Output});
}

View File

@ -1,6 +1,7 @@
// Original file: proto/grpc/testing/test.proto
import type * as grpc from '@grpc/grpc-js'
import type { MethodDefinition } from '@grpc/proto-loader'
import type { LoadBalancerAccumulatedStatsRequest as _grpc_testing_LoadBalancerAccumulatedStatsRequest, LoadBalancerAccumulatedStatsRequest__Output as _grpc_testing_LoadBalancerAccumulatedStatsRequest__Output } from '../../grpc/testing/LoadBalancerAccumulatedStatsRequest';
import type { LoadBalancerAccumulatedStatsResponse as _grpc_testing_LoadBalancerAccumulatedStatsResponse, LoadBalancerAccumulatedStatsResponse__Output as _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output } from '../../grpc/testing/LoadBalancerAccumulatedStatsResponse';
import type { LoadBalancerStatsRequest as _grpc_testing_LoadBalancerStatsRequest, LoadBalancerStatsRequest__Output as _grpc_testing_LoadBalancerStatsRequest__Output } from '../../grpc/testing/LoadBalancerStatsRequest';
@ -13,32 +14,32 @@ export interface LoadBalancerStatsServiceClient extends grpc.Client {
/**
* Gets the accumulated stats for RPCs sent by a test client.
*/
GetClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output) => void): grpc.ClientUnaryCall;
GetClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output) => void): grpc.ClientUnaryCall;
GetClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output) => void): grpc.ClientUnaryCall;
GetClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output) => void): grpc.ClientUnaryCall;
GetClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_LoadBalancerAccumulatedStatsResponse__Output>): grpc.ClientUnaryCall;
GetClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_LoadBalancerAccumulatedStatsResponse__Output>): grpc.ClientUnaryCall;
GetClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_LoadBalancerAccumulatedStatsResponse__Output>): grpc.ClientUnaryCall;
GetClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, callback: grpc.requestCallback<_grpc_testing_LoadBalancerAccumulatedStatsResponse__Output>): grpc.ClientUnaryCall;
/**
* Gets the accumulated stats for RPCs sent by a test client.
*/
getClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output) => void): grpc.ClientUnaryCall;
getClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output) => void): grpc.ClientUnaryCall;
getClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output) => void): grpc.ClientUnaryCall;
getClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output) => void): grpc.ClientUnaryCall;
getClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_LoadBalancerAccumulatedStatsResponse__Output>): grpc.ClientUnaryCall;
getClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_LoadBalancerAccumulatedStatsResponse__Output>): grpc.ClientUnaryCall;
getClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_LoadBalancerAccumulatedStatsResponse__Output>): grpc.ClientUnaryCall;
getClientAccumulatedStats(argument: _grpc_testing_LoadBalancerAccumulatedStatsRequest, callback: grpc.requestCallback<_grpc_testing_LoadBalancerAccumulatedStatsResponse__Output>): grpc.ClientUnaryCall;
/**
* Gets the backend distribution for RPCs sent by a test client.
*/
GetClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerStatsResponse__Output) => void): grpc.ClientUnaryCall;
GetClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerStatsResponse__Output) => void): grpc.ClientUnaryCall;
GetClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerStatsResponse__Output) => void): grpc.ClientUnaryCall;
GetClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerStatsResponse__Output) => void): grpc.ClientUnaryCall;
GetClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_LoadBalancerStatsResponse__Output>): grpc.ClientUnaryCall;
GetClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_LoadBalancerStatsResponse__Output>): grpc.ClientUnaryCall;
GetClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_LoadBalancerStatsResponse__Output>): grpc.ClientUnaryCall;
GetClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, callback: grpc.requestCallback<_grpc_testing_LoadBalancerStatsResponse__Output>): grpc.ClientUnaryCall;
/**
* Gets the backend distribution for RPCs sent by a test client.
*/
getClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerStatsResponse__Output) => void): grpc.ClientUnaryCall;
getClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerStatsResponse__Output) => void): grpc.ClientUnaryCall;
getClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerStatsResponse__Output) => void): grpc.ClientUnaryCall;
getClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_LoadBalancerStatsResponse__Output) => void): grpc.ClientUnaryCall;
getClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_LoadBalancerStatsResponse__Output>): grpc.ClientUnaryCall;
getClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_LoadBalancerStatsResponse__Output>): grpc.ClientUnaryCall;
getClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_LoadBalancerStatsResponse__Output>): grpc.ClientUnaryCall;
getClientStats(argument: _grpc_testing_LoadBalancerStatsRequest, callback: grpc.requestCallback<_grpc_testing_LoadBalancerStatsResponse__Output>): grpc.ClientUnaryCall;
}
@ -57,3 +58,8 @@ export interface LoadBalancerStatsServiceHandlers extends grpc.UntypedServiceImp
GetClientStats: grpc.handleUnaryCall<_grpc_testing_LoadBalancerStatsRequest__Output, _grpc_testing_LoadBalancerStatsResponse>;
}
export interface LoadBalancerStatsServiceDefinition extends grpc.ServiceDefinition {
GetClientAccumulatedStats: MethodDefinition<_grpc_testing_LoadBalancerAccumulatedStatsRequest, _grpc_testing_LoadBalancerAccumulatedStatsResponse, _grpc_testing_LoadBalancerAccumulatedStatsRequest__Output, _grpc_testing_LoadBalancerAccumulatedStatsResponse__Output>
GetClientStats: MethodDefinition<_grpc_testing_LoadBalancerStatsRequest, _grpc_testing_LoadBalancerStatsResponse, _grpc_testing_LoadBalancerStatsRequest__Output, _grpc_testing_LoadBalancerStatsResponse__Output>
}

View File

@ -1,6 +1,6 @@
// Original file: proto/grpc/testing/messages.proto
import type { PayloadType as _grpc_testing_PayloadType } from '../../grpc/testing/PayloadType';
import type { PayloadType as _grpc_testing_PayloadType, PayloadType__Output as _grpc_testing_PayloadType__Output } from '../../grpc/testing/PayloadType';
/**
* A block of data, to simply increase gRPC message size.
@ -9,7 +9,7 @@ export interface Payload {
/**
* The type of data in body.
*/
'type'?: (_grpc_testing_PayloadType | keyof typeof _grpc_testing_PayloadType);
'type'?: (_grpc_testing_PayloadType);
/**
* Primary contents of payload.
*/
@ -23,7 +23,7 @@ export interface Payload__Output {
/**
* The type of data in body.
*/
'type': (keyof typeof _grpc_testing_PayloadType);
'type': (_grpc_testing_PayloadType__Output);
/**
* Primary contents of payload.
*/

View File

@ -3,9 +3,24 @@
/**
* The type of payload that should be returned.
*/
export enum PayloadType {
export const PayloadType = {
/**
* Compressable text format.
*/
COMPRESSABLE = 0,
}
COMPRESSABLE: 'COMPRESSABLE',
} as const;
/**
* The type of payload that should be returned.
*/
export type PayloadType =
/**
* Compressable text format.
*/
| 'COMPRESSABLE'
| 0
/**
* The type of payload that should be returned.
*/
export type PayloadType__Output = typeof PayloadType[keyof typeof PayloadType]

View File

@ -1,6 +1,7 @@
// Original file: proto/grpc/testing/test.proto
import type * as grpc from '@grpc/grpc-js'
import type { MethodDefinition } from '@grpc/proto-loader'
import type { Empty as _grpc_testing_Empty, Empty__Output as _grpc_testing_Empty__Output } from '../../grpc/testing/Empty';
import type { ReconnectInfo as _grpc_testing_ReconnectInfo, ReconnectInfo__Output as _grpc_testing_ReconnectInfo__Output } from '../../grpc/testing/ReconnectInfo';
import type { ReconnectParams as _grpc_testing_ReconnectParams, ReconnectParams__Output as _grpc_testing_ReconnectParams__Output } from '../../grpc/testing/ReconnectParams';
@ -9,23 +10,23 @@ import type { ReconnectParams as _grpc_testing_ReconnectParams, ReconnectParams_
* A service used to control reconnect server.
*/
export interface ReconnectServiceClient extends grpc.Client {
Start(argument: _grpc_testing_ReconnectParams, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
Start(argument: _grpc_testing_ReconnectParams, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
Start(argument: _grpc_testing_ReconnectParams, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
Start(argument: _grpc_testing_ReconnectParams, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
start(argument: _grpc_testing_ReconnectParams, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
start(argument: _grpc_testing_ReconnectParams, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
start(argument: _grpc_testing_ReconnectParams, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
start(argument: _grpc_testing_ReconnectParams, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
Start(argument: _grpc_testing_ReconnectParams, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
Start(argument: _grpc_testing_ReconnectParams, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
Start(argument: _grpc_testing_ReconnectParams, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
Start(argument: _grpc_testing_ReconnectParams, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
start(argument: _grpc_testing_ReconnectParams, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
start(argument: _grpc_testing_ReconnectParams, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
start(argument: _grpc_testing_ReconnectParams, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
start(argument: _grpc_testing_ReconnectParams, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
Stop(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ReconnectInfo__Output) => void): grpc.ClientUnaryCall;
Stop(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ReconnectInfo__Output) => void): grpc.ClientUnaryCall;
Stop(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ReconnectInfo__Output) => void): grpc.ClientUnaryCall;
Stop(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ReconnectInfo__Output) => void): grpc.ClientUnaryCall;
stop(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ReconnectInfo__Output) => void): grpc.ClientUnaryCall;
stop(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ReconnectInfo__Output) => void): grpc.ClientUnaryCall;
stop(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ReconnectInfo__Output) => void): grpc.ClientUnaryCall;
stop(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ReconnectInfo__Output) => void): grpc.ClientUnaryCall;
Stop(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_ReconnectInfo__Output>): grpc.ClientUnaryCall;
Stop(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_ReconnectInfo__Output>): grpc.ClientUnaryCall;
Stop(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_ReconnectInfo__Output>): grpc.ClientUnaryCall;
Stop(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_ReconnectInfo__Output>): grpc.ClientUnaryCall;
stop(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_ReconnectInfo__Output>): grpc.ClientUnaryCall;
stop(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_ReconnectInfo__Output>): grpc.ClientUnaryCall;
stop(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_ReconnectInfo__Output>): grpc.ClientUnaryCall;
stop(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_ReconnectInfo__Output>): grpc.ClientUnaryCall;
}
@ -38,3 +39,8 @@ export interface ReconnectServiceHandlers extends grpc.UntypedServiceImplementat
Stop: grpc.handleUnaryCall<_grpc_testing_Empty__Output, _grpc_testing_ReconnectInfo>;
}
export interface ReconnectServiceDefinition extends grpc.ServiceDefinition {
Start: MethodDefinition<_grpc_testing_ReconnectParams, _grpc_testing_Empty, _grpc_testing_ReconnectParams__Output, _grpc_testing_Empty__Output>
Stop: MethodDefinition<_grpc_testing_Empty, _grpc_testing_ReconnectInfo, _grpc_testing_Empty__Output, _grpc_testing_ReconnectInfo__Output>
}

View File

@ -21,7 +21,7 @@ export interface ResponseParameters {
* implement the full compression tests by introspecting the call to verify
* the response's compression status.
*/
'compressed'?: (_grpc_testing_BoolValue);
'compressed'?: (_grpc_testing_BoolValue | null);
}
/**
@ -43,5 +43,5 @@ export interface ResponseParameters__Output {
* implement the full compression tests by introspecting the call to verify
* the response's compression status.
*/
'compressed'?: (_grpc_testing_BoolValue__Output);
'compressed': (_grpc_testing_BoolValue__Output | null);
}

View File

@ -1,6 +1,6 @@
// Original file: proto/grpc/testing/messages.proto
import type { PayloadType as _grpc_testing_PayloadType } from '../../grpc/testing/PayloadType';
import type { PayloadType as _grpc_testing_PayloadType, PayloadType__Output as _grpc_testing_PayloadType__Output } from '../../grpc/testing/PayloadType';
import type { Payload as _grpc_testing_Payload, Payload__Output as _grpc_testing_Payload__Output } from '../../grpc/testing/Payload';
import type { BoolValue as _grpc_testing_BoolValue, BoolValue__Output as _grpc_testing_BoolValue__Output } from '../../grpc/testing/BoolValue';
import type { EchoStatus as _grpc_testing_EchoStatus, EchoStatus__Output as _grpc_testing_EchoStatus__Output } from '../../grpc/testing/EchoStatus';
@ -13,7 +13,7 @@ export interface SimpleRequest {
* Desired payload type in the response from the server.
* If response_type is RANDOM, server randomly chooses one from other formats.
*/
'response_type'?: (_grpc_testing_PayloadType | keyof typeof _grpc_testing_PayloadType);
'response_type'?: (_grpc_testing_PayloadType);
/**
* Desired payload size in the response from the server.
*/
@ -21,7 +21,7 @@ export interface SimpleRequest {
/**
* Optional input payload sent along with the request.
*/
'payload'?: (_grpc_testing_Payload);
'payload'?: (_grpc_testing_Payload | null);
/**
* Whether SimpleResponse should include username.
*/
@ -36,15 +36,15 @@ export interface SimpleRequest {
* implement the full compression tests by introspecting the call to verify
* the response's compression status.
*/
'response_compressed'?: (_grpc_testing_BoolValue);
'response_compressed'?: (_grpc_testing_BoolValue | null);
/**
* Whether server should return a given status
*/
'response_status'?: (_grpc_testing_EchoStatus);
'response_status'?: (_grpc_testing_EchoStatus | null);
/**
* Whether the server should expect this request to be compressed.
*/
'expect_compressed'?: (_grpc_testing_BoolValue);
'expect_compressed'?: (_grpc_testing_BoolValue | null);
/**
* Whether SimpleResponse should include server_id.
*/
@ -63,7 +63,7 @@ export interface SimpleRequest__Output {
* Desired payload type in the response from the server.
* If response_type is RANDOM, server randomly chooses one from other formats.
*/
'response_type': (keyof typeof _grpc_testing_PayloadType);
'response_type': (_grpc_testing_PayloadType__Output);
/**
* Desired payload size in the response from the server.
*/
@ -71,7 +71,7 @@ export interface SimpleRequest__Output {
/**
* Optional input payload sent along with the request.
*/
'payload'?: (_grpc_testing_Payload__Output);
'payload': (_grpc_testing_Payload__Output | null);
/**
* Whether SimpleResponse should include username.
*/
@ -86,15 +86,15 @@ export interface SimpleRequest__Output {
* implement the full compression tests by introspecting the call to verify
* the response's compression status.
*/
'response_compressed'?: (_grpc_testing_BoolValue__Output);
'response_compressed': (_grpc_testing_BoolValue__Output | null);
/**
* Whether server should return a given status
*/
'response_status'?: (_grpc_testing_EchoStatus__Output);
'response_status': (_grpc_testing_EchoStatus__Output | null);
/**
* Whether the server should expect this request to be compressed.
*/
'expect_compressed'?: (_grpc_testing_BoolValue__Output);
'expect_compressed': (_grpc_testing_BoolValue__Output | null);
/**
* Whether SimpleResponse should include server_id.
*/

View File

@ -1,7 +1,7 @@
// Original file: proto/grpc/testing/messages.proto
import type { Payload as _grpc_testing_Payload, Payload__Output as _grpc_testing_Payload__Output } from '../../grpc/testing/Payload';
import type { GrpclbRouteType as _grpc_testing_GrpclbRouteType } from '../../grpc/testing/GrpclbRouteType';
import type { GrpclbRouteType as _grpc_testing_GrpclbRouteType, GrpclbRouteType__Output as _grpc_testing_GrpclbRouteType__Output } from '../../grpc/testing/GrpclbRouteType';
/**
* Unary response, as configured by the request.
@ -10,7 +10,7 @@ export interface SimpleResponse {
/**
* Payload to increase message size.
*/
'payload'?: (_grpc_testing_Payload);
'payload'?: (_grpc_testing_Payload | null);
/**
* The user the request came from, for verifying authentication was
* successful when the client expected it.
@ -28,7 +28,7 @@ export interface SimpleResponse {
/**
* gRPCLB Path.
*/
'grpclb_route_type'?: (_grpc_testing_GrpclbRouteType | keyof typeof _grpc_testing_GrpclbRouteType);
'grpclb_route_type'?: (_grpc_testing_GrpclbRouteType);
/**
* Server hostname.
*/
@ -42,7 +42,7 @@ export interface SimpleResponse__Output {
/**
* Payload to increase message size.
*/
'payload'?: (_grpc_testing_Payload__Output);
'payload': (_grpc_testing_Payload__Output | null);
/**
* The user the request came from, for verifying authentication was
* successful when the client expected it.
@ -60,7 +60,7 @@ export interface SimpleResponse__Output {
/**
* gRPCLB Path.
*/
'grpclb_route_type': (keyof typeof _grpc_testing_GrpclbRouteType);
'grpclb_route_type': (_grpc_testing_GrpclbRouteType__Output);
/**
* Server hostname.
*/

View File

@ -10,14 +10,14 @@ export interface StreamingInputCallRequest {
/**
* Optional input payload sent along with the request.
*/
'payload'?: (_grpc_testing_Payload);
'payload'?: (_grpc_testing_Payload | null);
/**
* Whether the server should expect this request to be compressed. This field
* is "nullable" in order to interoperate seamlessly with servers not able to
* implement the full compression tests by introspecting the call to verify
* the request's compression status.
*/
'expect_compressed'?: (_grpc_testing_BoolValue);
'expect_compressed'?: (_grpc_testing_BoolValue | null);
}
/**
@ -27,12 +27,12 @@ export interface StreamingInputCallRequest__Output {
/**
* Optional input payload sent along with the request.
*/
'payload'?: (_grpc_testing_Payload__Output);
'payload': (_grpc_testing_Payload__Output | null);
/**
* Whether the server should expect this request to be compressed. This field
* is "nullable" in order to interoperate seamlessly with servers not able to
* implement the full compression tests by introspecting the call to verify
* the request's compression status.
*/
'expect_compressed'?: (_grpc_testing_BoolValue__Output);
'expect_compressed': (_grpc_testing_BoolValue__Output | null);
}

View File

@ -1,6 +1,6 @@
// Original file: proto/grpc/testing/messages.proto
import type { PayloadType as _grpc_testing_PayloadType } from '../../grpc/testing/PayloadType';
import type { PayloadType as _grpc_testing_PayloadType, PayloadType__Output as _grpc_testing_PayloadType__Output } from '../../grpc/testing/PayloadType';
import type { ResponseParameters as _grpc_testing_ResponseParameters, ResponseParameters__Output as _grpc_testing_ResponseParameters__Output } from '../../grpc/testing/ResponseParameters';
import type { Payload as _grpc_testing_Payload, Payload__Output as _grpc_testing_Payload__Output } from '../../grpc/testing/Payload';
import type { EchoStatus as _grpc_testing_EchoStatus, EchoStatus__Output as _grpc_testing_EchoStatus__Output } from '../../grpc/testing/EchoStatus';
@ -15,7 +15,7 @@ export interface StreamingOutputCallRequest {
* might be of different types. This is to simulate a mixed type of payload
* stream.
*/
'response_type'?: (_grpc_testing_PayloadType | keyof typeof _grpc_testing_PayloadType);
'response_type'?: (_grpc_testing_PayloadType);
/**
* Configuration for each expected response message.
*/
@ -23,11 +23,11 @@ export interface StreamingOutputCallRequest {
/**
* Optional input payload sent along with the request.
*/
'payload'?: (_grpc_testing_Payload);
'payload'?: (_grpc_testing_Payload | null);
/**
* Whether server should return a given status
*/
'response_status'?: (_grpc_testing_EchoStatus);
'response_status'?: (_grpc_testing_EchoStatus | null);
}
/**
@ -40,7 +40,7 @@ export interface StreamingOutputCallRequest__Output {
* might be of different types. This is to simulate a mixed type of payload
* stream.
*/
'response_type': (keyof typeof _grpc_testing_PayloadType);
'response_type': (_grpc_testing_PayloadType__Output);
/**
* Configuration for each expected response message.
*/
@ -48,9 +48,9 @@ export interface StreamingOutputCallRequest__Output {
/**
* Optional input payload sent along with the request.
*/
'payload'?: (_grpc_testing_Payload__Output);
'payload': (_grpc_testing_Payload__Output | null);
/**
* Whether server should return a given status
*/
'response_status'?: (_grpc_testing_EchoStatus__Output);
'response_status': (_grpc_testing_EchoStatus__Output | null);
}

View File

@ -9,7 +9,7 @@ export interface StreamingOutputCallResponse {
/**
* Payload to increase response size.
*/
'payload'?: (_grpc_testing_Payload);
'payload'?: (_grpc_testing_Payload | null);
}
/**
@ -19,5 +19,5 @@ export interface StreamingOutputCallResponse__Output {
/**
* Payload to increase response size.
*/
'payload'?: (_grpc_testing_Payload__Output);
'payload': (_grpc_testing_Payload__Output | null);
}

View File

@ -1,6 +1,7 @@
// Original file: proto/grpc/testing/test.proto
import type * as grpc from '@grpc/grpc-js'
import type { MethodDefinition } from '@grpc/proto-loader'
import type { Empty as _grpc_testing_Empty, Empty__Output as _grpc_testing_Empty__Output } from '../../grpc/testing/Empty';
import type { SimpleRequest as _grpc_testing_SimpleRequest, SimpleRequest__Output as _grpc_testing_SimpleRequest__Output } from '../../grpc/testing/SimpleRequest';
import type { SimpleResponse as _grpc_testing_SimpleResponse, SimpleResponse__Output as _grpc_testing_SimpleResponse__Output } from '../../grpc/testing/SimpleResponse';
@ -19,34 +20,34 @@ export interface TestServiceClient extends grpc.Client {
* headers set such that a caching HTTP proxy (such as GFE) can
* satisfy subsequent requests.
*/
CacheableUnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
CacheableUnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
CacheableUnaryCall(argument: _grpc_testing_SimpleRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
CacheableUnaryCall(argument: _grpc_testing_SimpleRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
CacheableUnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
CacheableUnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
CacheableUnaryCall(argument: _grpc_testing_SimpleRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
CacheableUnaryCall(argument: _grpc_testing_SimpleRequest, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
/**
* One request followed by one response. Response has cache control
* headers set such that a caching HTTP proxy (such as GFE) can
* satisfy subsequent requests.
*/
cacheableUnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
cacheableUnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
cacheableUnaryCall(argument: _grpc_testing_SimpleRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
cacheableUnaryCall(argument: _grpc_testing_SimpleRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
cacheableUnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
cacheableUnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
cacheableUnaryCall(argument: _grpc_testing_SimpleRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
cacheableUnaryCall(argument: _grpc_testing_SimpleRequest, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
/**
* One empty request followed by one empty response.
*/
EmptyCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
EmptyCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
EmptyCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
EmptyCall(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
EmptyCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
EmptyCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
EmptyCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
EmptyCall(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
/**
* One empty request followed by one empty response.
*/
emptyCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
emptyCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
emptyCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
emptyCall(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
emptyCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
emptyCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
emptyCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
emptyCall(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
/**
* A sequence of requests with each request served by the server immediately.
@ -84,18 +85,18 @@ export interface TestServiceClient extends grpc.Client {
* A sequence of requests followed by one response (streamed upload).
* The server returns the aggregated size of client payload as the result.
*/
StreamingInputCall(metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_StreamingInputCallResponse__Output) => void): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
StreamingInputCall(metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_StreamingInputCallResponse__Output) => void): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
StreamingInputCall(options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_StreamingInputCallResponse__Output) => void): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
StreamingInputCall(callback: (error?: grpc.ServiceError, result?: _grpc_testing_StreamingInputCallResponse__Output) => void): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
StreamingInputCall(metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_StreamingInputCallResponse__Output>): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
StreamingInputCall(metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_StreamingInputCallResponse__Output>): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
StreamingInputCall(options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_StreamingInputCallResponse__Output>): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
StreamingInputCall(callback: grpc.requestCallback<_grpc_testing_StreamingInputCallResponse__Output>): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
/**
* A sequence of requests followed by one response (streamed upload).
* The server returns the aggregated size of client payload as the result.
*/
streamingInputCall(metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_StreamingInputCallResponse__Output) => void): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
streamingInputCall(metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_StreamingInputCallResponse__Output) => void): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
streamingInputCall(options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_StreamingInputCallResponse__Output) => void): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
streamingInputCall(callback: (error?: grpc.ServiceError, result?: _grpc_testing_StreamingInputCallResponse__Output) => void): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
streamingInputCall(metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_StreamingInputCallResponse__Output>): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
streamingInputCall(metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_StreamingInputCallResponse__Output>): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
streamingInputCall(options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_StreamingInputCallResponse__Output>): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
streamingInputCall(callback: grpc.requestCallback<_grpc_testing_StreamingInputCallResponse__Output>): grpc.ClientWritableStream<_grpc_testing_StreamingInputCallRequest>;
/**
* One request followed by a sequence of responses (streamed download).
@ -113,34 +114,34 @@ export interface TestServiceClient extends grpc.Client {
/**
* One request followed by one response.
*/
UnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
UnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
UnaryCall(argument: _grpc_testing_SimpleRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
UnaryCall(argument: _grpc_testing_SimpleRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
UnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
UnaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
UnaryCall(argument: _grpc_testing_SimpleRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
UnaryCall(argument: _grpc_testing_SimpleRequest, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
/**
* One request followed by one response.
*/
unaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
unaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
unaryCall(argument: _grpc_testing_SimpleRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
unaryCall(argument: _grpc_testing_SimpleRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_SimpleResponse__Output) => void): grpc.ClientUnaryCall;
unaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
unaryCall(argument: _grpc_testing_SimpleRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
unaryCall(argument: _grpc_testing_SimpleRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
unaryCall(argument: _grpc_testing_SimpleRequest, callback: grpc.requestCallback<_grpc_testing_SimpleResponse__Output>): grpc.ClientUnaryCall;
/**
* The test server will not implement this method. It will be used
* to test the behavior when clients call unimplemented methods.
*/
UnimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
/**
* The test server will not implement this method. It will be used
* to test the behavior when clients call unimplemented methods.
*/
unimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
}
@ -200,3 +201,14 @@ export interface TestServiceHandlers extends grpc.UntypedServiceImplementation {
UnimplementedCall: grpc.handleUnaryCall<_grpc_testing_Empty__Output, _grpc_testing_Empty>;
}
export interface TestServiceDefinition extends grpc.ServiceDefinition {
CacheableUnaryCall: MethodDefinition<_grpc_testing_SimpleRequest, _grpc_testing_SimpleResponse, _grpc_testing_SimpleRequest__Output, _grpc_testing_SimpleResponse__Output>
EmptyCall: MethodDefinition<_grpc_testing_Empty, _grpc_testing_Empty, _grpc_testing_Empty__Output, _grpc_testing_Empty__Output>
FullDuplexCall: MethodDefinition<_grpc_testing_StreamingOutputCallRequest, _grpc_testing_StreamingOutputCallResponse, _grpc_testing_StreamingOutputCallRequest__Output, _grpc_testing_StreamingOutputCallResponse__Output>
HalfDuplexCall: MethodDefinition<_grpc_testing_StreamingOutputCallRequest, _grpc_testing_StreamingOutputCallResponse, _grpc_testing_StreamingOutputCallRequest__Output, _grpc_testing_StreamingOutputCallResponse__Output>
StreamingInputCall: MethodDefinition<_grpc_testing_StreamingInputCallRequest, _grpc_testing_StreamingInputCallResponse, _grpc_testing_StreamingInputCallRequest__Output, _grpc_testing_StreamingInputCallResponse__Output>
StreamingOutputCall: MethodDefinition<_grpc_testing_StreamingOutputCallRequest, _grpc_testing_StreamingOutputCallResponse, _grpc_testing_StreamingOutputCallRequest__Output, _grpc_testing_StreamingOutputCallResponse__Output>
UnaryCall: MethodDefinition<_grpc_testing_SimpleRequest, _grpc_testing_SimpleResponse, _grpc_testing_SimpleRequest__Output, _grpc_testing_SimpleResponse__Output>
UnimplementedCall: MethodDefinition<_grpc_testing_Empty, _grpc_testing_Empty, _grpc_testing_Empty__Output, _grpc_testing_Empty__Output>
}

View File

@ -1,6 +1,7 @@
// Original file: proto/grpc/testing/test.proto
import type * as grpc from '@grpc/grpc-js'
import type { MethodDefinition } from '@grpc/proto-loader'
import type { Empty as _grpc_testing_Empty, Empty__Output as _grpc_testing_Empty__Output } from '../../grpc/testing/Empty';
/**
@ -11,17 +12,17 @@ export interface UnimplementedServiceClient extends grpc.Client {
/**
* A call that no server should implement
*/
UnimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
UnimplementedCall(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
/**
* A call that no server should implement
*/
unimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
unimplementedCall(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
}
@ -36,3 +37,7 @@ export interface UnimplementedServiceHandlers extends grpc.UntypedServiceImpleme
UnimplementedCall: grpc.handleUnaryCall<_grpc_testing_Empty__Output, _grpc_testing_Empty>;
}
export interface UnimplementedServiceDefinition extends grpc.ServiceDefinition {
UnimplementedCall: MethodDefinition<_grpc_testing_Empty, _grpc_testing_Empty, _grpc_testing_Empty__Output, _grpc_testing_Empty__Output>
}

View File

@ -1,6 +1,7 @@
// Original file: proto/grpc/testing/test.proto
import type * as grpc from '@grpc/grpc-js'
import type { MethodDefinition } from '@grpc/proto-loader'
import type { ClientConfigureRequest as _grpc_testing_ClientConfigureRequest, ClientConfigureRequest__Output as _grpc_testing_ClientConfigureRequest__Output } from '../../grpc/testing/ClientConfigureRequest';
import type { ClientConfigureResponse as _grpc_testing_ClientConfigureResponse, ClientConfigureResponse__Output as _grpc_testing_ClientConfigureResponse__Output } from '../../grpc/testing/ClientConfigureResponse';
@ -11,17 +12,17 @@ export interface XdsUpdateClientConfigureServiceClient extends grpc.Client {
/**
* Update the tes client's configuration.
*/
Configure(argument: _grpc_testing_ClientConfigureRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ClientConfigureResponse__Output) => void): grpc.ClientUnaryCall;
Configure(argument: _grpc_testing_ClientConfigureRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ClientConfigureResponse__Output) => void): grpc.ClientUnaryCall;
Configure(argument: _grpc_testing_ClientConfigureRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ClientConfigureResponse__Output) => void): grpc.ClientUnaryCall;
Configure(argument: _grpc_testing_ClientConfigureRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ClientConfigureResponse__Output) => void): grpc.ClientUnaryCall;
Configure(argument: _grpc_testing_ClientConfigureRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_ClientConfigureResponse__Output>): grpc.ClientUnaryCall;
Configure(argument: _grpc_testing_ClientConfigureRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_ClientConfigureResponse__Output>): grpc.ClientUnaryCall;
Configure(argument: _grpc_testing_ClientConfigureRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_ClientConfigureResponse__Output>): grpc.ClientUnaryCall;
Configure(argument: _grpc_testing_ClientConfigureRequest, callback: grpc.requestCallback<_grpc_testing_ClientConfigureResponse__Output>): grpc.ClientUnaryCall;
/**
* Update the tes client's configuration.
*/
configure(argument: _grpc_testing_ClientConfigureRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ClientConfigureResponse__Output) => void): grpc.ClientUnaryCall;
configure(argument: _grpc_testing_ClientConfigureRequest, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ClientConfigureResponse__Output) => void): grpc.ClientUnaryCall;
configure(argument: _grpc_testing_ClientConfigureRequest, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ClientConfigureResponse__Output) => void): grpc.ClientUnaryCall;
configure(argument: _grpc_testing_ClientConfigureRequest, callback: (error?: grpc.ServiceError, result?: _grpc_testing_ClientConfigureResponse__Output) => void): grpc.ClientUnaryCall;
configure(argument: _grpc_testing_ClientConfigureRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_ClientConfigureResponse__Output>): grpc.ClientUnaryCall;
configure(argument: _grpc_testing_ClientConfigureRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_ClientConfigureResponse__Output>): grpc.ClientUnaryCall;
configure(argument: _grpc_testing_ClientConfigureRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_ClientConfigureResponse__Output>): grpc.ClientUnaryCall;
configure(argument: _grpc_testing_ClientConfigureRequest, callback: grpc.requestCallback<_grpc_testing_ClientConfigureResponse__Output>): grpc.ClientUnaryCall;
}
@ -35,3 +36,7 @@ export interface XdsUpdateClientConfigureServiceHandlers extends grpc.UntypedSer
Configure: grpc.handleUnaryCall<_grpc_testing_ClientConfigureRequest__Output, _grpc_testing_ClientConfigureResponse>;
}
export interface XdsUpdateClientConfigureServiceDefinition extends grpc.ServiceDefinition {
Configure: MethodDefinition<_grpc_testing_ClientConfigureRequest, _grpc_testing_ClientConfigureResponse, _grpc_testing_ClientConfigureRequest__Output, _grpc_testing_ClientConfigureResponse__Output>
}

View File

@ -1,29 +1,30 @@
// Original file: proto/grpc/testing/test.proto
import type * as grpc from '@grpc/grpc-js'
import type { MethodDefinition } from '@grpc/proto-loader'
import type { Empty as _grpc_testing_Empty, Empty__Output as _grpc_testing_Empty__Output } from '../../grpc/testing/Empty';
/**
* A service to remotely control health status of an xDS test server.
*/
export interface XdsUpdateHealthServiceClient extends grpc.Client {
SetNotServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
SetNotServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
SetNotServing(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
SetNotServing(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
setNotServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
setNotServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
setNotServing(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
setNotServing(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
SetNotServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
SetNotServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
SetNotServing(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
SetNotServing(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
setNotServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
setNotServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
setNotServing(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
setNotServing(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
SetServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
SetServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
SetServing(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
SetServing(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
setServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
setServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
setServing(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
setServing(argument: _grpc_testing_Empty, callback: (error?: grpc.ServiceError, result?: _grpc_testing_Empty__Output) => void): grpc.ClientUnaryCall;
SetServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
SetServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
SetServing(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
SetServing(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
setServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
setServing(argument: _grpc_testing_Empty, metadata: grpc.Metadata, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
setServing(argument: _grpc_testing_Empty, options: grpc.CallOptions, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
setServing(argument: _grpc_testing_Empty, callback: grpc.requestCallback<_grpc_testing_Empty__Output>): grpc.ClientUnaryCall;
}
@ -36,3 +37,8 @@ export interface XdsUpdateHealthServiceHandlers extends grpc.UntypedServiceImple
SetServing: grpc.handleUnaryCall<_grpc_testing_Empty__Output, _grpc_testing_Empty>;
}
export interface XdsUpdateHealthServiceDefinition extends grpc.ServiceDefinition {
SetNotServing: MethodDefinition<_grpc_testing_Empty, _grpc_testing_Empty, _grpc_testing_Empty__Output, _grpc_testing_Empty__Output>
SetServing: MethodDefinition<_grpc_testing_Empty, _grpc_testing_Empty, _grpc_testing_Empty__Output, _grpc_testing_Empty__Output>
}

View File

@ -1,12 +1,12 @@
import type * as grpc from '@grpc/grpc-js';
import type { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader';
import type { EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader';
import type { LoadBalancerStatsServiceClient as _grpc_testing_LoadBalancerStatsServiceClient } from './grpc/testing/LoadBalancerStatsService';
import type { ReconnectServiceClient as _grpc_testing_ReconnectServiceClient } from './grpc/testing/ReconnectService';
import type { TestServiceClient as _grpc_testing_TestServiceClient } from './grpc/testing/TestService';
import type { UnimplementedServiceClient as _grpc_testing_UnimplementedServiceClient } from './grpc/testing/UnimplementedService';
import type { XdsUpdateClientConfigureServiceClient as _grpc_testing_XdsUpdateClientConfigureServiceClient } from './grpc/testing/XdsUpdateClientConfigureService';
import type { XdsUpdateHealthServiceClient as _grpc_testing_XdsUpdateHealthServiceClient } from './grpc/testing/XdsUpdateHealthService';
import type { LoadBalancerStatsServiceClient as _grpc_testing_LoadBalancerStatsServiceClient, LoadBalancerStatsServiceDefinition as _grpc_testing_LoadBalancerStatsServiceDefinition } from './grpc/testing/LoadBalancerStatsService';
import type { ReconnectServiceClient as _grpc_testing_ReconnectServiceClient, ReconnectServiceDefinition as _grpc_testing_ReconnectServiceDefinition } from './grpc/testing/ReconnectService';
import type { TestServiceClient as _grpc_testing_TestServiceClient, TestServiceDefinition as _grpc_testing_TestServiceDefinition } from './grpc/testing/TestService';
import type { UnimplementedServiceClient as _grpc_testing_UnimplementedServiceClient, UnimplementedServiceDefinition as _grpc_testing_UnimplementedServiceDefinition } from './grpc/testing/UnimplementedService';
import type { XdsUpdateClientConfigureServiceClient as _grpc_testing_XdsUpdateClientConfigureServiceClient, XdsUpdateClientConfigureServiceDefinition as _grpc_testing_XdsUpdateClientConfigureServiceDefinition } from './grpc/testing/XdsUpdateClientConfigureService';
import type { XdsUpdateHealthServiceClient as _grpc_testing_XdsUpdateHealthServiceClient, XdsUpdateHealthServiceDefinition as _grpc_testing_XdsUpdateHealthServiceDefinition } from './grpc/testing/XdsUpdateHealthService';
type SubtypeConstructor<Constructor extends new (...args: any) => any, Subtype> = {
new(...args: ConstructorParameters<Constructor>): Subtype;
@ -28,7 +28,7 @@ export interface ProtoGrpcType {
/**
* A service used to obtain stats for verifying LB behavior.
*/
LoadBalancerStatsService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_LoadBalancerStatsServiceClient> & { service: ServiceDefinition }
LoadBalancerStatsService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_LoadBalancerStatsServiceClient> & { service: _grpc_testing_LoadBalancerStatsServiceDefinition }
Payload: MessageTypeDefinition
PayloadType: EnumTypeDefinition
ReconnectInfo: MessageTypeDefinition
@ -36,7 +36,7 @@ export interface ProtoGrpcType {
/**
* A service used to control reconnect server.
*/
ReconnectService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_ReconnectServiceClient> & { service: ServiceDefinition }
ReconnectService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_ReconnectServiceClient> & { service: _grpc_testing_ReconnectServiceDefinition }
ResponseParameters: MessageTypeDefinition
SimpleRequest: MessageTypeDefinition
SimpleResponse: MessageTypeDefinition
@ -48,20 +48,20 @@ export interface ProtoGrpcType {
* A simple service to test the various types of RPCs and experiment with
* performance with various types of payload.
*/
TestService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_TestServiceClient> & { service: ServiceDefinition }
TestService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_TestServiceClient> & { service: _grpc_testing_TestServiceDefinition }
/**
* A simple service NOT implemented at servers so clients can test for
* that case.
*/
UnimplementedService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_UnimplementedServiceClient> & { service: ServiceDefinition }
UnimplementedService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_UnimplementedServiceClient> & { service: _grpc_testing_UnimplementedServiceDefinition }
/**
* A service to dynamically update the configuration of an xDS test client.
*/
XdsUpdateClientConfigureService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_XdsUpdateClientConfigureServiceClient> & { service: ServiceDefinition }
XdsUpdateClientConfigureService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_XdsUpdateClientConfigureServiceClient> & { service: _grpc_testing_XdsUpdateClientConfigureServiceDefinition }
/**
* A service to remotely control health status of an xDS test server.
*/
XdsUpdateHealthService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_XdsUpdateHealthServiceClient> & { service: ServiceDefinition }
XdsUpdateHealthService: SubtypeConstructor<typeof grpc.Client, _grpc_testing_XdsUpdateHealthServiceClient> & { service: _grpc_testing_XdsUpdateHealthServiceDefinition }
}
}
}

View File

@ -398,7 +398,7 @@ function makeSingleRequest(client: TestServiceClient, type: CallType, failOnFail
const startTime = process.hrtime.bigint();
const deadline = new Date();
deadline.setSeconds(deadline.getSeconds() + currentConfig.timeoutSec);
const callback = (error: grpc.ServiceError | undefined, value: Empty__Output | undefined) => {
const callback = (error: grpc.ServiceError | null, value: Empty__Output | undefined) => {
const statusCode = error?.code ?? grpc.status.OK;
const duration = process.hrtime.bigint() - startTime;
const durationSeconds = Number(duration / TIMESTAMP_ONE_SECOND) | 0;

View File

@ -1,6 +1,6 @@
{
"name": "@grpc/grpc-js-xds",
"version": "1.9.2",
"version": "1.10.1",
"description": "Plugin for @grpc/grpc-js. Adds the xds:// URL scheme and associated features.",
"main": "build/src/index.js",
"scripts": {
@ -12,7 +12,7 @@
"prepare": "npm run generate-types && npm run compile",
"pretest": "npm run compile",
"posttest": "npm run check",
"generate-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --includeComments --includeDirs deps/envoy-api/ deps/xds/ deps/googleapis/ deps/protoc-gen-validate/ -O src/generated/ --grpcLib @grpc/grpc-js 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 udpa/type/v1/typed_struct.proto xds/type/v3/typed_struct.proto envoy/extensions/filters/http/fault/v3/fault.proto envoy/service/status/v3/csds.proto envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.proto envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.proto envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.proto",
"generate-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --includeComments --includeDirs deps/envoy-api/ deps/xds/ deps/googleapis/ deps/protoc-gen-validate/ -O src/generated/ --grpcLib @grpc/grpc-js 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 udpa/type/v1/typed_struct.proto xds/type/v3/typed_struct.proto envoy/extensions/filters/http/fault/v3/fault.proto envoy/service/status/v3/csds.proto envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.proto envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.proto envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.proto envoy/extensions/clusters/aggregate/v3/cluster.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",
"generate-test-types": "proto-loader-gen-types --keep-case --longs String --enums String --defaults --oneofs --json --includeComments --includeDirs proto/ -O test/generated --grpcLib @grpc/grpc-js grpc/testing/echo.proto"
},
@ -33,6 +33,7 @@
"homepage": "https://github.com/grpc/grpc-node#readme",
"devDependencies": {
"@grpc/grpc-js": "file:../grpc-js",
"@grpc/proto-loader": "file:../proto-loader",
"@types/gulp": "^4.0.6",
"@types/gulp-mocha": "0.0.32",
"@types/mocha": "^5.2.6",
@ -40,18 +41,18 @@
"@types/yargs": "^15.0.5",
"find-free-ports": "^3.1.1",
"gts": "^5.0.1",
"typescript": "^4.9.5",
"typescript": "^5.1.3",
"yargs": "^15.4.1"
},
"dependencies": {
"@grpc/proto-loader": "^0.6.0",
"@grpc/proto-loader": "^0.7.13",
"google-auth-library": "^7.0.2",
"re2-wasm": "^1.0.1",
"vscode-uri": "^3.0.7",
"xxhash-wasm": "^1.0.2"
},
"peerDependencies": {
"@grpc/grpc-js": "~1.9.0"
"@grpc/grpc-js": "~1.10.0"
},
"engines": {
"node": ">=10.10.0"

View File

@ -0,0 +1,38 @@
#!/usr/bin/env bash
# Copyright 2024 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.
set -eo pipefail
#######################################
# Builds test app Docker images and pushes them to GCR.
# Called from psm_interop_kokoro_lib.sh.
#
# Globals:
# SRC_DIR: Absolute path to the source repo on Kokoro VM
# SERVER_IMAGE_NAME: Test server Docker image name
# CLIENT_IMAGE_NAME: Test client Docker image name
# GIT_COMMIT: SHA-1 of git commit being built
# DOCKER_REGISTRY: Docker registry to push to
# Outputs:
# Writes the output of docker image build stdout, stderr
#######################################
psm::lang::build_docker_images() {
local client_dockerfile="packages/grpc-js-xds/interop/Dockerfile"
cd "${SRC_DIR}"
psm::tools::run_verbose git submodule update --init --recursive
psm::tools::run_verbose git submodule status
psm::build::docker_images_generic "${client_dockerfile}"
}

View File

@ -0,0 +1,40 @@
#!/usr/bin/env bash
# Copyright 2024 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.
set -eo pipefail
# Input parameters to psm:: methods of the install script.
readonly GRPC_LANGUAGE="node"
readonly BUILD_SCRIPT_DIR="$(dirname "$0")"
# Used locally.
readonly TEST_DRIVER_INSTALL_SCRIPT_URL="https://raw.githubusercontent.com/${TEST_DRIVER_REPO_OWNER:-grpc}/psm-interop/${TEST_DRIVER_BRANCH:-main}/.kokoro/psm_interop_kokoro_lib.sh"
psm::lang::source_install_lib() {
echo "Sourcing test driver install script from: ${TEST_DRIVER_INSTALL_SCRIPT_URL}"
local install_lib
# Download to a tmp file.
install_lib="$(mktemp -d)/psm_interop_kokoro_lib.sh"
curl -s --retry-connrefused --retry 5 -o "${install_lib}" "${TEST_DRIVER_INSTALL_SCRIPT_URL}"
# Checksum.
if command -v sha256sum &> /dev/null; then
echo "Install script checksum:"
sha256sum "${install_lib}"
fi
source "${install_lib}"
}
psm::lang::source_install_lib
source "${BUILD_SCRIPT_DIR}/psm-interop-build-${GRPC_LANGUAGE}.sh"
psm::run "${PSM_TEST_SUITE}"

View File

@ -34,6 +34,9 @@ echo "source $NVM_DIR/nvm.sh" > ~/.profile
echo "source $NVM_DIR/nvm.sh" > ~/.shrc
export ENV=~/.shrc
cd $base/../proto-loader
npm install
cd $base/../grpc-js
npm install

View File

@ -1,185 +0,0 @@
#!/usr/bin/env bash
# Copyright 2022 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.
set -eo pipefail
# Constants
readonly GITHUB_REPOSITORY_NAME="grpc-node"
readonly TEST_DRIVER_INSTALL_SCRIPT_URL="https://raw.githubusercontent.com/${TEST_DRIVER_REPO_OWNER:-grpc}/psm-interop/${TEST_DRIVER_BRANCH:-main}/.kokoro/psm_interop_kokoro_lib.sh"
## xDS test client Docker images
readonly SERVER_IMAGE_NAME="gcr.io/grpc-testing/xds-interop/java-server:558b5b0bfac8e21755c223063274a779b3898afe"
readonly CLIENT_IMAGE_NAME="gcr.io/grpc-testing/xds-interop/node-client"
readonly FORCE_IMAGE_BUILD="${FORCE_IMAGE_BUILD:-0}"
readonly BUILD_APP_PATH="packages/grpc-js-xds/interop/Dockerfile"
readonly LANGUAGE_NAME="Node"
#######################################
# Builds test app Docker images and pushes them to GCR
# Globals:
# BUILD_APP_PATH
# CLIENT_IMAGE_NAME: Test client Docker image name
# GIT_COMMIT: SHA-1 of git commit being built
# TESTING_VERSION: version branch under test, f.e. v1.42.x, master
# Arguments:
# None
# Outputs:
# Writes the output of `gcloud builds submit` to stdout, stderr
#######################################
build_test_app_docker_images() {
echo "Building ${LANGUAGE_NAME} xDS interop test app Docker images"
pushd "${SRC_DIR}"
docker build \
-f "${BUILD_APP_PATH}" \
-t "${CLIENT_IMAGE_NAME}:${GIT_COMMIT}" \
.
gcloud -q auth configure-docker
docker push "${CLIENT_IMAGE_NAME}:${GIT_COMMIT}"
if is_version_branch "${TESTING_VERSION}"; then
tag_and_push_docker_image "${CLIENT_IMAGE_NAME}" "${GIT_COMMIT}" "${TESTING_VERSION}"
fi
popd
}
#######################################
# Builds test app and its docker images unless they already exist
# Globals:
# CLIENT_IMAGE_NAME: Test client Docker image name
# GIT_COMMIT: SHA-1 of git commit being built
# FORCE_IMAGE_BUILD
# Arguments:
# None
# Outputs:
# Writes the output to stdout, stderr
#######################################
build_docker_images_if_needed() {
# Check if images already exist
client_tags="$(gcloud_gcr_list_image_tags "${CLIENT_IMAGE_NAME}" "${GIT_COMMIT}")"
printf "Client image: %s:%s\n" "${CLIENT_IMAGE_NAME}" "${GIT_COMMIT}"
echo "${client_tags:-Client image not found}"
# Build if any of the images are missing, or FORCE_IMAGE_BUILD=1
if [[ "${FORCE_IMAGE_BUILD}" == "1" || -z "${client_tags}" ]]; then
build_test_app_docker_images
else
echo "Skipping ${LANGUAGE_NAME} test app build"
fi
}
#######################################
# Executes the test case
# Globals:
# TEST_DRIVER_FLAGFILE: Relative path to test driver flagfile
# KUBE_CONTEXT: The name of kubectl context with GKE cluster access
# SECONDARY_KUBE_CONTEXT: The name of kubectl context with secondary GKE cluster access, if any
# TEST_XML_OUTPUT_DIR: Output directory for the test xUnit XML report
# CLIENT_IMAGE_NAME: Test client Docker image name
# GIT_COMMIT: SHA-1 of git commit being built
# Arguments:
# Test case name
# Outputs:
# Writes the output of test execution to stdout, stderr
# Test xUnit report to ${TEST_XML_OUTPUT_DIR}/${test_name}/sponge_log.xml
#######################################
run_test() {
# Test driver usage:
# https://github.com/grpc/grpc/tree/master/tools/run_tests/xds_k8s_test_driver#basic-usage
local test_name="${1:?Usage: run_test test_name}"
local out_dir="${TEST_XML_OUTPUT_DIR}/${test_name}"
mkdir -pv "${out_dir}"
# testing_version is used by the framework to determine the supported PSM
# features. It's captured from Kokoro job name of the Node repo, which takes
# the form:
# grpc/node/<branch name>/<job name>
python3 -m "tests.${test_name}" \
--flagfile="${TEST_DRIVER_FLAGFILE}" \
--kube_context="${KUBE_CONTEXT}" \
--secondary_kube_context="${SECONDARY_KUBE_CONTEXT}" \
--client_image="${CLIENT_IMAGE_NAME}:${GIT_COMMIT}" \
--server_image="${SERVER_IMAGE_NAME}" \
--testing_version="${TESTING_VERSION}" \
--force_cleanup \
--collect_app_logs \
--log_dir="${out_dir}" \
--xml_output_file="${out_dir}/sponge_log.xml" \
|& tee "${out_dir}/sponge_log.log"
}
#######################################
# Main function: provision software necessary to execute tests, and run them
# Globals:
# KOKORO_ARTIFACTS_DIR
# GITHUB_REPOSITORY_NAME
# SRC_DIR: Populated with absolute path to the source repo
# TEST_DRIVER_REPO_DIR: Populated with the path to the repo containing
# the test driver
# TEST_DRIVER_FULL_DIR: Populated with the path to the test driver source code
# TEST_DRIVER_FLAGFILE: Populated with relative path to test driver flagfile
# TEST_XML_OUTPUT_DIR: Populated with the path to test xUnit XML report
# GIT_ORIGIN_URL: Populated with the origin URL of git repo used for the build
# GIT_COMMIT: Populated with the SHA-1 of git commit being built
# GIT_COMMIT_SHORT: Populated with the short SHA-1 of git commit being built
# KUBE_CONTEXT: Populated with name of kubectl context with GKE cluster access
# SECONDARY_KUBE_CONTEXT: Populated with name of kubectl context with secondary GKE cluster access, if any
# Arguments:
# None
# Outputs:
# Writes the output of test execution to stdout, stderr
#######################################
main() {
local script_dir
script_dir="$(dirname "$0")"
cd "${script_dir}"
git submodule update --init --recursive
# Source the test driver from the master branch.
echo "Sourcing test driver install script from: ${TEST_DRIVER_INSTALL_SCRIPT_URL}"
source /dev/stdin <<< "$(curl -s "${TEST_DRIVER_INSTALL_SCRIPT_URL}")"
activate_gke_cluster GKE_CLUSTER_PSM_LB
activate_secondary_gke_cluster GKE_CLUSTER_PSM_LB
set -x
if [[ -n "${KOKORO_ARTIFACTS_DIR}" ]]; then
kokoro_setup_test_driver "${GITHUB_REPOSITORY_NAME}"
else
local_setup_test_driver "${script_dir}"
fi
build_docker_images_if_needed
# Run tests
cd "${TEST_DRIVER_FULL_DIR}"
local failed_tests=0
test_suites=(
"affinity_test"
"api_listener_test"
"baseline_test"
"change_backend_service_test"
"custom_lb_test"
"failover_test"
"outlier_detection_test"
"remove_neg_test"
"round_robin_test"
)
for test in "${test_suites[@]}"; do
run_test $test || (( ++failed_tests ))
done
echo "Failed test suites: ${failed_tests}"
}
main "$@"

View File

@ -1,162 +0,0 @@
#!/usr/bin/env bash
# Copyright 2022 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.
set -eo pipefail
# Constants
readonly GITHUB_REPOSITORY_NAME="grpc-node"
readonly TEST_DRIVER_INSTALL_SCRIPT_URL="https://raw.githubusercontent.com/${TEST_DRIVER_REPO_OWNER:-grpc}/psm-interop/${TEST_DRIVER_BRANCH:-main}/.kokoro/psm_interop_kokoro_lib.sh"
## xDS test client Docker images
readonly CLIENT_IMAGE_NAME="gcr.io/grpc-testing/xds-interop/node-client"
readonly FORCE_IMAGE_BUILD="${FORCE_IMAGE_BUILD:-0}"
readonly BUILD_APP_PATH="packages/grpc-js-xds/interop/Dockerfile"
readonly LANGUAGE_NAME="Node"
#######################################
# Builds test app Docker images and pushes them to GCR
# Globals:
# BUILD_APP_PATH
# CLIENT_IMAGE_NAME: Test client Docker image name
# GIT_COMMIT: SHA-1 of git commit being built
# TESTING_VERSION: version branch under test, f.e. v1.42.x, master
# Arguments:
# None
# Outputs:
# Writes the output of `gcloud builds submit` to stdout, stderr
#######################################
build_test_app_docker_images() {
echo "Building ${LANGUAGE_NAME} xDS interop test app Docker images"
pushd "${SRC_DIR}"
docker build \
-f "${BUILD_APP_PATH}" \
-t "${CLIENT_IMAGE_NAME}:${GIT_COMMIT}" \
.
gcloud -q auth configure-docker
docker push "${CLIENT_IMAGE_NAME}:${GIT_COMMIT}"
if is_version_branch "${TESTING_VERSION}"; then
tag_and_push_docker_image "${CLIENT_IMAGE_NAME}" "${GIT_COMMIT}" "${TESTING_VERSION}"
fi
popd
}
#######################################
# Builds test app and its docker images unless they already exist
# Globals:
# CLIENT_IMAGE_NAME: Test client Docker image name
# GIT_COMMIT: SHA-1 of git commit being built
# FORCE_IMAGE_BUILD
# Arguments:
# None
# Outputs:
# Writes the output to stdout, stderr
#######################################
build_docker_images_if_needed() {
# Check if images already exist
client_tags="$(gcloud_gcr_list_image_tags "${CLIENT_IMAGE_NAME}" "${GIT_COMMIT}")"
printf "Client image: %s:%s\n" "${CLIENT_IMAGE_NAME}" "${GIT_COMMIT}"
echo "${client_tags:-Client image not found}"
# Build if any of the images are missing, or FORCE_IMAGE_BUILD=1
if [[ "${FORCE_IMAGE_BUILD}" == "1" || -z "${client_tags}" ]]; then
build_test_app_docker_images
else
echo "Skipping ${LANGUAGE_NAME} test app build"
fi
}
#######################################
# Executes the test case
# Globals:
# TEST_DRIVER_FLAGFILE: Relative path to test driver flagfile
# KUBE_CONTEXT: The name of kubectl context with GKE cluster access
# TEST_XML_OUTPUT_DIR: Output directory for the test xUnit XML report
# CLIENT_IMAGE_NAME: Test client Docker image name
# GIT_COMMIT: SHA-1 of git commit being built
# TESTING_VERSION: version branch under test: used by the framework to determine the supported PSM
# features.
# Arguments:
# Test case name
# Outputs:
# Writes the output of test execution to stdout, stderr
# Test xUnit report to ${TEST_XML_OUTPUT_DIR}/${test_name}/sponge_log.xml
#######################################
run_test() {
# Test driver usage:
# https://github.com/grpc/grpc/tree/master/tools/run_tests/xds_k8s_test_driver#basic-usage
local test_name="${1:?Usage: run_test test_name}"
local out_dir="${TEST_XML_OUTPUT_DIR}/${test_name}"
mkdir -pv "${out_dir}"
set -x
python3 -m "tests.${test_name}" \
--flagfile="${TEST_DRIVER_FLAGFILE}" \
--flagfile="config/url-map.cfg" \
--kube_context="${KUBE_CONTEXT}" \
--client_image="${CLIENT_IMAGE_NAME}:${GIT_COMMIT}" \
--testing_version="${TESTING_VERSION}" \
--collect_app_logs \
--log_dir="${out_dir}" \
--xml_output_file="${out_dir}/sponge_log.xml" \
|& tee "${out_dir}/sponge_log.log"
}
#######################################
# Main function: provision software necessary to execute tests, and run them
# Globals:
# KOKORO_ARTIFACTS_DIR
# GITHUB_REPOSITORY_NAME
# SRC_DIR: Populated with absolute path to the source repo
# TEST_DRIVER_REPO_DIR: Populated with the path to the repo containing
# the test driver
# TEST_DRIVER_FULL_DIR: Populated with the path to the test driver source code
# TEST_DRIVER_FLAGFILE: Populated with relative path to test driver flagfile
# TEST_XML_OUTPUT_DIR: Populated with the path to test xUnit XML report
# GIT_ORIGIN_URL: Populated with the origin URL of git repo used for the build
# GIT_COMMIT: Populated with the SHA-1 of git commit being built
# GIT_COMMIT_SHORT: Populated with the short SHA-1 of git commit being built
# KUBE_CONTEXT: Populated with name of kubectl context with GKE cluster access
# Arguments:
# None
# Outputs:
# Writes the output of test execution to stdout, stderr
#######################################
main() {
local script_dir
script_dir="$(dirname "$0")"
cd "${script_dir}"
git submodule update --init --recursive
# Source the test driver from the master branch.
echo "Sourcing test driver install script from: ${TEST_DRIVER_INSTALL_SCRIPT_URL}"
source /dev/stdin <<< "$(curl -s "${TEST_DRIVER_INSTALL_SCRIPT_URL}")"
activate_gke_cluster GKE_CLUSTER_PSM_BASIC
set -x
if [[ -n "${KOKORO_ARTIFACTS_DIR}" ]]; then
kokoro_setup_test_driver "${GITHUB_REPOSITORY_NAME}"
else
local_setup_test_driver "${script_dir}"
fi
build_docker_images_if_needed
# Run tests
cd "${TEST_DRIVER_FULL_DIR}"
run_test url_map || echo "Failed url_map test"
}
main "$@"

View File

@ -15,11 +15,14 @@
*
*/
/* Switches to enable or disable experimental features. If the default is
* 'true', the feature is enabled by default, if the default is 'false' the
* feature is disabled by default. */
export const EXPERIMENTAL_FAULT_INJECTION = (process.env.GRPC_XDS_EXPERIMENTAL_FAULT_INJECTION ?? 'true') === 'true';
export const EXPERIMENTAL_OUTLIER_DETECTION = (process.env.GRPC_EXPERIMENTAL_ENABLE_OUTLIER_DETECTION ?? 'true') === 'true';
export const EXPERIMENTAL_RETRY = (process.env.GRPC_XDS_EXPERIMENTAL_ENABLE_RETRY ?? 'true') === 'true';
export const EXPERIMENTAL_FEDERATION = (process.env.GRPC_EXPERIMENTAL_XDS_FEDERATION ?? 'false') === 'true';
export const EXPERIMENTAL_CUSTOM_LB_CONFIG = (process.env.GRPC_EXPERIMENTAL_XDS_CUSTOM_LB_CONFIG ?? 'false') === 'true';
export const EXPERIMENTAL_RING_HASH = (process.env.GRPC_XDS_EXPERIMENTAL_ENABLE_RING_HASH ?? 'false') === 'true';
export const EXPERIMENTAL_CUSTOM_LB_CONFIG = (process.env.GRPC_EXPERIMENTAL_XDS_CUSTOM_LB_CONFIG ?? 'true') === 'true';
export const EXPERIMENTAL_RING_HASH = (process.env.GRPC_XDS_EXPERIMENTAL_ENABLE_RING_HASH ?? 'true') === 'true';
export const EXPERIMENTAL_PICK_FIRST = (process.env.GRPC_EXPERIMENTAL_PICKFIRST_LB_CONFIG ?? 'false') === 'true';
export const EXPERIMENTAL_DUALSTACK_ENDPOINTS = (process.env.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS ?? 'false') === 'true';

View File

@ -101,6 +101,15 @@ export interface ProtoGrpcType {
}
}
}
extensions: {
clusters: {
aggregate: {
v3: {
ClusterConfig: MessageTypeDefinition
}
}
}
}
type: {
matcher: {
v3: {

View File

@ -1,32 +0,0 @@
// Original file: deps/envoy-api/envoy/admin/v3/config_dump.proto
import type { Bootstrap as _envoy_config_bootstrap_v3_Bootstrap, Bootstrap__Output as _envoy_config_bootstrap_v3_Bootstrap__Output } from '../../../envoy/config/bootstrap/v3/Bootstrap';
import type { Timestamp as _google_protobuf_Timestamp, Timestamp__Output as _google_protobuf_Timestamp__Output } from '../../../google/protobuf/Timestamp';
/**
* This message describes the bootstrap configuration that Envoy was started with. This includes
* any CLI overrides that were merged. Bootstrap configuration information can be used to recreate
* the static portions of an Envoy configuration by reusing the output as the bootstrap
* configuration for another Envoy.
*/
export interface BootstrapConfigDump {
'bootstrap'?: (_envoy_config_bootstrap_v3_Bootstrap | null);
/**
* The timestamp when the BootstrapConfig was last updated.
*/
'last_updated'?: (_google_protobuf_Timestamp | null);
}
/**
* This message describes the bootstrap configuration that Envoy was started with. This includes
* any CLI overrides that were merged. Bootstrap configuration information can be used to recreate
* the static portions of an Envoy configuration by reusing the output as the bootstrap
* configuration for another Envoy.
*/
export interface BootstrapConfigDump__Output {
'bootstrap': (_envoy_config_bootstrap_v3_Bootstrap__Output | null);
/**
* The timestamp when the BootstrapConfig was last updated.
*/
'last_updated': (_google_protobuf_Timestamp__Output | null);
}

View File

@ -4,17 +4,17 @@
* Resource status from the view of a xDS client, which tells the synchronization
* status between the xDS client and the xDS server.
*/
export enum ClientResourceStatus {
export const ClientResourceStatus = {
/**
* Resource status is not available/unknown.
*/
UNKNOWN = 0,
UNKNOWN: 'UNKNOWN',
/**
* Client requested this resource but hasn't received any update from management
* server. The client will not fail requests, but will queue them until update
* arrives or the client times out waiting for the resource.
*/
REQUESTED = 1,
REQUESTED: 'REQUESTED',
/**
* This resource has been requested by the client but has either not been
* delivered by the server or was previously delivered by the server and then
@ -22,13 +22,56 @@ export enum ClientResourceStatus {
* information, please refer to the :ref:`"Knowing When a Requested Resource
* Does Not Exist" <xds_protocol_resource_not_existed>` section.
*/
DOES_NOT_EXIST = 2,
DOES_NOT_EXIST: 'DOES_NOT_EXIST',
/**
* Client received this resource and replied with ACK.
*/
ACKED = 3,
ACKED: 'ACKED',
/**
* Client received this resource and replied with NACK.
*/
NACKED = 4,
}
NACKED: 'NACKED',
} as const;
/**
* Resource status from the view of a xDS client, which tells the synchronization
* status between the xDS client and the xDS server.
*/
export type ClientResourceStatus =
/**
* Resource status is not available/unknown.
*/
| 'UNKNOWN'
| 0
/**
* Client requested this resource but hasn't received any update from management
* server. The client will not fail requests, but will queue them until update
* arrives or the client times out waiting for the resource.
*/
| 'REQUESTED'
| 1
/**
* This resource has been requested by the client but has either not been
* delivered by the server or was previously delivered by the server and then
* subsequently removed from resources provided by the server. For more
* information, please refer to the :ref:`"Knowing When a Requested Resource
* Does Not Exist" <xds_protocol_resource_not_existed>` section.
*/
| 'DOES_NOT_EXIST'
| 2
/**
* Client received this resource and replied with ACK.
*/
| 'ACKED'
| 3
/**
* Client received this resource and replied with NACK.
*/
| 'NACKED'
| 4
/**
* Resource status from the view of a xDS client, which tells the synchronization
* status between the xDS client and the xDS server.
*/
export type ClientResourceStatus__Output = typeof ClientResourceStatus[keyof typeof ClientResourceStatus]

View File

@ -3,7 +3,7 @@
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
import type { Timestamp as _google_protobuf_Timestamp, Timestamp__Output as _google_protobuf_Timestamp__Output } from '../../../google/protobuf/Timestamp';
import type { UpdateFailureState as _envoy_admin_v3_UpdateFailureState, UpdateFailureState__Output as _envoy_admin_v3_UpdateFailureState__Output } from '../../../envoy/admin/v3/UpdateFailureState';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus } from '../../../envoy/admin/v3/ClientResourceStatus';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus, ClientResourceStatus__Output as _envoy_admin_v3_ClientResourceStatus__Output } from '../../../envoy/admin/v3/ClientResourceStatus';
/**
* Describes a dynamically loaded cluster via the CDS API.
@ -37,7 +37,7 @@ export interface _envoy_admin_v3_ClustersConfigDump_DynamicCluster {
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status'?: (_envoy_admin_v3_ClientResourceStatus | keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status'?: (_envoy_admin_v3_ClientResourceStatus);
}
/**
@ -72,7 +72,7 @@ export interface _envoy_admin_v3_ClustersConfigDump_DynamicCluster__Output {
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status': (keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status': (_envoy_admin_v3_ClientResourceStatus__Output);
}
/**

View File

@ -1,65 +0,0 @@
// Original file: deps/envoy-api/envoy/admin/v3/config_dump.proto
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
/**
* The :ref:`/config_dump <operations_admin_interface_config_dump>` admin endpoint uses this wrapper
* message to maintain and serve arbitrary configuration information from any component in Envoy.
*/
export interface ConfigDump {
/**
* This list is serialized and dumped in its entirety at the
* :ref:`/config_dump <operations_admin_interface_config_dump>` endpoint.
*
* The following configurations are currently supported and will be dumped in the order given
* below:
*
* * *bootstrap*: :ref:`BootstrapConfigDump <envoy_v3_api_msg_admin.v3.BootstrapConfigDump>`
* * *clusters*: :ref:`ClustersConfigDump <envoy_v3_api_msg_admin.v3.ClustersConfigDump>`
* * *endpoints*: :ref:`EndpointsConfigDump <envoy_v3_api_msg_admin.v3.EndpointsConfigDump>`
* * *listeners*: :ref:`ListenersConfigDump <envoy_v3_api_msg_admin.v3.ListenersConfigDump>`
* * *scoped_routes*: :ref:`ScopedRoutesConfigDump <envoy_v3_api_msg_admin.v3.ScopedRoutesConfigDump>`
* * *routes*: :ref:`RoutesConfigDump <envoy_v3_api_msg_admin.v3.RoutesConfigDump>`
* * *secrets*: :ref:`SecretsConfigDump <envoy_v3_api_msg_admin.v3.SecretsConfigDump>`
*
* EDS Configuration will only be dumped by using parameter `?include_eds`
*
* You can filter output with the resource and mask query parameters.
* See :ref:`/config_dump?resource={} <operations_admin_interface_config_dump_by_resource>`,
* :ref:`/config_dump?mask={} <operations_admin_interface_config_dump_by_mask>`,
* or :ref:`/config_dump?resource={},mask={}
* <operations_admin_interface_config_dump_by_resource_and_mask>` for more information.
*/
'configs'?: (_google_protobuf_Any)[];
}
/**
* The :ref:`/config_dump <operations_admin_interface_config_dump>` admin endpoint uses this wrapper
* message to maintain and serve arbitrary configuration information from any component in Envoy.
*/
export interface ConfigDump__Output {
/**
* This list is serialized and dumped in its entirety at the
* :ref:`/config_dump <operations_admin_interface_config_dump>` endpoint.
*
* The following configurations are currently supported and will be dumped in the order given
* below:
*
* * *bootstrap*: :ref:`BootstrapConfigDump <envoy_v3_api_msg_admin.v3.BootstrapConfigDump>`
* * *clusters*: :ref:`ClustersConfigDump <envoy_v3_api_msg_admin.v3.ClustersConfigDump>`
* * *endpoints*: :ref:`EndpointsConfigDump <envoy_v3_api_msg_admin.v3.EndpointsConfigDump>`
* * *listeners*: :ref:`ListenersConfigDump <envoy_v3_api_msg_admin.v3.ListenersConfigDump>`
* * *scoped_routes*: :ref:`ScopedRoutesConfigDump <envoy_v3_api_msg_admin.v3.ScopedRoutesConfigDump>`
* * *routes*: :ref:`RoutesConfigDump <envoy_v3_api_msg_admin.v3.RoutesConfigDump>`
* * *secrets*: :ref:`SecretsConfigDump <envoy_v3_api_msg_admin.v3.SecretsConfigDump>`
*
* EDS Configuration will only be dumped by using parameter `?include_eds`
*
* You can filter output with the resource and mask query parameters.
* See :ref:`/config_dump?resource={} <operations_admin_interface_config_dump_by_resource>`,
* :ref:`/config_dump?mask={} <operations_admin_interface_config_dump_by_mask>`,
* or :ref:`/config_dump?resource={},mask={}
* <operations_admin_interface_config_dump_by_resource_and_mask>` for more information.
*/
'configs': (_google_protobuf_Any__Output)[];
}

View File

@ -3,7 +3,7 @@
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
import type { Timestamp as _google_protobuf_Timestamp, Timestamp__Output as _google_protobuf_Timestamp__Output } from '../../../google/protobuf/Timestamp';
import type { UpdateFailureState as _envoy_admin_v3_UpdateFailureState, UpdateFailureState__Output as _envoy_admin_v3_UpdateFailureState__Output } from '../../../envoy/admin/v3/UpdateFailureState';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus } from '../../../envoy/admin/v3/ClientResourceStatus';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus, ClientResourceStatus__Output as _envoy_admin_v3_ClientResourceStatus__Output } from '../../../envoy/admin/v3/ClientResourceStatus';
/**
* [#next-free-field: 6]
@ -36,7 +36,7 @@ export interface _envoy_admin_v3_EcdsConfigDump_EcdsFilterConfig {
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status'?: (_envoy_admin_v3_ClientResourceStatus | keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status'?: (_envoy_admin_v3_ClientResourceStatus);
}
/**
@ -70,7 +70,7 @@ export interface _envoy_admin_v3_EcdsConfigDump_EcdsFilterConfig__Output {
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status': (keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status': (_envoy_admin_v3_ClientResourceStatus__Output);
}
/**

View File

@ -3,7 +3,7 @@
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
import type { Timestamp as _google_protobuf_Timestamp, Timestamp__Output as _google_protobuf_Timestamp__Output } from '../../../google/protobuf/Timestamp';
import type { UpdateFailureState as _envoy_admin_v3_UpdateFailureState, UpdateFailureState__Output as _envoy_admin_v3_UpdateFailureState__Output } from '../../../envoy/admin/v3/UpdateFailureState';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus } from '../../../envoy/admin/v3/ClientResourceStatus';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus, ClientResourceStatus__Output as _envoy_admin_v3_ClientResourceStatus__Output } from '../../../envoy/admin/v3/ClientResourceStatus';
/**
* [#next-free-field: 6]
@ -35,7 +35,7 @@ export interface _envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig {
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status'?: (_envoy_admin_v3_ClientResourceStatus | keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status'?: (_envoy_admin_v3_ClientResourceStatus);
}
/**
@ -68,7 +68,7 @@ export interface _envoy_admin_v3_EndpointsConfigDump_DynamicEndpointConfig__Outp
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status': (keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status': (_envoy_admin_v3_ClientResourceStatus__Output);
}
export interface _envoy_admin_v3_EndpointsConfigDump_StaticEndpointConfig {

View File

@ -3,7 +3,7 @@
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
import type { Timestamp as _google_protobuf_Timestamp, Timestamp__Output as _google_protobuf_Timestamp__Output } from '../../../google/protobuf/Timestamp';
import type { UpdateFailureState as _envoy_admin_v3_UpdateFailureState, UpdateFailureState__Output as _envoy_admin_v3_UpdateFailureState__Output } from '../../../envoy/admin/v3/UpdateFailureState';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus } from '../../../envoy/admin/v3/ClientResourceStatus';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus, ClientResourceStatus__Output as _envoy_admin_v3_ClientResourceStatus__Output } from '../../../envoy/admin/v3/ClientResourceStatus';
/**
* Describes a dynamically loaded listener via the LDS API.
@ -44,7 +44,7 @@ export interface _envoy_admin_v3_ListenersConfigDump_DynamicListener {
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status'?: (_envoy_admin_v3_ClientResourceStatus | keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status'?: (_envoy_admin_v3_ClientResourceStatus);
}
/**
@ -86,7 +86,7 @@ export interface _envoy_admin_v3_ListenersConfigDump_DynamicListener__Output {
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status': (keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status': (_envoy_admin_v3_ClientResourceStatus__Output);
}
export interface _envoy_admin_v3_ListenersConfigDump_DynamicListenerState {

View File

@ -3,7 +3,7 @@
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
import type { Timestamp as _google_protobuf_Timestamp, Timestamp__Output as _google_protobuf_Timestamp__Output } from '../../../google/protobuf/Timestamp';
import type { UpdateFailureState as _envoy_admin_v3_UpdateFailureState, UpdateFailureState__Output as _envoy_admin_v3_UpdateFailureState__Output } from '../../../envoy/admin/v3/UpdateFailureState';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus } from '../../../envoy/admin/v3/ClientResourceStatus';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus, ClientResourceStatus__Output as _envoy_admin_v3_ClientResourceStatus__Output } from '../../../envoy/admin/v3/ClientResourceStatus';
/**
* [#next-free-field: 6]
@ -35,7 +35,7 @@ export interface _envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig {
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status'?: (_envoy_admin_v3_ClientResourceStatus | keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status'?: (_envoy_admin_v3_ClientResourceStatus);
}
/**
@ -68,7 +68,7 @@ export interface _envoy_admin_v3_RoutesConfigDump_DynamicRouteConfig__Output {
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status': (keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status': (_envoy_admin_v3_ClientResourceStatus__Output);
}
export interface _envoy_admin_v3_RoutesConfigDump_StaticRouteConfig {

View File

@ -3,7 +3,7 @@
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
import type { Timestamp as _google_protobuf_Timestamp, Timestamp__Output as _google_protobuf_Timestamp__Output } from '../../../google/protobuf/Timestamp';
import type { UpdateFailureState as _envoy_admin_v3_UpdateFailureState, UpdateFailureState__Output as _envoy_admin_v3_UpdateFailureState__Output } from '../../../envoy/admin/v3/UpdateFailureState';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus } from '../../../envoy/admin/v3/ClientResourceStatus';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus, ClientResourceStatus__Output as _envoy_admin_v3_ClientResourceStatus__Output } from '../../../envoy/admin/v3/ClientResourceStatus';
/**
* [#next-free-field: 7]
@ -39,7 +39,7 @@ export interface _envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfig
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status'?: (_envoy_admin_v3_ClientResourceStatus | keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status'?: (_envoy_admin_v3_ClientResourceStatus);
}
/**
@ -76,7 +76,7 @@ export interface _envoy_admin_v3_ScopedRoutesConfigDump_DynamicScopedRouteConfig
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status': (keyof typeof _envoy_admin_v3_ClientResourceStatus);
'client_status': (_envoy_admin_v3_ClientResourceStatus__Output);
}
export interface _envoy_admin_v3_ScopedRoutesConfigDump_InlineScopedRouteConfigs {

View File

@ -1,162 +0,0 @@
// Original file: deps/envoy-api/envoy/admin/v3/config_dump.proto
import type { Timestamp as _google_protobuf_Timestamp, Timestamp__Output as _google_protobuf_Timestamp__Output } from '../../../google/protobuf/Timestamp';
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
import type { UpdateFailureState as _envoy_admin_v3_UpdateFailureState, UpdateFailureState__Output as _envoy_admin_v3_UpdateFailureState__Output } from '../../../envoy/admin/v3/UpdateFailureState';
import type { ClientResourceStatus as _envoy_admin_v3_ClientResourceStatus } from '../../../envoy/admin/v3/ClientResourceStatus';
/**
* DynamicSecret contains secret information fetched via SDS.
* [#next-free-field: 7]
*/
export interface _envoy_admin_v3_SecretsConfigDump_DynamicSecret {
/**
* The name assigned to the secret.
*/
'name'?: (string);
/**
* This is the per-resource version information.
*/
'version_info'?: (string);
/**
* The timestamp when the secret was last updated.
*/
'last_updated'?: (_google_protobuf_Timestamp | null);
/**
* The actual secret information.
* Security sensitive information is redacted (replaced with "[redacted]") for
* private keys and passwords in TLS certificates.
*/
'secret'?: (_google_protobuf_Any | null);
/**
* Set if the last update failed, cleared after the next successful update.
* The *error_state* field contains the rejected version of this particular
* resource along with the reason and timestamp. For successfully updated or
* acknowledged resource, this field should be empty.
* [#not-implemented-hide:]
*/
'error_state'?: (_envoy_admin_v3_UpdateFailureState | null);
/**
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status'?: (_envoy_admin_v3_ClientResourceStatus | keyof typeof _envoy_admin_v3_ClientResourceStatus);
}
/**
* DynamicSecret contains secret information fetched via SDS.
* [#next-free-field: 7]
*/
export interface _envoy_admin_v3_SecretsConfigDump_DynamicSecret__Output {
/**
* The name assigned to the secret.
*/
'name': (string);
/**
* This is the per-resource version information.
*/
'version_info': (string);
/**
* The timestamp when the secret was last updated.
*/
'last_updated': (_google_protobuf_Timestamp__Output | null);
/**
* The actual secret information.
* Security sensitive information is redacted (replaced with "[redacted]") for
* private keys and passwords in TLS certificates.
*/
'secret': (_google_protobuf_Any__Output | null);
/**
* Set if the last update failed, cleared after the next successful update.
* The *error_state* field contains the rejected version of this particular
* resource along with the reason and timestamp. For successfully updated or
* acknowledged resource, this field should be empty.
* [#not-implemented-hide:]
*/
'error_state': (_envoy_admin_v3_UpdateFailureState__Output | null);
/**
* The client status of this resource.
* [#not-implemented-hide:]
*/
'client_status': (keyof typeof _envoy_admin_v3_ClientResourceStatus);
}
/**
* StaticSecret specifies statically loaded secret in bootstrap.
*/
export interface _envoy_admin_v3_SecretsConfigDump_StaticSecret {
/**
* The name assigned to the secret.
*/
'name'?: (string);
/**
* The timestamp when the secret was last updated.
*/
'last_updated'?: (_google_protobuf_Timestamp | null);
/**
* The actual secret information.
* Security sensitive information is redacted (replaced with "[redacted]") for
* private keys and passwords in TLS certificates.
*/
'secret'?: (_google_protobuf_Any | null);
}
/**
* StaticSecret specifies statically loaded secret in bootstrap.
*/
export interface _envoy_admin_v3_SecretsConfigDump_StaticSecret__Output {
/**
* The name assigned to the secret.
*/
'name': (string);
/**
* The timestamp when the secret was last updated.
*/
'last_updated': (_google_protobuf_Timestamp__Output | null);
/**
* The actual secret information.
* Security sensitive information is redacted (replaced with "[redacted]") for
* private keys and passwords in TLS certificates.
*/
'secret': (_google_protobuf_Any__Output | null);
}
/**
* Envoys SDS implementation fills this message with all secrets fetched dynamically via SDS.
*/
export interface SecretsConfigDump {
/**
* The statically loaded secrets.
*/
'static_secrets'?: (_envoy_admin_v3_SecretsConfigDump_StaticSecret)[];
/**
* The dynamically loaded active secrets. These are secrets that are available to service
* clusters or listeners.
*/
'dynamic_active_secrets'?: (_envoy_admin_v3_SecretsConfigDump_DynamicSecret)[];
/**
* The dynamically loaded warming secrets. These are secrets that are currently undergoing
* warming in preparation to service clusters or listeners.
*/
'dynamic_warming_secrets'?: (_envoy_admin_v3_SecretsConfigDump_DynamicSecret)[];
}
/**
* Envoys SDS implementation fills this message with all secrets fetched dynamically via SDS.
*/
export interface SecretsConfigDump__Output {
/**
* The statically loaded secrets.
*/
'static_secrets': (_envoy_admin_v3_SecretsConfigDump_StaticSecret__Output)[];
/**
* The dynamically loaded active secrets. These are secrets that are available to service
* clusters or listeners.
*/
'dynamic_active_secrets': (_envoy_admin_v3_SecretsConfigDump_DynamicSecret__Output)[];
/**
* The dynamically loaded warming secrets. These are secrets that are currently undergoing
* warming in preparation to service clusters or listeners.
*/
'dynamic_warming_secrets': (_envoy_admin_v3_SecretsConfigDump_DynamicSecret__Output)[];
}

View File

@ -4,20 +4,39 @@ import type { RuntimeUInt32 as _envoy_config_core_v3_RuntimeUInt32, RuntimeUInt3
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
export enum _envoy_config_accesslog_v3_ComparisonFilter_Op {
export const _envoy_config_accesslog_v3_ComparisonFilter_Op = {
/**
* =
*/
EQ = 0,
EQ: 'EQ',
/**
* >=
*/
GE = 1,
GE: 'GE',
/**
* <=
*/
LE = 2,
}
LE: 'LE',
} as const;
export type _envoy_config_accesslog_v3_ComparisonFilter_Op =
/**
* =
*/
| 'EQ'
| 0
/**
* >=
*/
| 'GE'
| 1
/**
* <=
*/
| 'LE'
| 2
export type _envoy_config_accesslog_v3_ComparisonFilter_Op__Output = typeof _envoy_config_accesslog_v3_ComparisonFilter_Op[keyof typeof _envoy_config_accesslog_v3_ComparisonFilter_Op]
/**
* Filter on an integer comparison.
@ -26,7 +45,7 @@ export interface ComparisonFilter {
/**
* Comparison operator.
*/
'op'?: (_envoy_config_accesslog_v3_ComparisonFilter_Op | keyof typeof _envoy_config_accesslog_v3_ComparisonFilter_Op);
'op'?: (_envoy_config_accesslog_v3_ComparisonFilter_Op);
/**
* Value to compare against.
*/
@ -40,7 +59,7 @@ export interface ComparisonFilter__Output {
/**
* Comparison operator.
*/
'op': (keyof typeof _envoy_config_accesslog_v3_ComparisonFilter_Op);
'op': (_envoy_config_accesslog_v3_ComparisonFilter_Op__Output);
/**
* Value to compare against.
*/

View File

@ -3,25 +3,63 @@
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
export enum _envoy_config_accesslog_v3_GrpcStatusFilter_Status {
OK = 0,
CANCELED = 1,
UNKNOWN = 2,
INVALID_ARGUMENT = 3,
DEADLINE_EXCEEDED = 4,
NOT_FOUND = 5,
ALREADY_EXISTS = 6,
PERMISSION_DENIED = 7,
RESOURCE_EXHAUSTED = 8,
FAILED_PRECONDITION = 9,
ABORTED = 10,
OUT_OF_RANGE = 11,
UNIMPLEMENTED = 12,
INTERNAL = 13,
UNAVAILABLE = 14,
DATA_LOSS = 15,
UNAUTHENTICATED = 16,
}
export const _envoy_config_accesslog_v3_GrpcStatusFilter_Status = {
OK: 'OK',
CANCELED: 'CANCELED',
UNKNOWN: 'UNKNOWN',
INVALID_ARGUMENT: 'INVALID_ARGUMENT',
DEADLINE_EXCEEDED: 'DEADLINE_EXCEEDED',
NOT_FOUND: 'NOT_FOUND',
ALREADY_EXISTS: 'ALREADY_EXISTS',
PERMISSION_DENIED: 'PERMISSION_DENIED',
RESOURCE_EXHAUSTED: 'RESOURCE_EXHAUSTED',
FAILED_PRECONDITION: 'FAILED_PRECONDITION',
ABORTED: 'ABORTED',
OUT_OF_RANGE: 'OUT_OF_RANGE',
UNIMPLEMENTED: 'UNIMPLEMENTED',
INTERNAL: 'INTERNAL',
UNAVAILABLE: 'UNAVAILABLE',
DATA_LOSS: 'DATA_LOSS',
UNAUTHENTICATED: 'UNAUTHENTICATED',
} as const;
export type _envoy_config_accesslog_v3_GrpcStatusFilter_Status =
| 'OK'
| 0
| 'CANCELED'
| 1
| 'UNKNOWN'
| 2
| 'INVALID_ARGUMENT'
| 3
| 'DEADLINE_EXCEEDED'
| 4
| 'NOT_FOUND'
| 5
| 'ALREADY_EXISTS'
| 6
| 'PERMISSION_DENIED'
| 7
| 'RESOURCE_EXHAUSTED'
| 8
| 'FAILED_PRECONDITION'
| 9
| 'ABORTED'
| 10
| 'OUT_OF_RANGE'
| 11
| 'UNIMPLEMENTED'
| 12
| 'INTERNAL'
| 13
| 'UNAVAILABLE'
| 14
| 'DATA_LOSS'
| 15
| 'UNAUTHENTICATED'
| 16
export type _envoy_config_accesslog_v3_GrpcStatusFilter_Status__Output = typeof _envoy_config_accesslog_v3_GrpcStatusFilter_Status[keyof typeof _envoy_config_accesslog_v3_GrpcStatusFilter_Status]
/**
* Filters gRPC requests based on their response status. If a gRPC status is not
@ -31,7 +69,7 @@ export interface GrpcStatusFilter {
/**
* Logs only responses that have any one of the gRPC statuses in this field.
*/
'statuses'?: (_envoy_config_accesslog_v3_GrpcStatusFilter_Status | keyof typeof _envoy_config_accesslog_v3_GrpcStatusFilter_Status)[];
'statuses'?: (_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
@ -48,7 +86,7 @@ export interface GrpcStatusFilter__Output {
/**
* Logs only responses that have any one of the gRPC statuses in this field.
*/
'statuses': (keyof typeof _envoy_config_accesslog_v3_GrpcStatusFilter_Status)[];
'statuses': (_envoy_config_accesslog_v3_GrpcStatusFilter_Status__Output)[];
/**
* 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

View File

@ -1,6 +1,6 @@
// Original file: deps/envoy-api/envoy/config/accesslog/v3/accesslog.proto
import type { AccessLogType as _envoy_data_accesslog_v3_AccessLogType } from '../../../../envoy/data/accesslog/v3/AccessLogType';
import type { AccessLogType as _envoy_data_accesslog_v3_AccessLogType, AccessLogType__Output as _envoy_data_accesslog_v3_AccessLogType__Output } from '../../../../envoy/data/accesslog/v3/AccessLogType';
/**
* Filters based on access log type.
@ -9,7 +9,7 @@ export interface LogTypeFilter {
/**
* Logs only records which their type is one of the types defined in this field.
*/
'types'?: (_envoy_data_accesslog_v3_AccessLogType | keyof typeof _envoy_data_accesslog_v3_AccessLogType)[];
'types'?: (_envoy_data_accesslog_v3_AccessLogType)[];
/**
* If this field is set to true, the filter will instead block all records
* with a access log type in types field, and allow all other records.
@ -24,7 +24,7 @@ export interface LogTypeFilter__Output {
/**
* Logs only records which their type is one of the types defined in this field.
*/
'types': (keyof typeof _envoy_data_accesslog_v3_AccessLogType)[];
'types': (_envoy_data_accesslog_v3_AccessLogType__Output)[];
/**
* If this field is set to true, the filter will instead block all records
* with a access log type in types field, and allow all other records.

View File

@ -1,75 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
import type { Address as _envoy_config_core_v3_Address, Address__Output as _envoy_config_core_v3_Address__Output } from '../../../../envoy/config/core/v3/Address';
import type { SocketOption as _envoy_config_core_v3_SocketOption, SocketOption__Output as _envoy_config_core_v3_SocketOption__Output } from '../../../../envoy/config/core/v3/SocketOption';
import type { AccessLog as _envoy_config_accesslog_v3_AccessLog, AccessLog__Output as _envoy_config_accesslog_v3_AccessLog__Output } from '../../../../envoy/config/accesslog/v3/AccessLog';
/**
* Administration interface :ref:`operations documentation
* <operations_admin_interface>`.
* [#next-free-field: 6]
*/
export interface Admin {
/**
* The path to write the access log for the administration server. If no
* access log is desired specify /dev/null. This is only required if
* :ref:`address <envoy_v3_api_field_config.bootstrap.v3.Admin.address>` is set.
* Deprecated in favor of *access_log* which offers more options.
*/
'access_log_path'?: (string);
/**
* The cpu profiler output path for the administration server. If no profile
* path is specified, the default is /var/log/envoy/envoy.prof.
*/
'profile_path'?: (string);
/**
* The TCP address that the administration server will listen on.
* If not specified, Envoy will not start an administration server.
*/
'address'?: (_envoy_config_core_v3_Address | null);
/**
* Additional socket options that may not be present in Envoy source code or
* precompiled binaries.
*/
'socket_options'?: (_envoy_config_core_v3_SocketOption)[];
/**
* Configuration for :ref:`access logs <arch_overview_access_logs>`
* emitted by the administration server.
*/
'access_log'?: (_envoy_config_accesslog_v3_AccessLog)[];
}
/**
* Administration interface :ref:`operations documentation
* <operations_admin_interface>`.
* [#next-free-field: 6]
*/
export interface Admin__Output {
/**
* The path to write the access log for the administration server. If no
* access log is desired specify /dev/null. This is only required if
* :ref:`address <envoy_v3_api_field_config.bootstrap.v3.Admin.address>` is set.
* Deprecated in favor of *access_log* which offers more options.
*/
'access_log_path': (string);
/**
* The cpu profiler output path for the administration server. If no profile
* path is specified, the default is /var/log/envoy/envoy.prof.
*/
'profile_path': (string);
/**
* The TCP address that the administration server will listen on.
* If not specified, Envoy will not start an administration server.
*/
'address': (_envoy_config_core_v3_Address__Output | null);
/**
* Additional socket options that may not be present in Envoy source code or
* precompiled binaries.
*/
'socket_options': (_envoy_config_core_v3_SocketOption__Output)[];
/**
* Configuration for :ref:`access logs <arch_overview_access_logs>`
* emitted by the administration server.
*/
'access_log': (_envoy_config_accesslog_v3_AccessLog__Output)[];
}

View File

@ -1,642 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
import type { Node as _envoy_config_core_v3_Node, Node__Output as _envoy_config_core_v3_Node__Output } from '../../../../envoy/config/core/v3/Node';
import type { ClusterManager as _envoy_config_bootstrap_v3_ClusterManager, ClusterManager__Output as _envoy_config_bootstrap_v3_ClusterManager__Output } from '../../../../envoy/config/bootstrap/v3/ClusterManager';
import type { StatsSink as _envoy_config_metrics_v3_StatsSink, StatsSink__Output as _envoy_config_metrics_v3_StatsSink__Output } from '../../../../envoy/config/metrics/v3/StatsSink';
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
import type { Watchdog as _envoy_config_bootstrap_v3_Watchdog, Watchdog__Output as _envoy_config_bootstrap_v3_Watchdog__Output } from '../../../../envoy/config/bootstrap/v3/Watchdog';
import type { Tracing as _envoy_config_trace_v3_Tracing, Tracing__Output as _envoy_config_trace_v3_Tracing__Output } from '../../../../envoy/config/trace/v3/Tracing';
import type { Admin as _envoy_config_bootstrap_v3_Admin, Admin__Output as _envoy_config_bootstrap_v3_Admin__Output } from '../../../../envoy/config/bootstrap/v3/Admin';
import type { StatsConfig as _envoy_config_metrics_v3_StatsConfig, StatsConfig__Output as _envoy_config_metrics_v3_StatsConfig__Output } from '../../../../envoy/config/metrics/v3/StatsConfig';
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 { OverloadManager as _envoy_config_overload_v3_OverloadManager, OverloadManager__Output as _envoy_config_overload_v3_OverloadManager__Output } from '../../../../envoy/config/overload/v3/OverloadManager';
import type { LayeredRuntime as _envoy_config_bootstrap_v3_LayeredRuntime, LayeredRuntime__Output as _envoy_config_bootstrap_v3_LayeredRuntime__Output } from '../../../../envoy/config/bootstrap/v3/LayeredRuntime';
import type { UInt64Value as _google_protobuf_UInt64Value, UInt64Value__Output as _google_protobuf_UInt64Value__Output } from '../../../../google/protobuf/UInt64Value';
import type { TypedExtensionConfig as _envoy_config_core_v3_TypedExtensionConfig, TypedExtensionConfig__Output as _envoy_config_core_v3_TypedExtensionConfig__Output } from '../../../../envoy/config/core/v3/TypedExtensionConfig';
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 { Watchdogs as _envoy_config_bootstrap_v3_Watchdogs, Watchdogs__Output as _envoy_config_bootstrap_v3_Watchdogs__Output } from '../../../../envoy/config/bootstrap/v3/Watchdogs';
import type { FatalAction as _envoy_config_bootstrap_v3_FatalAction, FatalAction__Output as _envoy_config_bootstrap_v3_FatalAction__Output } from '../../../../envoy/config/bootstrap/v3/FatalAction';
import type { DnsResolutionConfig as _envoy_config_core_v3_DnsResolutionConfig, DnsResolutionConfig__Output as _envoy_config_core_v3_DnsResolutionConfig__Output } from '../../../../envoy/config/core/v3/DnsResolutionConfig';
import type { CustomInlineHeader as _envoy_config_bootstrap_v3_CustomInlineHeader, CustomInlineHeader__Output as _envoy_config_bootstrap_v3_CustomInlineHeader__Output } from '../../../../envoy/config/bootstrap/v3/CustomInlineHeader';
import type { Listener as _envoy_config_listener_v3_Listener, Listener__Output as _envoy_config_listener_v3_Listener__Output } from '../../../../envoy/config/listener/v3/Listener';
import type { Cluster as _envoy_config_cluster_v3_Cluster, Cluster__Output as _envoy_config_cluster_v3_Cluster__Output } from '../../../../envoy/config/cluster/v3/Cluster';
import type { Secret as _envoy_extensions_transport_sockets_tls_v3_Secret, Secret__Output as _envoy_extensions_transport_sockets_tls_v3_Secret__Output } from '../../../../envoy/extensions/transport_sockets/tls/v3/Secret';
import type { Long } from '@grpc/proto-loader';
/**
* [#next-free-field: 7]
*/
export interface _envoy_config_bootstrap_v3_Bootstrap_DynamicResources {
/**
* All :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>` are provided by a single
* :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
*/
'lds_config'?: (_envoy_config_core_v3_ConfigSource | null);
/**
* xdstp:// resource locator for listener collection.
* [#not-implemented-hide:]
*/
'lds_resources_locator'?: (string);
/**
* All post-bootstrap :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` definitions are
* provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
* configuration source.
*/
'cds_config'?: (_envoy_config_core_v3_ConfigSource | null);
/**
* xdstp:// resource locator for cluster collection.
* [#not-implemented-hide:]
*/
'cds_resources_locator'?: (string);
/**
* A single :ref:`ADS <config_overview_ads>` source may be optionally
* specified. This must have :ref:`api_type
* <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
* <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
* :ref:`ConfigSources <envoy_v3_api_msg_config.core.v3.ConfigSource>` that have
* the :ref:`ads <envoy_v3_api_field_config.core.v3.ConfigSource.ads>` field set will be
* streamed on the ADS channel.
*/
'ads_config'?: (_envoy_config_core_v3_ApiConfigSource | null);
}
/**
* [#next-free-field: 7]
*/
export interface _envoy_config_bootstrap_v3_Bootstrap_DynamicResources__Output {
/**
* All :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>` are provided by a single
* :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
*/
'lds_config': (_envoy_config_core_v3_ConfigSource__Output | null);
/**
* xdstp:// resource locator for listener collection.
* [#not-implemented-hide:]
*/
'lds_resources_locator': (string);
/**
* All post-bootstrap :ref:`Cluster <envoy_v3_api_msg_config.cluster.v3.Cluster>` definitions are
* provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
* configuration source.
*/
'cds_config': (_envoy_config_core_v3_ConfigSource__Output | null);
/**
* xdstp:// resource locator for cluster collection.
* [#not-implemented-hide:]
*/
'cds_resources_locator': (string);
/**
* A single :ref:`ADS <config_overview_ads>` source may be optionally
* specified. This must have :ref:`api_type
* <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
* <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
* :ref:`ConfigSources <envoy_v3_api_msg_config.core.v3.ConfigSource>` that have
* the :ref:`ads <envoy_v3_api_field_config.core.v3.ConfigSource.ads>` field set will be
* streamed on the ADS channel.
*/
'ads_config': (_envoy_config_core_v3_ApiConfigSource__Output | null);
}
export interface _envoy_config_bootstrap_v3_Bootstrap_StaticResources {
/**
* Static :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>`. These listeners are
* available regardless of LDS configuration.
*/
'listeners'?: (_envoy_config_listener_v3_Listener)[];
/**
* If a network based configuration source is specified for :ref:`cds_config
* <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.DynamicResources.cds_config>`, it's necessary
* to have some initial cluster definitions available to allow Envoy to know
* how to speak to the management server. These cluster definitions may not
* use :ref:`EDS <arch_overview_dynamic_config_eds>` (i.e. they should be static
* IP or DNS-based).
*/
'clusters'?: (_envoy_config_cluster_v3_Cluster)[];
/**
* These static secrets can be used by :ref:`SdsSecretConfig
* <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>`
*/
'secrets'?: (_envoy_extensions_transport_sockets_tls_v3_Secret)[];
}
export interface _envoy_config_bootstrap_v3_Bootstrap_StaticResources__Output {
/**
* Static :ref:`Listeners <envoy_v3_api_msg_config.listener.v3.Listener>`. These listeners are
* available regardless of LDS configuration.
*/
'listeners': (_envoy_config_listener_v3_Listener__Output)[];
/**
* If a network based configuration source is specified for :ref:`cds_config
* <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.DynamicResources.cds_config>`, it's necessary
* to have some initial cluster definitions available to allow Envoy to know
* how to speak to the management server. These cluster definitions may not
* use :ref:`EDS <arch_overview_dynamic_config_eds>` (i.e. they should be static
* IP or DNS-based).
*/
'clusters': (_envoy_config_cluster_v3_Cluster__Output)[];
/**
* These static secrets can be used by :ref:`SdsSecretConfig
* <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>`
*/
'secrets': (_envoy_extensions_transport_sockets_tls_v3_Secret__Output)[];
}
/**
* Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
* [#next-free-field: 33]
*/
export interface Bootstrap {
/**
* Node identity to present to the management server and for instance
* identification purposes (e.g. in generated headers).
*/
'node'?: (_envoy_config_core_v3_Node | null);
/**
* Statically specified resources.
*/
'static_resources'?: (_envoy_config_bootstrap_v3_Bootstrap_StaticResources | null);
/**
* xDS configuration sources.
*/
'dynamic_resources'?: (_envoy_config_bootstrap_v3_Bootstrap_DynamicResources | null);
/**
* Configuration for the cluster manager which owns all upstream clusters
* within the server.
*/
'cluster_manager'?: (_envoy_config_bootstrap_v3_ClusterManager | null);
/**
* Optional file system path to search for startup flag files.
*/
'flags_path'?: (string);
/**
* Optional set of stats sinks.
*/
'stats_sinks'?: (_envoy_config_metrics_v3_StatsSink)[];
/**
* Optional duration between flushes to configured stats sinks. For
* performance reasons Envoy latches counters and only flushes counters and
* gauges at a periodic interval. If not specified the default is 5000ms (5
* seconds). Only one of `stats_flush_interval` or `stats_flush_on_admin`
* can be set.
* Duration must be at least 1ms and at most 5 min.
*/
'stats_flush_interval'?: (_google_protobuf_Duration | null);
/**
* Optional watchdog configuration.
* This is for a single watchdog configuration for the entire system.
* Deprecated in favor of *watchdogs* which has finer granularity.
*/
'watchdog'?: (_envoy_config_bootstrap_v3_Watchdog | null);
/**
* Configuration for an external tracing provider.
*
* .. attention::
* This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`.
*/
'tracing'?: (_envoy_config_trace_v3_Tracing | null);
/**
* Configuration for the local administration HTTP server.
*/
'admin'?: (_envoy_config_bootstrap_v3_Admin | null);
/**
* Configuration for internal processing of stats.
*/
'stats_config'?: (_envoy_config_metrics_v3_StatsConfig | null);
/**
* Health discovery service config option.
* (:ref:`core.ApiConfigSource <envoy_v3_api_msg_config.core.v3.ApiConfigSource>`)
*/
'hds_config'?: (_envoy_config_core_v3_ApiConfigSource | null);
/**
* Optional overload manager configuration.
*/
'overload_manager'?: (_envoy_config_overload_v3_OverloadManager | null);
/**
* Enable :ref:`stats for event dispatcher <operations_performance>`, defaults to false.
* Note that this records a value for each iteration of the event loop on every thread. This
* should normally be minimal overhead, but when using
* :ref:`statsd <envoy_v3_api_msg_config.metrics.v3.StatsdSink>`, it will send each observed value
* over the wire individually because the statsd protocol doesn't have any way to represent a
* histogram summary. Be aware that this can be a very large volume of data.
*/
'enable_dispatcher_stats'?: (boolean);
/**
* Configuration for the runtime configuration provider. If not
* specified, a null provider will be used which will result in all defaults
* being used.
*/
'layered_runtime'?: (_envoy_config_bootstrap_v3_LayeredRuntime | null);
/**
* Optional string which will be used in lieu of x-envoy in prefixing headers.
*
* For example, if this string is present and set to X-Foo, then x-envoy-retry-on will be
* transformed into x-foo-retry-on etc.
*
* Note this applies to the headers Envoy will generate, the headers Envoy will sanitize, and the
* headers Envoy will trust for core code and core extensions only. Be VERY careful making
* changes to this string, especially in multi-layer Envoy deployments or deployments using
* extensions which are not upstream.
*/
'header_prefix'?: (string);
/**
* Optional proxy version which will be used to set the value of :ref:`server.version statistic
* <server_statistics>` if specified. Envoy will not process this value, it will be sent as is to
* :ref:`stats sinks <envoy_v3_api_msg_config.metrics.v3.StatsSink>`.
*/
'stats_server_version_override'?: (_google_protobuf_UInt64Value | null);
/**
* Always use TCP queries instead of UDP queries for DNS lookups.
* This may be overridden on a per-cluster basis in cds_config,
* when :ref:`dns_resolvers <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolvers>` and
* :ref:`use_tcp_for_dns_lookups <envoy_v3_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
* specified.
* Setting this value causes failure if the
* ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
* server startup. Apple' API only uses UDP for DNS resolution.
* This field is deprecated in favor of *dns_resolution_config*
* which aggregates all of the DNS resolver configuration in a single message.
*/
'use_tcp_for_dns_lookups'?: (boolean);
/**
* Specifies optional bootstrap extensions to be instantiated at startup time.
* Each item contains extension specific configuration.
* [#extension-category: envoy.bootstrap]
*/
'bootstrap_extensions'?: (_envoy_config_core_v3_TypedExtensionConfig)[];
/**
* Configuration sources that will participate in
* xdstp:// URL authority resolution. The algorithm is as
* follows:
* 1. The authority field is taken from the xdstp:// URL, call
* this *resource_authority*.
* 2. *resource_authority* is compared against the authorities in any peer
* *ConfigSource*. The peer *ConfigSource* is the configuration source
* message which would have been used unconditionally for resolution
* with opaque resource names. If there is a match with an authority, the
* peer *ConfigSource* message is used.
* 3. *resource_authority* is compared sequentially with the authorities in
* each configuration source in *config_sources*. The first *ConfigSource*
* to match wins.
* 4. As a fallback, if no configuration source matches, then
* *default_config_source* is used.
* 5. If *default_config_source* is not specified, resolution fails.
* [#not-implemented-hide:]
*/
'config_sources'?: (_envoy_config_core_v3_ConfigSource)[];
/**
* Default configuration source for xdstp:// URLs if all
* other resolution fails.
* [#not-implemented-hide:]
*/
'default_config_source'?: (_envoy_config_core_v3_ConfigSource | null);
/**
* Optional overriding of default socket interface. The value must be the name of one of the
* socket interface factories initialized through a bootstrap extension
*/
'default_socket_interface'?: (string);
/**
* Global map of CertificateProvider instances. These instances are referred to by name in the
* :ref:`CommonTlsContext.CertificateProviderInstance.instance_name
* <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance.instance_name>`
* field.
* [#not-implemented-hide:]
*/
'certificate_provider_instances'?: ({[key: string]: _envoy_config_core_v3_TypedExtensionConfig});
/**
* A list of :ref:`Node <envoy_v3_api_msg_config.core.v3.Node>` field names
* that will be included in the context parameters of the effective
* xdstp:// URL that is sent in a discovery request when resource
* locators are used for LDS/CDS. Any non-string field will have its JSON
* encoding set as the context parameter value, with the exception of
* metadata, which will be flattened (see example below). The supported field
* names are:
* - "cluster"
* - "id"
* - "locality.region"
* - "locality.sub_zone"
* - "locality.zone"
* - "metadata"
* - "user_agent_build_version.metadata"
* - "user_agent_build_version.version"
* - "user_agent_name"
* - "user_agent_version"
*
* The node context parameters act as a base layer dictionary for the context
* parameters (i.e. more specific resource specific context parameters will
* override). Field names will be prefixed with udpa.node. when included in
* context parameters.
*
* For example, if node_context_params is ``["user_agent_name", "metadata"]``,
* the implied context parameters might be::
*
* node.user_agent_name: "envoy"
* node.metadata.foo: "{\"bar\": \"baz\"}"
* node.metadata.some: "42"
* node.metadata.thing: "\"thing\""
*
* [#not-implemented-hide:]
*/
'node_context_params'?: (string)[];
/**
* Optional watchdogs configuration.
* This is used for specifying different watchdogs for the different subsystems.
* [#extension-category: envoy.guarddog_actions]
*/
'watchdogs'?: (_envoy_config_bootstrap_v3_Watchdogs | null);
/**
* Specifies optional extensions instantiated at startup time and
* invoked during crash time on the request that caused the crash.
*/
'fatal_actions'?: (_envoy_config_bootstrap_v3_FatalAction)[];
/**
* Flush stats to sinks only when queried for on the admin interface. If set,
* a flush timer is not created. Only one of `stats_flush_on_admin` or
* `stats_flush_interval` can be set.
*/
'stats_flush_on_admin'?: (boolean);
/**
* DNS resolution configuration which includes the underlying dns resolver addresses and options.
* This may be overridden on a per-cluster basis in cds_config, when
* :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
* is specified.
* *dns_resolution_config* will be deprecated once
* :ref:'typed_dns_resolver_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.typed_dns_resolver_config>'
* is fully supported.
*/
'dns_resolution_config'?: (_envoy_config_core_v3_DnsResolutionConfig | null);
/**
* DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
* or any other DNS resolver types and the related parameters.
* For example, an object of :ref:`DnsResolutionConfig <envoy_v3_api_msg_config.core.v3.DnsResolutionConfig>`
* can be packed into this *typed_dns_resolver_config*. This configuration will replace the
* :ref:'dns_resolution_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.dns_resolution_config>'
* configuration eventually.
* TODO(yanjunxiang): Investigate the deprecation plan for *dns_resolution_config*.
* During the transition period when both *dns_resolution_config* and *typed_dns_resolver_config* exists,
* this configuration is optional.
* When *typed_dns_resolver_config* is in place, Envoy will use it and ignore *dns_resolution_config*.
* When *typed_dns_resolver_config* is missing, the default behavior is in place.
* [#not-implemented-hide:]
*/
'typed_dns_resolver_config'?: (_envoy_config_core_v3_TypedExtensionConfig | null);
/**
* Specifies a set of headers that need to be registered as inline header. This configuration
* allows users to customize the inline headers on-demand at Envoy startup without modifying
* Envoy's source code.
*
* Note that the 'set-cookie' header cannot be registered as inline header.
*/
'inline_headers'?: (_envoy_config_bootstrap_v3_CustomInlineHeader)[];
'stats_flush'?: "stats_flush_on_admin";
}
/**
* Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
* [#next-free-field: 33]
*/
export interface Bootstrap__Output {
/**
* Node identity to present to the management server and for instance
* identification purposes (e.g. in generated headers).
*/
'node': (_envoy_config_core_v3_Node__Output | null);
/**
* Statically specified resources.
*/
'static_resources': (_envoy_config_bootstrap_v3_Bootstrap_StaticResources__Output | null);
/**
* xDS configuration sources.
*/
'dynamic_resources': (_envoy_config_bootstrap_v3_Bootstrap_DynamicResources__Output | null);
/**
* Configuration for the cluster manager which owns all upstream clusters
* within the server.
*/
'cluster_manager': (_envoy_config_bootstrap_v3_ClusterManager__Output | null);
/**
* Optional file system path to search for startup flag files.
*/
'flags_path': (string);
/**
* Optional set of stats sinks.
*/
'stats_sinks': (_envoy_config_metrics_v3_StatsSink__Output)[];
/**
* Optional duration between flushes to configured stats sinks. For
* performance reasons Envoy latches counters and only flushes counters and
* gauges at a periodic interval. If not specified the default is 5000ms (5
* seconds). Only one of `stats_flush_interval` or `stats_flush_on_admin`
* can be set.
* Duration must be at least 1ms and at most 5 min.
*/
'stats_flush_interval': (_google_protobuf_Duration__Output | null);
/**
* Optional watchdog configuration.
* This is for a single watchdog configuration for the entire system.
* Deprecated in favor of *watchdogs* which has finer granularity.
*/
'watchdog': (_envoy_config_bootstrap_v3_Watchdog__Output | null);
/**
* Configuration for an external tracing provider.
*
* .. attention::
* This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
* <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`.
*/
'tracing': (_envoy_config_trace_v3_Tracing__Output | null);
/**
* Configuration for the local administration HTTP server.
*/
'admin': (_envoy_config_bootstrap_v3_Admin__Output | null);
/**
* Configuration for internal processing of stats.
*/
'stats_config': (_envoy_config_metrics_v3_StatsConfig__Output | null);
/**
* Health discovery service config option.
* (:ref:`core.ApiConfigSource <envoy_v3_api_msg_config.core.v3.ApiConfigSource>`)
*/
'hds_config': (_envoy_config_core_v3_ApiConfigSource__Output | null);
/**
* Optional overload manager configuration.
*/
'overload_manager': (_envoy_config_overload_v3_OverloadManager__Output | null);
/**
* Enable :ref:`stats for event dispatcher <operations_performance>`, defaults to false.
* Note that this records a value for each iteration of the event loop on every thread. This
* should normally be minimal overhead, but when using
* :ref:`statsd <envoy_v3_api_msg_config.metrics.v3.StatsdSink>`, it will send each observed value
* over the wire individually because the statsd protocol doesn't have any way to represent a
* histogram summary. Be aware that this can be a very large volume of data.
*/
'enable_dispatcher_stats': (boolean);
/**
* Configuration for the runtime configuration provider. If not
* specified, a null provider will be used which will result in all defaults
* being used.
*/
'layered_runtime': (_envoy_config_bootstrap_v3_LayeredRuntime__Output | null);
/**
* Optional string which will be used in lieu of x-envoy in prefixing headers.
*
* For example, if this string is present and set to X-Foo, then x-envoy-retry-on will be
* transformed into x-foo-retry-on etc.
*
* Note this applies to the headers Envoy will generate, the headers Envoy will sanitize, and the
* headers Envoy will trust for core code and core extensions only. Be VERY careful making
* changes to this string, especially in multi-layer Envoy deployments or deployments using
* extensions which are not upstream.
*/
'header_prefix': (string);
/**
* Optional proxy version which will be used to set the value of :ref:`server.version statistic
* <server_statistics>` if specified. Envoy will not process this value, it will be sent as is to
* :ref:`stats sinks <envoy_v3_api_msg_config.metrics.v3.StatsSink>`.
*/
'stats_server_version_override': (_google_protobuf_UInt64Value__Output | null);
/**
* Always use TCP queries instead of UDP queries for DNS lookups.
* This may be overridden on a per-cluster basis in cds_config,
* when :ref:`dns_resolvers <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolvers>` and
* :ref:`use_tcp_for_dns_lookups <envoy_v3_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
* specified.
* Setting this value causes failure if the
* ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
* server startup. Apple' API only uses UDP for DNS resolution.
* This field is deprecated in favor of *dns_resolution_config*
* which aggregates all of the DNS resolver configuration in a single message.
*/
'use_tcp_for_dns_lookups': (boolean);
/**
* Specifies optional bootstrap extensions to be instantiated at startup time.
* Each item contains extension specific configuration.
* [#extension-category: envoy.bootstrap]
*/
'bootstrap_extensions': (_envoy_config_core_v3_TypedExtensionConfig__Output)[];
/**
* Configuration sources that will participate in
* xdstp:// URL authority resolution. The algorithm is as
* follows:
* 1. The authority field is taken from the xdstp:// URL, call
* this *resource_authority*.
* 2. *resource_authority* is compared against the authorities in any peer
* *ConfigSource*. The peer *ConfigSource* is the configuration source
* message which would have been used unconditionally for resolution
* with opaque resource names. If there is a match with an authority, the
* peer *ConfigSource* message is used.
* 3. *resource_authority* is compared sequentially with the authorities in
* each configuration source in *config_sources*. The first *ConfigSource*
* to match wins.
* 4. As a fallback, if no configuration source matches, then
* *default_config_source* is used.
* 5. If *default_config_source* is not specified, resolution fails.
* [#not-implemented-hide:]
*/
'config_sources': (_envoy_config_core_v3_ConfigSource__Output)[];
/**
* Default configuration source for xdstp:// URLs if all
* other resolution fails.
* [#not-implemented-hide:]
*/
'default_config_source': (_envoy_config_core_v3_ConfigSource__Output | null);
/**
* Optional overriding of default socket interface. The value must be the name of one of the
* socket interface factories initialized through a bootstrap extension
*/
'default_socket_interface': (string);
/**
* Global map of CertificateProvider instances. These instances are referred to by name in the
* :ref:`CommonTlsContext.CertificateProviderInstance.instance_name
* <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance.instance_name>`
* field.
* [#not-implemented-hide:]
*/
'certificate_provider_instances': ({[key: string]: _envoy_config_core_v3_TypedExtensionConfig__Output});
/**
* A list of :ref:`Node <envoy_v3_api_msg_config.core.v3.Node>` field names
* that will be included in the context parameters of the effective
* xdstp:// URL that is sent in a discovery request when resource
* locators are used for LDS/CDS. Any non-string field will have its JSON
* encoding set as the context parameter value, with the exception of
* metadata, which will be flattened (see example below). The supported field
* names are:
* - "cluster"
* - "id"
* - "locality.region"
* - "locality.sub_zone"
* - "locality.zone"
* - "metadata"
* - "user_agent_build_version.metadata"
* - "user_agent_build_version.version"
* - "user_agent_name"
* - "user_agent_version"
*
* The node context parameters act as a base layer dictionary for the context
* parameters (i.e. more specific resource specific context parameters will
* override). Field names will be prefixed with udpa.node. when included in
* context parameters.
*
* For example, if node_context_params is ``["user_agent_name", "metadata"]``,
* the implied context parameters might be::
*
* node.user_agent_name: "envoy"
* node.metadata.foo: "{\"bar\": \"baz\"}"
* node.metadata.some: "42"
* node.metadata.thing: "\"thing\""
*
* [#not-implemented-hide:]
*/
'node_context_params': (string)[];
/**
* Optional watchdogs configuration.
* This is used for specifying different watchdogs for the different subsystems.
* [#extension-category: envoy.guarddog_actions]
*/
'watchdogs': (_envoy_config_bootstrap_v3_Watchdogs__Output | null);
/**
* Specifies optional extensions instantiated at startup time and
* invoked during crash time on the request that caused the crash.
*/
'fatal_actions': (_envoy_config_bootstrap_v3_FatalAction__Output)[];
/**
* Flush stats to sinks only when queried for on the admin interface. If set,
* a flush timer is not created. Only one of `stats_flush_on_admin` or
* `stats_flush_interval` can be set.
*/
'stats_flush_on_admin'?: (boolean);
/**
* DNS resolution configuration which includes the underlying dns resolver addresses and options.
* This may be overridden on a per-cluster basis in cds_config, when
* :ref:`dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>`
* is specified.
* *dns_resolution_config* will be deprecated once
* :ref:'typed_dns_resolver_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.typed_dns_resolver_config>'
* is fully supported.
*/
'dns_resolution_config': (_envoy_config_core_v3_DnsResolutionConfig__Output | null);
/**
* DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
* or any other DNS resolver types and the related parameters.
* For example, an object of :ref:`DnsResolutionConfig <envoy_v3_api_msg_config.core.v3.DnsResolutionConfig>`
* can be packed into this *typed_dns_resolver_config*. This configuration will replace the
* :ref:'dns_resolution_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.dns_resolution_config>'
* configuration eventually.
* TODO(yanjunxiang): Investigate the deprecation plan for *dns_resolution_config*.
* During the transition period when both *dns_resolution_config* and *typed_dns_resolver_config* exists,
* this configuration is optional.
* When *typed_dns_resolver_config* is in place, Envoy will use it and ignore *dns_resolution_config*.
* When *typed_dns_resolver_config* is missing, the default behavior is in place.
* [#not-implemented-hide:]
*/
'typed_dns_resolver_config': (_envoy_config_core_v3_TypedExtensionConfig__Output | null);
/**
* Specifies a set of headers that need to be registered as inline header. This configuration
* allows users to customize the inline headers on-demand at Envoy startup without modifying
* Envoy's source code.
*
* Note that the 'set-cookie' header cannot be registered as inline header.
*/
'inline_headers': (_envoy_config_bootstrap_v3_CustomInlineHeader__Output)[];
'stats_flush': "stats_flush_on_admin";
}

View File

@ -1,99 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
import type { BindConfig as _envoy_config_core_v3_BindConfig, BindConfig__Output as _envoy_config_core_v3_BindConfig__Output } from '../../../../envoy/config/core/v3/BindConfig';
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 { EventServiceConfig as _envoy_config_core_v3_EventServiceConfig, EventServiceConfig__Output as _envoy_config_core_v3_EventServiceConfig__Output } from '../../../../envoy/config/core/v3/EventServiceConfig';
export interface _envoy_config_bootstrap_v3_ClusterManager_OutlierDetection {
/**
* Specifies the path to the outlier event log.
*/
'event_log_path'?: (string);
/**
* [#not-implemented-hide:]
* The gRPC service for the outlier detection event service.
* If empty, outlier detection events won't be sent to a remote endpoint.
*/
'event_service'?: (_envoy_config_core_v3_EventServiceConfig | null);
}
export interface _envoy_config_bootstrap_v3_ClusterManager_OutlierDetection__Output {
/**
* Specifies the path to the outlier event log.
*/
'event_log_path': (string);
/**
* [#not-implemented-hide:]
* The gRPC service for the outlier detection event service.
* If empty, outlier detection events won't be sent to a remote endpoint.
*/
'event_service': (_envoy_config_core_v3_EventServiceConfig__Output | null);
}
/**
* Cluster manager :ref:`architecture overview <arch_overview_cluster_manager>`.
*/
export interface ClusterManager {
/**
* Name of the local cluster (i.e., the cluster that owns the Envoy running
* this configuration). In order to enable :ref:`zone aware routing
* <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
* If *local_cluster_name* is defined then :ref:`clusters
* <envoy_v3_api_msg_config.cluster.v3.Cluster>` must be defined in the :ref:`Bootstrap
* static cluster resources
* <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.StaticResources.clusters>`. This is unrelated to
* the :option:`--service-cluster` option which does not `affect zone aware
* routing <https://github.com/envoyproxy/envoy/issues/774>`_.
*/
'local_cluster_name'?: (string);
/**
* Optional global configuration for outlier detection.
*/
'outlier_detection'?: (_envoy_config_bootstrap_v3_ClusterManager_OutlierDetection | null);
/**
* Optional configuration used to bind newly established upstream connections.
* This may be overridden on a per-cluster basis by upstream_bind_config in the cds_config.
*/
'upstream_bind_config'?: (_envoy_config_core_v3_BindConfig | null);
/**
* A management server endpoint to stream load stats to via
* *StreamLoadStats*. This must have :ref:`api_type
* <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
* <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
*/
'load_stats_config'?: (_envoy_config_core_v3_ApiConfigSource | null);
}
/**
* Cluster manager :ref:`architecture overview <arch_overview_cluster_manager>`.
*/
export interface ClusterManager__Output {
/**
* Name of the local cluster (i.e., the cluster that owns the Envoy running
* this configuration). In order to enable :ref:`zone aware routing
* <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
* If *local_cluster_name* is defined then :ref:`clusters
* <envoy_v3_api_msg_config.cluster.v3.Cluster>` must be defined in the :ref:`Bootstrap
* static cluster resources
* <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.StaticResources.clusters>`. This is unrelated to
* the :option:`--service-cluster` option which does not `affect zone aware
* routing <https://github.com/envoyproxy/envoy/issues/774>`_.
*/
'local_cluster_name': (string);
/**
* Optional global configuration for outlier detection.
*/
'outlier_detection': (_envoy_config_bootstrap_v3_ClusterManager_OutlierDetection__Output | null);
/**
* Optional configuration used to bind newly established upstream connections.
* This may be overridden on a per-cluster basis by upstream_bind_config in the cds_config.
*/
'upstream_bind_config': (_envoy_config_core_v3_BindConfig__Output | null);
/**
* A management server endpoint to stream load stats to via
* *StreamLoadStats*. This must have :ref:`api_type
* <envoy_v3_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
* <envoy_v3_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
*/
'load_stats_config': (_envoy_config_core_v3_ApiConfigSource__Output | null);
}

View File

@ -1,85 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
export enum _envoy_config_bootstrap_v3_CustomInlineHeader_InlineHeaderType {
REQUEST_HEADER = 0,
REQUEST_TRAILER = 1,
RESPONSE_HEADER = 2,
RESPONSE_TRAILER = 3,
}
/**
* Used to specify the header that needs to be registered as an inline header.
*
* If request or response contain multiple headers with the same name and the header
* name is registered as an inline header. Then multiple headers will be folded
* into one, and multiple header values will be concatenated by a suitable delimiter.
* The delimiter is generally a comma.
*
* For example, if 'foo' is registered as an inline header, and the headers contains
* the following two headers:
*
* .. code-block:: text
*
* foo: bar
* foo: eep
*
* Then they will eventually be folded into:
*
* .. code-block:: text
*
* foo: bar, eep
*
* Inline headers provide O(1) search performance, but each inline header imposes
* an additional memory overhead on all instances of the corresponding type of
* HeaderMap or TrailerMap.
*/
export interface CustomInlineHeader {
/**
* The name of the header that is expected to be set as the inline header.
*/
'inline_header_name'?: (string);
/**
* The type of the header that is expected to be set as the inline header.
*/
'inline_header_type'?: (_envoy_config_bootstrap_v3_CustomInlineHeader_InlineHeaderType | keyof typeof _envoy_config_bootstrap_v3_CustomInlineHeader_InlineHeaderType);
}
/**
* Used to specify the header that needs to be registered as an inline header.
*
* If request or response contain multiple headers with the same name and the header
* name is registered as an inline header. Then multiple headers will be folded
* into one, and multiple header values will be concatenated by a suitable delimiter.
* The delimiter is generally a comma.
*
* For example, if 'foo' is registered as an inline header, and the headers contains
* the following two headers:
*
* .. code-block:: text
*
* foo: bar
* foo: eep
*
* Then they will eventually be folded into:
*
* .. code-block:: text
*
* foo: bar, eep
*
* Inline headers provide O(1) search performance, but each inline header imposes
* an additional memory overhead on all instances of the corresponding type of
* HeaderMap or TrailerMap.
*/
export interface CustomInlineHeader__Output {
/**
* The name of the header that is expected to be set as the inline header.
*/
'inline_header_name': (string);
/**
* The type of the header that is expected to be set as the inline header.
*/
'inline_header_type': (keyof typeof _envoy_config_bootstrap_v3_CustomInlineHeader_InlineHeaderType);
}

View File

@ -1,39 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
import type { TypedExtensionConfig as _envoy_config_core_v3_TypedExtensionConfig, TypedExtensionConfig__Output as _envoy_config_core_v3_TypedExtensionConfig__Output } from '../../../../envoy/config/core/v3/TypedExtensionConfig';
/**
* Fatal actions to run while crashing. Actions can be safe (meaning they are
* async-signal safe) or unsafe. We run all safe actions before we run unsafe actions.
* If using an unsafe action that could get stuck or deadlock, it important to
* have an out of band system to terminate the process.
*
* The interface for the extension is ``Envoy::Server::Configuration::FatalAction``.
* *FatalAction* extensions live in the ``envoy.extensions.fatal_actions`` API
* namespace.
*/
export interface FatalAction {
/**
* Extension specific configuration for the action. It's expected to conform
* to the ``Envoy::Server::Configuration::FatalAction`` interface.
*/
'config'?: (_envoy_config_core_v3_TypedExtensionConfig | null);
}
/**
* Fatal actions to run while crashing. Actions can be safe (meaning they are
* async-signal safe) or unsafe. We run all safe actions before we run unsafe actions.
* If using an unsafe action that could get stuck or deadlock, it important to
* have an out of band system to terminate the process.
*
* The interface for the extension is ``Envoy::Server::Configuration::FatalAction``.
* *FatalAction* extensions live in the ``envoy.extensions.fatal_actions`` API
* namespace.
*/
export interface FatalAction__Output {
/**
* Extension specific configuration for the action. It's expected to conform
* to the ``Envoy::Server::Configuration::FatalAction`` interface.
*/
'config': (_envoy_config_core_v3_TypedExtensionConfig__Output | null);
}

View File

@ -1,25 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
import type { RuntimeLayer as _envoy_config_bootstrap_v3_RuntimeLayer, RuntimeLayer__Output as _envoy_config_bootstrap_v3_RuntimeLayer__Output } from '../../../../envoy/config/bootstrap/v3/RuntimeLayer';
/**
* Runtime :ref:`configuration overview <config_runtime>`.
*/
export interface LayeredRuntime {
/**
* The :ref:`layers <config_runtime_layering>` of the runtime. This is ordered
* such that later layers in the list overlay earlier entries.
*/
'layers'?: (_envoy_config_bootstrap_v3_RuntimeLayer)[];
}
/**
* Runtime :ref:`configuration overview <config_runtime>`.
*/
export interface LayeredRuntime__Output {
/**
* The :ref:`layers <config_runtime_layering>` of the runtime. This is ordered
* such that later layers in the list overlay earlier entries.
*/
'layers': (_envoy_config_bootstrap_v3_RuntimeLayer__Output)[];
}

View File

@ -1,77 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
/**
* Runtime :ref:`configuration overview <config_runtime>` (deprecated).
*/
export interface Runtime {
/**
* The implementation assumes that the file system tree is accessed via a
* symbolic link. An atomic link swap is used when a new tree should be
* switched to. This parameter specifies the path to the symbolic link. Envoy
* will watch the location for changes and reload the file system tree when
* they happen. If this parameter is not set, there will be no disk based
* runtime.
*/
'symlink_root'?: (string);
/**
* Specifies the subdirectory to load within the root directory. This is
* useful if multiple systems share the same delivery mechanism. Envoy
* configuration elements can be contained in a dedicated subdirectory.
*/
'subdirectory'?: (string);
/**
* Specifies an optional subdirectory to load within the root directory. If
* specified and the directory exists, configuration values within this
* directory will override those found in the primary subdirectory. This is
* useful when Envoy is deployed across many different types of servers.
* Sometimes it is useful to have a per service cluster directory for runtime
* configuration. See below for exactly how the override directory is used.
*/
'override_subdirectory'?: (string);
/**
* Static base runtime. This will be :ref:`overridden
* <config_runtime_layering>` by other runtime layers, e.g.
* disk or admin. This follows the :ref:`runtime protobuf JSON representation
* encoding <config_runtime_proto_json>`.
*/
'base'?: (_google_protobuf_Struct | null);
}
/**
* Runtime :ref:`configuration overview <config_runtime>` (deprecated).
*/
export interface Runtime__Output {
/**
* The implementation assumes that the file system tree is accessed via a
* symbolic link. An atomic link swap is used when a new tree should be
* switched to. This parameter specifies the path to the symbolic link. Envoy
* will watch the location for changes and reload the file system tree when
* they happen. If this parameter is not set, there will be no disk based
* runtime.
*/
'symlink_root': (string);
/**
* Specifies the subdirectory to load within the root directory. This is
* useful if multiple systems share the same delivery mechanism. Envoy
* configuration elements can be contained in a dedicated subdirectory.
*/
'subdirectory': (string);
/**
* Specifies an optional subdirectory to load within the root directory. If
* specified and the directory exists, configuration values within this
* directory will override those found in the primary subdirectory. This is
* useful when Envoy is deployed across many different types of servers.
* Sometimes it is useful to have a per service cluster directory for runtime
* configuration. See below for exactly how the override directory is used.
*/
'override_subdirectory': (string);
/**
* Static base runtime. This will be :ref:`overridden
* <config_runtime_layering>` by other runtime layers, e.g.
* disk or admin. This follows the :ref:`runtime protobuf JSON representation
* encoding <config_runtime_proto_json>`.
*/
'base': (_google_protobuf_Struct__Output | null);
}

View File

@ -1,142 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
import type { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
import type { ConfigSource as _envoy_config_core_v3_ConfigSource, ConfigSource__Output as _envoy_config_core_v3_ConfigSource__Output } from '../../../../envoy/config/core/v3/ConfigSource';
/**
* :ref:`Admin console runtime <config_runtime_admin>` layer.
*/
export interface _envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer {
}
/**
* :ref:`Admin console runtime <config_runtime_admin>` layer.
*/
export interface _envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer__Output {
}
/**
* :ref:`Disk runtime <config_runtime_local_disk>` layer.
*/
export interface _envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer {
/**
* The implementation assumes that the file system tree is accessed via a
* symbolic link. An atomic link swap is used when a new tree should be
* switched to. This parameter specifies the path to the symbolic link.
* Envoy will watch the location for changes and reload the file system tree
* when they happen. See documentation on runtime :ref:`atomicity
* <config_runtime_atomicity>` for further details on how reloads are
* treated.
*/
'symlink_root'?: (string);
/**
* Specifies the subdirectory to load within the root directory. This is
* useful if multiple systems share the same delivery mechanism. Envoy
* configuration elements can be contained in a dedicated subdirectory.
*/
'subdirectory'?: (string);
/**
* :ref:`Append <config_runtime_local_disk_service_cluster_subdirs>` the
* service cluster to the path under symlink root.
*/
'append_service_cluster'?: (boolean);
}
/**
* :ref:`Disk runtime <config_runtime_local_disk>` layer.
*/
export interface _envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer__Output {
/**
* The implementation assumes that the file system tree is accessed via a
* symbolic link. An atomic link swap is used when a new tree should be
* switched to. This parameter specifies the path to the symbolic link.
* Envoy will watch the location for changes and reload the file system tree
* when they happen. See documentation on runtime :ref:`atomicity
* <config_runtime_atomicity>` for further details on how reloads are
* treated.
*/
'symlink_root': (string);
/**
* Specifies the subdirectory to load within the root directory. This is
* useful if multiple systems share the same delivery mechanism. Envoy
* configuration elements can be contained in a dedicated subdirectory.
*/
'subdirectory': (string);
/**
* :ref:`Append <config_runtime_local_disk_service_cluster_subdirs>` the
* service cluster to the path under symlink root.
*/
'append_service_cluster': (boolean);
}
/**
* :ref:`Runtime Discovery Service (RTDS) <config_runtime_rtds>` layer.
*/
export interface _envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer {
/**
* Resource to subscribe to at *rtds_config* for the RTDS layer.
*/
'name'?: (string);
/**
* RTDS configuration source.
*/
'rtds_config'?: (_envoy_config_core_v3_ConfigSource | null);
}
/**
* :ref:`Runtime Discovery Service (RTDS) <config_runtime_rtds>` layer.
*/
export interface _envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer__Output {
/**
* Resource to subscribe to at *rtds_config* for the RTDS layer.
*/
'name': (string);
/**
* RTDS configuration source.
*/
'rtds_config': (_envoy_config_core_v3_ConfigSource__Output | null);
}
/**
* [#next-free-field: 6]
*/
export interface RuntimeLayer {
/**
* Descriptive name for the runtime layer. This is only used for the runtime
* :http:get:`/runtime` output.
*/
'name'?: (string);
/**
* :ref:`Static runtime <config_runtime_bootstrap>` layer.
* This follows the :ref:`runtime protobuf JSON representation encoding
* <config_runtime_proto_json>`. Unlike static xDS resources, this static
* layer is overridable by later layers in the runtime virtual filesystem.
*/
'static_layer'?: (_google_protobuf_Struct | null);
'disk_layer'?: (_envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer | null);
'admin_layer'?: (_envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer | null);
'rtds_layer'?: (_envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer | null);
'layer_specifier'?: "static_layer"|"disk_layer"|"admin_layer"|"rtds_layer";
}
/**
* [#next-free-field: 6]
*/
export interface RuntimeLayer__Output {
/**
* Descriptive name for the runtime layer. This is only used for the runtime
* :http:get:`/runtime` output.
*/
'name': (string);
/**
* :ref:`Static runtime <config_runtime_bootstrap>` layer.
* This follows the :ref:`runtime protobuf JSON representation encoding
* <config_runtime_proto_json>`. Unlike static xDS resources, this static
* layer is overridable by later layers in the runtime virtual filesystem.
*/
'static_layer'?: (_google_protobuf_Struct__Output | null);
'disk_layer'?: (_envoy_config_bootstrap_v3_RuntimeLayer_DiskLayer__Output | null);
'admin_layer'?: (_envoy_config_bootstrap_v3_RuntimeLayer_AdminLayer__Output | null);
'rtds_layer'?: (_envoy_config_bootstrap_v3_RuntimeLayer_RtdsLayer__Output | null);
'layer_specifier': "static_layer"|"disk_layer"|"admin_layer"|"rtds_layer";
}

View File

@ -1,141 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.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';
import type { TypedExtensionConfig as _envoy_config_core_v3_TypedExtensionConfig, TypedExtensionConfig__Output as _envoy_config_core_v3_TypedExtensionConfig__Output } from '../../../../envoy/config/core/v3/TypedExtensionConfig';
export interface _envoy_config_bootstrap_v3_Watchdog_WatchdogAction {
/**
* Extension specific configuration for the action.
*/
'config'?: (_envoy_config_core_v3_TypedExtensionConfig | null);
'event'?: (_envoy_config_bootstrap_v3_Watchdog_WatchdogAction_WatchdogEvent | keyof typeof _envoy_config_bootstrap_v3_Watchdog_WatchdogAction_WatchdogEvent);
}
export interface _envoy_config_bootstrap_v3_Watchdog_WatchdogAction__Output {
/**
* Extension specific configuration for the action.
*/
'config': (_envoy_config_core_v3_TypedExtensionConfig__Output | null);
'event': (keyof typeof _envoy_config_bootstrap_v3_Watchdog_WatchdogAction_WatchdogEvent);
}
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
/**
* The events are fired in this order: KILL, MULTIKILL, MEGAMISS, MISS.
* Within an event type, actions execute in the order they are configured.
* For KILL/MULTIKILL there is a default PANIC that will run after the
* registered actions and kills the process if it wasn't already killed.
* It might be useful to specify several debug actions, and possibly an
* alternate FATAL action.
*/
export enum _envoy_config_bootstrap_v3_Watchdog_WatchdogAction_WatchdogEvent {
UNKNOWN = 0,
KILL = 1,
MULTIKILL = 2,
MEGAMISS = 3,
MISS = 4,
}
/**
* Envoy process watchdog configuration. When configured, this monitors for
* nonresponsive threads and kills the process after the configured thresholds.
* See the :ref:`watchdog documentation <operations_performance_watchdog>` for more information.
* [#next-free-field: 8]
*/
export interface Watchdog {
/**
* The duration after which Envoy counts a nonresponsive thread in the
* *watchdog_miss* statistic. If not specified the default is 200ms.
*/
'miss_timeout'?: (_google_protobuf_Duration | null);
/**
* The duration after which Envoy counts a nonresponsive thread in the
* *watchdog_mega_miss* statistic. If not specified the default is
* 1000ms.
*/
'megamiss_timeout'?: (_google_protobuf_Duration | null);
/**
* If a watched thread has been nonresponsive for this duration, assume a
* programming error and kill the entire Envoy process. Set to 0 to disable
* kill behavior. If not specified the default is 0 (disabled).
*/
'kill_timeout'?: (_google_protobuf_Duration | null);
/**
* If max(2, ceil(registered_threads * Fraction(*multikill_threshold*)))
* threads have been nonresponsive for at least this duration kill the entire
* Envoy process. Set to 0 to disable this behavior. If not specified the
* default is 0 (disabled).
*/
'multikill_timeout'?: (_google_protobuf_Duration | null);
/**
* Sets the threshold for *multikill_timeout* in terms of the percentage of
* nonresponsive threads required for the *multikill_timeout*.
* If not specified the default is 0.
*/
'multikill_threshold'?: (_envoy_type_v3_Percent | null);
/**
* Defines the maximum jitter used to adjust the *kill_timeout* if *kill_timeout* is
* enabled. Enabling this feature would help to reduce risk of synchronized
* watchdog kill events across proxies due to external triggers. Set to 0 to
* disable. If not specified the default is 0 (disabled).
*/
'max_kill_timeout_jitter'?: (_google_protobuf_Duration | null);
/**
* Register actions that will fire on given WatchDog events.
* See *WatchDogAction* for priority of events.
*/
'actions'?: (_envoy_config_bootstrap_v3_Watchdog_WatchdogAction)[];
}
/**
* Envoy process watchdog configuration. When configured, this monitors for
* nonresponsive threads and kills the process after the configured thresholds.
* See the :ref:`watchdog documentation <operations_performance_watchdog>` for more information.
* [#next-free-field: 8]
*/
export interface Watchdog__Output {
/**
* The duration after which Envoy counts a nonresponsive thread in the
* *watchdog_miss* statistic. If not specified the default is 200ms.
*/
'miss_timeout': (_google_protobuf_Duration__Output | null);
/**
* The duration after which Envoy counts a nonresponsive thread in the
* *watchdog_mega_miss* statistic. If not specified the default is
* 1000ms.
*/
'megamiss_timeout': (_google_protobuf_Duration__Output | null);
/**
* If a watched thread has been nonresponsive for this duration, assume a
* programming error and kill the entire Envoy process. Set to 0 to disable
* kill behavior. If not specified the default is 0 (disabled).
*/
'kill_timeout': (_google_protobuf_Duration__Output | null);
/**
* If max(2, ceil(registered_threads * Fraction(*multikill_threshold*)))
* threads have been nonresponsive for at least this duration kill the entire
* Envoy process. Set to 0 to disable this behavior. If not specified the
* default is 0 (disabled).
*/
'multikill_timeout': (_google_protobuf_Duration__Output | null);
/**
* Sets the threshold for *multikill_timeout* in terms of the percentage of
* nonresponsive threads required for the *multikill_timeout*.
* If not specified the default is 0.
*/
'multikill_threshold': (_envoy_type_v3_Percent__Output | null);
/**
* Defines the maximum jitter used to adjust the *kill_timeout* if *kill_timeout* is
* enabled. Enabling this feature would help to reduce risk of synchronized
* watchdog kill events across proxies due to external triggers. Set to 0 to
* disable. If not specified the default is 0 (disabled).
*/
'max_kill_timeout_jitter': (_google_protobuf_Duration__Output | null);
/**
* Register actions that will fire on given WatchDog events.
* See *WatchDogAction* for priority of events.
*/
'actions': (_envoy_config_bootstrap_v3_Watchdog_WatchdogAction__Output)[];
}

View File

@ -1,35 +0,0 @@
// Original file: deps/envoy-api/envoy/config/bootstrap/v3/bootstrap.proto
import type { Watchdog as _envoy_config_bootstrap_v3_Watchdog, Watchdog__Output as _envoy_config_bootstrap_v3_Watchdog__Output } from '../../../../envoy/config/bootstrap/v3/Watchdog';
/**
* Allows you to specify different watchdog configs for different subsystems.
* This allows finer tuned policies for the watchdog. If a subsystem is omitted
* the default values for that system will be used.
*/
export interface Watchdogs {
/**
* Watchdog for the main thread.
*/
'main_thread_watchdog'?: (_envoy_config_bootstrap_v3_Watchdog | null);
/**
* Watchdog for the worker threads.
*/
'worker_watchdog'?: (_envoy_config_bootstrap_v3_Watchdog | null);
}
/**
* Allows you to specify different watchdog configs for different subsystems.
* This allows finer tuned policies for the watchdog. If a subsystem is omitted
* the default values for that system will be used.
*/
export interface Watchdogs__Output {
/**
* Watchdog for the main thread.
*/
'main_thread_watchdog': (_envoy_config_bootstrap_v3_Watchdog__Output | null);
/**
* Watchdog for the worker threads.
*/
'worker_watchdog': (_envoy_config_bootstrap_v3_Watchdog__Output | null);
}

View File

@ -1,6 +1,6 @@
// Original file: deps/envoy-api/envoy/config/cluster/v3/circuit_breaker.proto
import type { RoutingPriority as _envoy_config_core_v3_RoutingPriority } from '../../../../envoy/config/core/v3/RoutingPriority';
import type { RoutingPriority as _envoy_config_core_v3_RoutingPriority, RoutingPriority__Output as _envoy_config_core_v3_RoutingPriority__Output } 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_v3_Percent, Percent__Output as _envoy_type_v3_Percent__Output } from '../../../../envoy/type/v3/Percent';
@ -50,7 +50,7 @@ export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds {
* The :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`
* the specified CircuitBreaker settings apply to.
*/
'priority'?: (_envoy_config_core_v3_RoutingPriority | keyof typeof _envoy_config_core_v3_RoutingPriority);
'priority'?: (_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.
@ -114,7 +114,7 @@ export interface _envoy_config_cluster_v3_CircuitBreakers_Thresholds__Output {
* The :ref:`RoutingPriority<envoy_v3_api_enum_config.core.v3.RoutingPriority>`
* the specified CircuitBreaker settings apply to.
*/
'priority': (keyof typeof _envoy_config_core_v3_RoutingPriority);
'priority': (_envoy_config_core_v3_RoutingPriority__Output);
/**
* The maximum number of connections that Envoy will make to the upstream
* cluster. If not specified, the default is 1024.

View File

@ -30,22 +30,37 @@ import type { UInt64Value as _google_protobuf_UInt64Value, UInt64Value__Output a
import type { MetadataKey as _envoy_type_metadata_v3_MetadataKey, MetadataKey__Output as _envoy_type_metadata_v3_MetadataKey__Output } from '../../../../envoy/type/metadata/v3/MetadataKey';
import type { HealthStatusSet as _envoy_config_core_v3_HealthStatusSet, HealthStatusSet__Output as _envoy_config_core_v3_HealthStatusSet__Output } from '../../../../envoy/config/core/v3/HealthStatusSet';
import type { DoubleValue as _google_protobuf_DoubleValue, DoubleValue__Output as _google_protobuf_DoubleValue__Output } from '../../../../google/protobuf/DoubleValue';
import type { Long } from '@grpc/proto-loader';
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
export enum _envoy_config_cluster_v3_Cluster_ClusterProtocolSelection {
export const _envoy_config_cluster_v3_Cluster_ClusterProtocolSelection = {
/**
* Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2).
* If :ref:`http2_protocol_options <envoy_v3_api_field_config.cluster.v3.Cluster.http2_protocol_options>` are
* present, HTTP2 will be used, otherwise HTTP1.1 will be used.
*/
USE_CONFIGURED_PROTOCOL = 0,
USE_CONFIGURED_PROTOCOL: 'USE_CONFIGURED_PROTOCOL',
/**
* Use HTTP1.1 or HTTP2, depending on which one is used on the downstream connection.
*/
USE_DOWNSTREAM_PROTOCOL = 1,
}
USE_DOWNSTREAM_PROTOCOL: 'USE_DOWNSTREAM_PROTOCOL',
} as const;
export type _envoy_config_cluster_v3_Cluster_ClusterProtocolSelection =
/**
* Cluster can only operate on one of the possible upstream protocols (HTTP1.1, HTTP2).
* If :ref:`http2_protocol_options <envoy_v3_api_field_config.cluster.v3.Cluster.http2_protocol_options>` are
* present, HTTP2 will be used, otherwise HTTP1.1 will be used.
*/
| 'USE_CONFIGURED_PROTOCOL'
| 0
/**
* Use HTTP1.1 or HTTP2, depending on which one is used on the downstream connection.
*/
| 'USE_DOWNSTREAM_PROTOCOL'
| 1
export type _envoy_config_cluster_v3_Cluster_ClusterProtocolSelection__Output = typeof _envoy_config_cluster_v3_Cluster_ClusterProtocolSelection[keyof typeof _envoy_config_cluster_v3_Cluster_ClusterProtocolSelection]
/**
* Common configuration for all load balancer implementations.
@ -269,36 +284,81 @@ export interface _envoy_config_cluster_v3_Cluster_CustomClusterType__Output {
* Refer to :ref:`service discovery type <arch_overview_service_discovery_types>`
* for an explanation on each type.
*/
export enum _envoy_config_cluster_v3_Cluster_DiscoveryType {
export const _envoy_config_cluster_v3_Cluster_DiscoveryType = {
/**
* Refer to the :ref:`static discovery type<arch_overview_service_discovery_types_static>`
* for an explanation.
*/
STATIC = 0,
STATIC: 'STATIC',
/**
* Refer to the :ref:`strict DNS discovery
* type<arch_overview_service_discovery_types_strict_dns>`
* for an explanation.
*/
STRICT_DNS = 1,
STRICT_DNS: 'STRICT_DNS',
/**
* Refer to the :ref:`logical DNS discovery
* type<arch_overview_service_discovery_types_logical_dns>`
* for an explanation.
*/
LOGICAL_DNS = 2,
LOGICAL_DNS: 'LOGICAL_DNS',
/**
* Refer to the :ref:`service discovery type<arch_overview_service_discovery_types_eds>`
* for an explanation.
*/
EDS = 3,
EDS: 'EDS',
/**
* Refer to the :ref:`original destination discovery
* type<arch_overview_service_discovery_types_original_destination>`
* for an explanation.
*/
ORIGINAL_DST = 4,
}
ORIGINAL_DST: 'ORIGINAL_DST',
} as const;
/**
* Refer to :ref:`service discovery type <arch_overview_service_discovery_types>`
* for an explanation on each type.
*/
export type _envoy_config_cluster_v3_Cluster_DiscoveryType =
/**
* Refer to the :ref:`static discovery type<arch_overview_service_discovery_types_static>`
* for an explanation.
*/
| 'STATIC'
| 0
/**
* Refer to the :ref:`strict DNS discovery
* type<arch_overview_service_discovery_types_strict_dns>`
* for an explanation.
*/
| 'STRICT_DNS'
| 1
/**
* Refer to the :ref:`logical DNS discovery
* type<arch_overview_service_discovery_types_logical_dns>`
* for an explanation.
*/
| 'LOGICAL_DNS'
| 2
/**
* Refer to the :ref:`service discovery type<arch_overview_service_discovery_types_eds>`
* for an explanation.
*/
| 'EDS'
| 3
/**
* Refer to the :ref:`original destination discovery
* type<arch_overview_service_discovery_types_original_destination>`
* for an explanation.
*/
| 'ORIGINAL_DST'
| 4
/**
* Refer to :ref:`service discovery type <arch_overview_service_discovery_types>`
* for an explanation on each type.
*/
export type _envoy_config_cluster_v3_Cluster_DiscoveryType__Output = typeof _envoy_config_cluster_v3_Cluster_DiscoveryType[keyof typeof _envoy_config_cluster_v3_Cluster_DiscoveryType]
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
@ -325,13 +385,73 @@ export enum _envoy_config_cluster_v3_Cluster_DiscoveryType {
* ignored.
* [#next-major-version: deprecate AUTO in favor of a V6_PREFERRED option.]
*/
export enum _envoy_config_cluster_v3_Cluster_DnsLookupFamily {
AUTO = 0,
V4_ONLY = 1,
V6_ONLY = 2,
V4_PREFERRED = 3,
ALL = 4,
}
export const _envoy_config_cluster_v3_Cluster_DnsLookupFamily = {
AUTO: 'AUTO',
V4_ONLY: 'V4_ONLY',
V6_ONLY: 'V6_ONLY',
V4_PREFERRED: 'V4_PREFERRED',
ALL: 'ALL',
} as const;
/**
* When V4_ONLY is selected, the DNS resolver will only perform a lookup for
* addresses in the IPv4 family. If V6_ONLY is selected, the DNS resolver will
* only perform a lookup for addresses in the IPv6 family. If AUTO is
* specified, the DNS resolver will first perform a lookup for addresses in
* the IPv6 family and fallback to a lookup for addresses in the IPv4 family.
* This is semantically equivalent to a non-existent V6_PREFERRED option.
* AUTO is a legacy name that is more opaque than
* necessary and will be deprecated in favor of V6_PREFERRED in a future major version of the API.
* If V4_PREFERRED is specified, the DNS resolver will first perform a lookup for addresses in the
* IPv4 family and fallback to a lookup for addresses in the IPv6 family. i.e., the callback
* target will only get v6 addresses if there were NO v4 addresses to return.
* If ALL is specified, the DNS resolver will perform a lookup for both IPv4 and IPv6 families,
* and return all resolved addresses. When this is used, Happy Eyeballs will be enabled for
* upstream connections. Refer to :ref:`Happy Eyeballs Support <arch_overview_happy_eyeballs>`
* for more information.
* For cluster types other than
* :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
* :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
* this setting is
* ignored.
* [#next-major-version: deprecate AUTO in favor of a V6_PREFERRED option.]
*/
export type _envoy_config_cluster_v3_Cluster_DnsLookupFamily =
| 'AUTO'
| 0
| 'V4_ONLY'
| 1
| 'V6_ONLY'
| 2
| 'V4_PREFERRED'
| 3
| 'ALL'
| 4
/**
* When V4_ONLY is selected, the DNS resolver will only perform a lookup for
* addresses in the IPv4 family. If V6_ONLY is selected, the DNS resolver will
* only perform a lookup for addresses in the IPv6 family. If AUTO is
* specified, the DNS resolver will first perform a lookup for addresses in
* the IPv6 family and fallback to a lookup for addresses in the IPv4 family.
* This is semantically equivalent to a non-existent V6_PREFERRED option.
* AUTO is a legacy name that is more opaque than
* necessary and will be deprecated in favor of V6_PREFERRED in a future major version of the API.
* If V4_PREFERRED is specified, the DNS resolver will first perform a lookup for addresses in the
* IPv4 family and fallback to a lookup for addresses in the IPv6 family. i.e., the callback
* target will only get v6 addresses if there were NO v4 addresses to return.
* If ALL is specified, the DNS resolver will perform a lookup for both IPv4 and IPv6 families,
* and return all resolved addresses. When this is used, Happy Eyeballs will be enabled for
* upstream connections. Refer to :ref:`Happy Eyeballs Support <arch_overview_happy_eyeballs>`
* for more information.
* For cluster types other than
* :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>` and
* :ref:`LOGICAL_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.LOGICAL_DNS>`,
* this setting is
* ignored.
* [#next-major-version: deprecate AUTO in favor of a V6_PREFERRED option.]
*/
export type _envoy_config_cluster_v3_Cluster_DnsLookupFamily__Output = typeof _envoy_config_cluster_v3_Cluster_DnsLookupFamily[keyof typeof _envoy_config_cluster_v3_Cluster_DnsLookupFamily]
/**
* Only valid when discovery type is EDS.
@ -370,18 +490,40 @@ export interface _envoy_config_cluster_v3_Cluster_EdsClusterConfig__Output {
/**
* The hash function used to hash hosts onto the ketama ring.
*/
export enum _envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction {
export const _envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction = {
/**
* Use `xxHash <https://github.com/Cyan4973/xxHash>`_, this is the default hash function.
*/
XX_HASH = 0,
XX_HASH: 'XX_HASH',
/**
* Use `MurmurHash2 <https://sites.google.com/site/murmurhash/>`_, this is compatible with
* std:hash<string> in GNU libstdc++ 3.4.20 or above. This is typically the case when compiled
* on Linux and not macOS.
*/
MURMUR_HASH_2 = 1,
}
MURMUR_HASH_2: 'MURMUR_HASH_2',
} as const;
/**
* The hash function used to hash hosts onto the ketama ring.
*/
export type _envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction =
/**
* Use `xxHash <https://github.com/Cyan4973/xxHash>`_, this is the default hash function.
*/
| 'XX_HASH'
| 0
/**
* Use `MurmurHash2 <https://sites.google.com/site/murmurhash/>`_, this is compatible with
* std:hash<string> in GNU libstdc++ 3.4.20 or above. This is typically the case when compiled
* on Linux and not macOS.
*/
| 'MURMUR_HASH_2'
| 1
/**
* The hash function used to hash hosts onto the ketama ring.
*/
export type _envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction__Output = typeof _envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction[keyof typeof _envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction]
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
@ -389,42 +531,42 @@ export enum _envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction {
* Refer to :ref:`load balancer type <arch_overview_load_balancing_types>` architecture
* overview section for information on each type.
*/
export enum _envoy_config_cluster_v3_Cluster_LbPolicy {
export const _envoy_config_cluster_v3_Cluster_LbPolicy = {
/**
* Refer to the :ref:`round robin load balancing
* policy<arch_overview_load_balancing_types_round_robin>`
* for an explanation.
*/
ROUND_ROBIN = 0,
ROUND_ROBIN: 'ROUND_ROBIN',
/**
* Refer to the :ref:`least request load balancing
* policy<arch_overview_load_balancing_types_least_request>`
* for an explanation.
*/
LEAST_REQUEST = 1,
LEAST_REQUEST: 'LEAST_REQUEST',
/**
* Refer to the :ref:`ring hash load balancing
* policy<arch_overview_load_balancing_types_ring_hash>`
* for an explanation.
*/
RING_HASH = 2,
RING_HASH: 'RING_HASH',
/**
* Refer to the :ref:`random load balancing
* policy<arch_overview_load_balancing_types_random>`
* for an explanation.
*/
RANDOM = 3,
RANDOM: 'RANDOM',
/**
* Refer to the :ref:`Maglev load balancing policy<arch_overview_load_balancing_types_maglev>`
* for an explanation.
*/
MAGLEV = 5,
MAGLEV: 'MAGLEV',
/**
* This load balancer type must be specified if the configured cluster provides a cluster
* specific load balancer. Consult the configured cluster's documentation for whether to set
* this option or not.
*/
CLUSTER_PROVIDED = 6,
CLUSTER_PROVIDED: 'CLUSTER_PROVIDED',
/**
* Use the new :ref:`load_balancing_policy
* <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field to determine the LB policy.
@ -432,8 +574,70 @@ export enum _envoy_config_cluster_v3_Cluster_LbPolicy {
* <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field without
* setting any value in :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
*/
LOAD_BALANCING_POLICY_CONFIG = 7,
}
LOAD_BALANCING_POLICY_CONFIG: 'LOAD_BALANCING_POLICY_CONFIG',
} as const;
/**
* Refer to :ref:`load balancer type <arch_overview_load_balancing_types>` architecture
* overview section for information on each type.
*/
export type _envoy_config_cluster_v3_Cluster_LbPolicy =
/**
* Refer to the :ref:`round robin load balancing
* policy<arch_overview_load_balancing_types_round_robin>`
* for an explanation.
*/
| 'ROUND_ROBIN'
| 0
/**
* Refer to the :ref:`least request load balancing
* policy<arch_overview_load_balancing_types_least_request>`
* for an explanation.
*/
| 'LEAST_REQUEST'
| 1
/**
* Refer to the :ref:`ring hash load balancing
* policy<arch_overview_load_balancing_types_ring_hash>`
* for an explanation.
*/
| 'RING_HASH'
| 2
/**
* Refer to the :ref:`random load balancing
* policy<arch_overview_load_balancing_types_random>`
* for an explanation.
*/
| 'RANDOM'
| 3
/**
* Refer to the :ref:`Maglev load balancing policy<arch_overview_load_balancing_types_maglev>`
* for an explanation.
*/
| 'MAGLEV'
| 5
/**
* This load balancer type must be specified if the configured cluster provides a cluster
* specific load balancer. Consult the configured cluster's documentation for whether to set
* this option or not.
*/
| 'CLUSTER_PROVIDED'
| 6
/**
* Use the new :ref:`load_balancing_policy
* <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field to determine the LB policy.
* This has been deprecated in favor of using the :ref:`load_balancing_policy
* <envoy_v3_api_field_config.cluster.v3.Cluster.load_balancing_policy>` field without
* setting any value in :ref:`lb_policy<envoy_v3_api_field_config.cluster.v3.Cluster.lb_policy>`.
*/
| 'LOAD_BALANCING_POLICY_CONFIG'
| 7
/**
* Refer to :ref:`load balancer type <arch_overview_load_balancing_types>` architecture
* overview section for information on each type.
*/
export type _envoy_config_cluster_v3_Cluster_LbPolicy__Output = typeof _envoy_config_cluster_v3_Cluster_LbPolicy[keyof typeof _envoy_config_cluster_v3_Cluster_LbPolicy]
/**
* Optionally divide the endpoints in this cluster into subsets defined by
@ -446,7 +650,7 @@ export interface _envoy_config_cluster_v3_Cluster_LbSubsetConfig {
* metadata. The value defaults to
* :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
*/
'fallback_policy'?: (_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy | keyof typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy);
'fallback_policy'?: (_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy);
/**
* Specifies the default subset of endpoints used during fallback if
* fallback_policy is
@ -519,7 +723,7 @@ export interface _envoy_config_cluster_v3_Cluster_LbSubsetConfig {
* The value defaults to
* :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
*/
'metadata_fallback_policy'?: (_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy | keyof typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy);
'metadata_fallback_policy'?: (_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy);
}
/**
@ -533,7 +737,7 @@ export interface _envoy_config_cluster_v3_Cluster_LbSubsetConfig__Output {
* metadata. The value defaults to
* :ref:`NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetFallbackPolicy.NO_FALLBACK>`.
*/
'fallback_policy': (keyof typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy);
'fallback_policy': (_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy__Output);
/**
* Specifies the default subset of endpoints used during fallback if
* fallback_policy is
@ -606,7 +810,7 @@ export interface _envoy_config_cluster_v3_Cluster_LbSubsetConfig__Output {
* The value defaults to
* :ref:`METADATA_NO_FALLBACK<envoy_v3_api_enum_value_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
*/
'metadata_fallback_policy': (keyof typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy);
'metadata_fallback_policy': (_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy__Output);
}
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
@ -618,19 +822,43 @@ export interface _envoy_config_cluster_v3_Cluster_LbSubsetConfig__Output {
* etc). If DEFAULT_SUBSET is selected, load balancing is performed over the
* endpoints matching the values from the default_subset field.
*/
export enum _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy {
NO_FALLBACK = 0,
ANY_ENDPOINT = 1,
DEFAULT_SUBSET = 2,
}
export const _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy = {
NO_FALLBACK: 'NO_FALLBACK',
ANY_ENDPOINT: 'ANY_ENDPOINT',
DEFAULT_SUBSET: 'DEFAULT_SUBSET',
} as const;
/**
* If NO_FALLBACK is selected, a result
* equivalent to no healthy hosts is reported. If ANY_ENDPOINT is selected,
* any cluster endpoint may be returned (subject to policy, health checks,
* etc). If DEFAULT_SUBSET is selected, load balancing is performed over the
* endpoints matching the values from the default_subset field.
*/
export type _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy =
| 'NO_FALLBACK'
| 0
| 'ANY_ENDPOINT'
| 1
| 'DEFAULT_SUBSET'
| 2
/**
* If NO_FALLBACK is selected, a result
* equivalent to no healthy hosts is reported. If ANY_ENDPOINT is selected,
* any cluster endpoint may be returned (subject to policy, health checks,
* etc). If DEFAULT_SUBSET is selected, load balancing is performed over the
* endpoints matching the values from the default_subset field.
*/
export type _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy__Output = typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy[keyof typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetFallbackPolicy]
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
export enum _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy {
export const _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy = {
/**
* No fallback. Route metadata will be used as-is.
*/
METADATA_NO_FALLBACK = 0,
METADATA_NO_FALLBACK: 'METADATA_NO_FALLBACK',
/**
* A special metadata key ``fallback_list`` will be used to provide variants of metadata to try.
* Value of ``fallback_list`` key has to be a list. Every list element has to be a struct - it will
@ -672,8 +900,60 @@ export enum _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFall
*
* is used.
*/
FALLBACK_LIST = 1,
}
FALLBACK_LIST: 'FALLBACK_LIST',
} as const;
export type _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy =
/**
* No fallback. Route metadata will be used as-is.
*/
| 'METADATA_NO_FALLBACK'
| 0
/**
* A special metadata key ``fallback_list`` will be used to provide variants of metadata to try.
* Value of ``fallback_list`` key has to be a list. Every list element has to be a struct - it will
* be merged with route metadata, overriding keys that appear in both places.
* ``fallback_list`` entries will be used in order until a host is found.
*
* ``fallback_list`` key itself is removed from metadata before subset load balancing is performed.
*
* Example:
*
* for metadata:
*
* .. code-block:: yaml
*
* version: 1.0
* fallback_list:
* - version: 2.0
* hardware: c64
* - hardware: c32
* - version: 3.0
*
* at first, metadata:
*
* .. code-block:: json
*
* {"version": "2.0", "hardware": "c64"}
*
* will be used for load balancing. If no host is found, metadata:
*
* .. code-block:: json
*
* {"version": "1.0", "hardware": "c32"}
*
* is next to try. If it still results in no host, finally metadata:
*
* .. code-block:: json
*
* {"version": "3.0"}
*
* is used.
*/
| 'FALLBACK_LIST'
| 1
export type _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy__Output = typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy[keyof typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetMetadataFallbackPolicy]
/**
* Specifications for subsets.
@ -699,7 +979,7 @@ export interface _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelecto
* The behavior used when no endpoint subset matches the selected route's
* metadata.
*/
'fallback_policy'?: (_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy | keyof typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy);
'fallback_policy'?: (_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy);
/**
* Subset of
* :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
@ -738,7 +1018,7 @@ export interface _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelecto
* The behavior used when no endpoint subset matches the selected route's
* metadata.
*/
'fallback_policy': (keyof typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy);
'fallback_policy': (_envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy__Output);
/**
* Subset of
* :ref:`keys<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.keys>` used by
@ -758,25 +1038,25 @@ export interface _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelecto
/**
* Allows to override top level fallback policy per selector.
*/
export enum _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy {
export const _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy = {
/**
* If NOT_DEFINED top level config fallback policy is used instead.
*/
NOT_DEFINED = 0,
NOT_DEFINED: 'NOT_DEFINED',
/**
* If NO_FALLBACK is selected, a result equivalent to no healthy hosts is reported.
*/
NO_FALLBACK = 1,
NO_FALLBACK: 'NO_FALLBACK',
/**
* If ANY_ENDPOINT is selected, any cluster endpoint may be returned
* (subject to policy, health checks, etc).
*/
ANY_ENDPOINT = 2,
ANY_ENDPOINT: 'ANY_ENDPOINT',
/**
* If DEFAULT_SUBSET is selected, load balancing is performed over the
* endpoints matching the values from the default_subset field.
*/
DEFAULT_SUBSET = 3,
DEFAULT_SUBSET: 'DEFAULT_SUBSET',
/**
* If KEYS_SUBSET is selected, subset selector matching is performed again with metadata
* keys reduced to
@ -784,8 +1064,49 @@ export enum _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbS
* It allows for a fallback to a different, less specific selector if some of the keys of
* the selector are considered optional.
*/
KEYS_SUBSET = 4,
}
KEYS_SUBSET: 'KEYS_SUBSET',
} as const;
/**
* Allows to override top level fallback policy per selector.
*/
export type _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy =
/**
* If NOT_DEFINED top level config fallback policy is used instead.
*/
| 'NOT_DEFINED'
| 0
/**
* If NO_FALLBACK is selected, a result equivalent to no healthy hosts is reported.
*/
| 'NO_FALLBACK'
| 1
/**
* If ANY_ENDPOINT is selected, any cluster endpoint may be returned
* (subject to policy, health checks, etc).
*/
| 'ANY_ENDPOINT'
| 2
/**
* If DEFAULT_SUBSET is selected, load balancing is performed over the
* endpoints matching the values from the default_subset field.
*/
| 'DEFAULT_SUBSET'
| 3
/**
* If KEYS_SUBSET is selected, subset selector matching is performed again with metadata
* keys reduced to
* :ref:`fallback_keys_subset<envoy_v3_api_field_config.cluster.v3.Cluster.LbSubsetConfig.LbSubsetSelector.fallback_keys_subset>`.
* It allows for a fallback to a different, less specific selector if some of the keys of
* the selector are considered optional.
*/
| 'KEYS_SUBSET'
| 4
/**
* Allows to override top level fallback policy per selector.
*/
export type _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy__Output = typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy[keyof typeof _envoy_config_cluster_v3_Cluster_LbSubsetConfig_LbSubsetSelector_LbSubsetSelectorFallbackPolicy]
/**
* Specific configuration for the LeastRequest load balancing policy.
@ -1149,7 +1470,7 @@ export interface _envoy_config_cluster_v3_Cluster_RingHashLbConfig {
* The hash function used to hash hosts onto the ketama ring. The value defaults to
* :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
*/
'hash_function'?: (_envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction | keyof typeof _envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction);
'hash_function'?: (_envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction);
/**
* Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
* to further constrain resource use. See also
@ -1174,7 +1495,7 @@ export interface _envoy_config_cluster_v3_Cluster_RingHashLbConfig__Output {
* The hash function used to hash hosts onto the ketama ring. The value defaults to
* :ref:`XX_HASH<envoy_v3_api_enum_value_config.cluster.v3.Cluster.RingHashLbConfig.HashFunction.XX_HASH>`.
*/
'hash_function': (keyof typeof _envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction);
'hash_function': (_envoy_config_cluster_v3_Cluster_RingHashLbConfig_HashFunction__Output);
/**
* Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered
* to further constrain resource use. See also
@ -1394,7 +1715,7 @@ export interface Cluster {
* The :ref:`service discovery type <arch_overview_service_discovery_types>`
* to use for resolving the cluster.
*/
'type'?: (_envoy_config_cluster_v3_Cluster_DiscoveryType | keyof typeof _envoy_config_cluster_v3_Cluster_DiscoveryType);
'type'?: (_envoy_config_cluster_v3_Cluster_DiscoveryType);
/**
* Configuration to use for EDS updates for the Cluster.
*/
@ -1413,7 +1734,7 @@ export interface Cluster {
* The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
* when picking a host in the cluster.
*/
'lb_policy'?: (_envoy_config_cluster_v3_Cluster_LbPolicy | keyof typeof _envoy_config_cluster_v3_Cluster_LbPolicy);
'lb_policy'?: (_envoy_config_cluster_v3_Cluster_LbPolicy);
/**
* Optional :ref:`active health checking <arch_overview_health_checking>`
* configuration for the cluster. If no
@ -1429,6 +1750,7 @@ export interface Cluster {
*
* .. attention::
* This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
* @deprecated
*/
'max_requests_per_connection'?: (_google_protobuf_UInt32Value | null);
/**
@ -1444,6 +1766,7 @@ export interface Cluster {
* See :ref:`upstream_http_protocol_options
* <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
* for example usage.
* @deprecated
*/
'http_protocol_options'?: (_envoy_config_core_v3_Http1ProtocolOptions | null);
/**
@ -1460,6 +1783,7 @@ export interface Cluster {
* See :ref:`upstream_http_protocol_options
* <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
* for example usage.
* @deprecated
*/
'http2_protocol_options'?: (_envoy_config_core_v3_Http2ProtocolOptions | null);
/**
@ -1479,7 +1803,7 @@ export interface Cluster {
* value defaults to
* :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
*/
'dns_lookup_family'?: (_envoy_config_cluster_v3_Cluster_DnsLookupFamily | keyof typeof _envoy_config_cluster_v3_Cluster_DnsLookupFamily);
'dns_lookup_family'?: (_envoy_config_cluster_v3_Cluster_DnsLookupFamily);
/**
* If DNS resolvers are specified and the cluster type is either
* :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
@ -1493,6 +1817,7 @@ export interface Cluster {
* this setting is ignored.
* This field is deprecated in favor of ``dns_resolution_config``
* which aggregates all of the DNS resolver configuration in a single message.
* @deprecated
*/
'dns_resolvers'?: (_envoy_config_core_v3_Address)[];
/**
@ -1554,8 +1879,9 @@ export interface Cluster {
* <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
* http_protocol_options can be set via the cluster's
* :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
* @deprecated
*/
'protocol_selection'?: (_envoy_config_cluster_v3_Cluster_ClusterProtocolSelection | keyof typeof _envoy_config_cluster_v3_Cluster_ClusterProtocolSelection);
'protocol_selection'?: (_envoy_config_cluster_v3_Cluster_ClusterProtocolSelection);
/**
* Common configuration for all load balancer implementations.
*/
@ -1581,6 +1907,7 @@ export interface Cluster {
* See :ref:`upstream_http_protocol_options
* <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
* for example usage.
* @deprecated
*/
'common_http_protocol_options'?: (_envoy_config_core_v3_HttpProtocolOptions | null);
/**
@ -1743,6 +2070,7 @@ export interface Cluster {
* Always use TCP queries instead of UDP queries for DNS lookups.
* This field is deprecated in favor of ``dns_resolution_config``
* which aggregates all of the DNS resolver configuration in a single message.
* @deprecated
*/
'use_tcp_for_dns_lookups'?: (boolean);
/**
@ -1756,6 +2084,7 @@ export interface Cluster {
* See :ref:`upstream_http_protocol_options
* <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
* for example usage.
* @deprecated
*/
'upstream_http_protocol_options'?: (_envoy_config_core_v3_UpstreamHttpProtocolOptions | null);
/**
@ -1769,6 +2098,7 @@ export interface Cluster {
*
* This field has been deprecated in favor of ``timeout_budgets``, part of
* :ref:`track_cluster_stats <envoy_v3_api_field_config.cluster.v3.Cluster.track_cluster_stats>`.
* @deprecated
*/
'track_timeout_budgets'?: (boolean);
/**
@ -1813,6 +2143,7 @@ export interface Cluster {
* DNS resolution configuration which includes the underlying dns resolver addresses and options.
* This field is deprecated in favor of
* :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
* @deprecated
*/
'dns_resolution_config'?: (_envoy_config_core_v3_DnsResolutionConfig | null);
/**
@ -1873,7 +2204,7 @@ export interface Cluster__Output {
* The :ref:`service discovery type <arch_overview_service_discovery_types>`
* to use for resolving the cluster.
*/
'type'?: (keyof typeof _envoy_config_cluster_v3_Cluster_DiscoveryType);
'type'?: (_envoy_config_cluster_v3_Cluster_DiscoveryType__Output);
/**
* Configuration to use for EDS updates for the Cluster.
*/
@ -1892,7 +2223,7 @@ export interface Cluster__Output {
* The :ref:`load balancer type <arch_overview_load_balancing_types>` to use
* when picking a host in the cluster.
*/
'lb_policy': (keyof typeof _envoy_config_cluster_v3_Cluster_LbPolicy);
'lb_policy': (_envoy_config_cluster_v3_Cluster_LbPolicy__Output);
/**
* Optional :ref:`active health checking <arch_overview_health_checking>`
* configuration for the cluster. If no
@ -1908,6 +2239,7 @@ export interface Cluster__Output {
*
* .. attention::
* This field has been deprecated in favor of the :ref:`max_requests_per_connection <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_requests_per_connection>` field.
* @deprecated
*/
'max_requests_per_connection': (_google_protobuf_UInt32Value__Output | null);
/**
@ -1923,6 +2255,7 @@ export interface Cluster__Output {
* See :ref:`upstream_http_protocol_options
* <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
* for example usage.
* @deprecated
*/
'http_protocol_options': (_envoy_config_core_v3_Http1ProtocolOptions__Output | null);
/**
@ -1939,6 +2272,7 @@ export interface Cluster__Output {
* See :ref:`upstream_http_protocol_options
* <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
* for example usage.
* @deprecated
*/
'http2_protocol_options': (_envoy_config_core_v3_Http2ProtocolOptions__Output | null);
/**
@ -1958,7 +2292,7 @@ export interface Cluster__Output {
* value defaults to
* :ref:`AUTO<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DnsLookupFamily.AUTO>`.
*/
'dns_lookup_family': (keyof typeof _envoy_config_cluster_v3_Cluster_DnsLookupFamily);
'dns_lookup_family': (_envoy_config_cluster_v3_Cluster_DnsLookupFamily__Output);
/**
* If DNS resolvers are specified and the cluster type is either
* :ref:`STRICT_DNS<envoy_v3_api_enum_value_config.cluster.v3.Cluster.DiscoveryType.STRICT_DNS>`,
@ -1972,6 +2306,7 @@ export interface Cluster__Output {
* this setting is ignored.
* This field is deprecated in favor of ``dns_resolution_config``
* which aggregates all of the DNS resolver configuration in a single message.
* @deprecated
*/
'dns_resolvers': (_envoy_config_core_v3_Address__Output)[];
/**
@ -2033,8 +2368,9 @@ export interface Cluster__Output {
* <envoy_v3_api_msg_extensions.upstreams.http.v3.HttpProtocolOptions>` message.
* http_protocol_options can be set via the cluster's
* :ref:`extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`.
* @deprecated
*/
'protocol_selection': (keyof typeof _envoy_config_cluster_v3_Cluster_ClusterProtocolSelection);
'protocol_selection': (_envoy_config_cluster_v3_Cluster_ClusterProtocolSelection__Output);
/**
* Common configuration for all load balancer implementations.
*/
@ -2060,6 +2396,7 @@ export interface Cluster__Output {
* See :ref:`upstream_http_protocol_options
* <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
* for example usage.
* @deprecated
*/
'common_http_protocol_options': (_envoy_config_core_v3_HttpProtocolOptions__Output | null);
/**
@ -2222,6 +2559,7 @@ export interface Cluster__Output {
* Always use TCP queries instead of UDP queries for DNS lookups.
* This field is deprecated in favor of ``dns_resolution_config``
* which aggregates all of the DNS resolver configuration in a single message.
* @deprecated
*/
'use_tcp_for_dns_lookups': (boolean);
/**
@ -2235,6 +2573,7 @@ export interface Cluster__Output {
* See :ref:`upstream_http_protocol_options
* <envoy_v3_api_field_extensions.upstreams.http.v3.HttpProtocolOptions.upstream_http_protocol_options>`
* for example usage.
* @deprecated
*/
'upstream_http_protocol_options': (_envoy_config_core_v3_UpstreamHttpProtocolOptions__Output | null);
/**
@ -2248,6 +2587,7 @@ export interface Cluster__Output {
*
* This field has been deprecated in favor of ``timeout_budgets``, part of
* :ref:`track_cluster_stats <envoy_v3_api_field_config.cluster.v3.Cluster.track_cluster_stats>`.
* @deprecated
*/
'track_timeout_budgets': (boolean);
/**
@ -2292,6 +2632,7 @@ export interface Cluster__Output {
* DNS resolution configuration which includes the underlying dns resolver addresses and options.
* This field is deprecated in favor of
* :ref:`typed_dns_resolver_config <envoy_v3_api_field_config.cluster.v3.Cluster.typed_dns_resolver_config>`.
* @deprecated
*/
'dns_resolution_config': (_envoy_config_core_v3_DnsResolutionConfig__Output | null);
/**

View File

@ -1,25 +0,0 @@
// Original file: deps/envoy-api/envoy/config/cluster/v3/cluster.proto
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
* establishing upstream connections.
*/
export interface UpstreamBindConfig {
/**
* The address Envoy should bind to when establishing upstream connections.
*/
'source_address'?: (_envoy_config_core_v3_Address | null);
}
/**
* An extensible structure containing the address Envoy should bind to when
* establishing upstream connections.
*/
export interface UpstreamBindConfig__Output {
/**
* The address Envoy should bind to when establishing upstream connections.
*/
'source_address': (_envoy_config_core_v3_Address__Output | null);
}

View File

@ -3,7 +3,7 @@
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
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';
import type { ApiVersion as _envoy_config_core_v3_ApiVersion, ApiVersion__Output as _envoy_config_core_v3_ApiVersion__Output } from '../../../../envoy/config/core/v3/ApiVersion';
import type { TypedExtensionConfig as _envoy_config_core_v3_TypedExtensionConfig, TypedExtensionConfig__Output as _envoy_config_core_v3_TypedExtensionConfig__Output } from '../../../../envoy/config/core/v3/TypedExtensionConfig';
// Original file: deps/envoy-api/envoy/config/core/v3/config_source.proto
@ -11,41 +11,91 @@ import type { TypedExtensionConfig as _envoy_config_core_v3_TypedExtensionConfig
/**
* APIs may be fetched via either REST or gRPC.
*/
export enum _envoy_config_core_v3_ApiConfigSource_ApiType {
export const _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.
* @deprecated
*/
DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE = 0,
DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE: 'DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE',
/**
* REST-JSON v2 API. The `canonical JSON encoding
* <https://developers.google.com/protocol-buffers/docs/proto3#json>`_ for
* the v2 protos is used.
*/
REST = 1,
REST: 'REST',
/**
* SotW gRPC service.
*/
GRPC = 2,
GRPC: 'GRPC',
/**
* Using the delta xDS gRPC service, i.e. DeltaDiscovery{Request,Response}
* rather than Discovery{Request,Response}. Rather than sending Envoy the entire state
* with every update, the xDS server only sends what has changed since the last update.
*/
DELTA_GRPC = 3,
DELTA_GRPC: 'DELTA_GRPC',
/**
* 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,
AGGREGATED_GRPC: 'AGGREGATED_GRPC',
/**
* 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,
}
AGGREGATED_DELTA_GRPC: 'AGGREGATED_DELTA_GRPC',
} as const;
/**
* APIs may be fetched via either REST or gRPC.
*/
export type _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.
*/
| '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
* the v2 protos is used.
*/
| 'REST'
| 1
/**
* SotW gRPC service.
*/
| 'GRPC'
| 2
/**
* Using the delta xDS gRPC service, i.e. DeltaDiscovery{Request,Response}
* rather than Discovery{Request,Response}. Rather than sending Envoy the entire state
* 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
/**
* APIs may be fetched via either REST or gRPC.
*/
export type _envoy_config_core_v3_ApiConfigSource_ApiType__Output = typeof _envoy_config_core_v3_ApiConfigSource_ApiType[keyof typeof _envoy_config_core_v3_ApiConfigSource_ApiType]
/**
* API configuration source. This identifies the API type and cluster that Envoy
@ -56,7 +106,7 @@ export interface ApiConfigSource {
/**
* API type (gRPC, REST, delta gRPC)
*/
'api_type'?: (_envoy_config_core_v3_ApiConfigSource_ApiType | keyof typeof _envoy_config_core_v3_ApiConfigSource_ApiType);
'api_type'?: (_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
@ -94,7 +144,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_config_core_v3_ApiVersion | keyof typeof _envoy_config_core_v3_ApiVersion);
'transport_api_version'?: (_envoy_config_core_v3_ApiVersion);
/**
* A list of config validators that will be executed when a new update is
* received from the ApiConfigSource. Note that each validator handles a
@ -117,7 +167,7 @@ export interface ApiConfigSource__Output {
/**
* API type (gRPC, REST, delta gRPC)
*/
'api_type': (keyof typeof _envoy_config_core_v3_ApiConfigSource_ApiType);
'api_type': (_envoy_config_core_v3_ApiConfigSource_ApiType__Output);
/**
* Cluster names should be used only with REST. If > 1
* cluster is defined, clusters will be cycled through if any kind of failure
@ -155,7 +205,7 @@ 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_config_core_v3_ApiVersion);
'transport_api_version': (_envoy_config_core_v3_ApiVersion__Output);
/**
* A list of config validators that will be executed when a new update is
* received from the ApiConfigSource. Note that each validator handles a

View File

@ -4,19 +4,50 @@
* 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 {
export const ApiVersion = {
/**
* When not specified, we assume v2, to ease migration to Envoy's stable API
* versioning. If a client does not support v2 (e.g. due to deprecation), this
* is an invalid value.
* @deprecated
*/
AUTO: 'AUTO',
/**
* Use xDS v2 API.
* @deprecated
*/
V2: 'V2',
/**
* Use xDS v3 API.
*/
V3: 'V3',
} as const;
/**
* xDS API and non-xDS services version. This is used to describe both resource and transport
* protocol versions (in distinct configuration fields).
*/
export type ApiVersion =
/**
* When not specified, we assume v2, to ease migration to Envoy's stable API
* versioning. If a client does not support v2 (e.g. due to deprecation), this
* is an invalid value.
*/
AUTO = 0,
| 'AUTO'
| 0
/**
* Use xDS v2 API.
*/
V2 = 1,
| 'V2'
| 1
/**
* Use xDS v3 API.
*/
V3 = 2,
}
| 'V3'
| 2
/**
* xDS API and non-xDS services version. This is used to describe both resource and transport
* protocol versions (in distinct configuration fields).
*/
export type ApiVersion__Output = typeof ApiVersion[keyof typeof ApiVersion]

View File

@ -32,6 +32,7 @@ export interface BindConfig {
/**
* Deprecated by
* :ref:`extra_source_addresses <envoy_v3_api_field_config.core.v3.BindConfig.extra_source_addresses>`
* @deprecated
*/
'additional_source_addresses'?: (_envoy_config_core_v3_SocketAddress)[];
/**
@ -76,6 +77,7 @@ export interface BindConfig__Output {
/**
* Deprecated by
* :ref:`extra_source_addresses <envoy_v3_api_field_config.core.v3.BindConfig.extra_source_addresses>`
* @deprecated
*/
'additional_source_addresses': (_envoy_config_core_v3_SocketAddress__Output)[];
/**

View File

@ -4,7 +4,7 @@ import type { ApiConfigSource as _envoy_config_core_v3_ApiConfigSource, ApiConfi
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_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 { ApiVersion as _envoy_config_core_v3_ApiVersion, ApiVersion__Output as _envoy_config_core_v3_ApiVersion__Output } 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';
import type { PathConfigSource as _envoy_config_core_v3_PathConfigSource, PathConfigSource__Output as _envoy_config_core_v3_PathConfigSource__Output } from '../../../../envoy/config/core/v3/PathConfigSource';
@ -20,6 +20,7 @@ import type { PathConfigSource as _envoy_config_core_v3_PathConfigSource, PathCo
export interface ConfigSource {
/**
* Deprecated in favor of ``path_config_source``. Use that field instead.
* @deprecated
*/
'path'?: (string);
/**
@ -60,7 +61,7 @@ export interface ConfigSource {
* will request for resources and the resource type that the client will in
* turn expect to be delivered.
*/
'resource_api_version'?: (_envoy_config_core_v3_ApiVersion | keyof typeof _envoy_config_core_v3_ApiVersion);
'resource_api_version'?: (_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
@ -87,6 +88,7 @@ export interface ConfigSource {
export interface ConfigSource__Output {
/**
* Deprecated in favor of ``path_config_source``. Use that field instead.
* @deprecated
*/
'path'?: (string);
/**
@ -127,7 +129,7 @@ export interface ConfigSource__Output {
* will request for resources and the resource type that the client will in
* turn expect to be delivered.
*/
'resource_api_version': (keyof typeof _envoy_config_core_v3_ApiVersion);
'resource_api_version': (_envoy_config_core_v3_ApiVersion__Output);
/**
* 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

View File

@ -24,6 +24,7 @@ export interface Extension {
* [#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.]
* @deprecated
*/
'type_descriptor'?: (string);
/**
@ -64,6 +65,7 @@ export interface Extension__Output {
* [#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.]
* @deprecated
*/
'type_descriptor': (string);
/**

View File

@ -8,7 +8,7 @@ import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _goo
/**
* Describes the supported actions types for header append action.
*/
export enum _envoy_config_core_v3_HeaderValueOption_HeaderAppendAction {
export const _envoy_config_core_v3_HeaderValueOption_HeaderAppendAction = {
/**
* If the header already exists, this action will result in:
*
@ -17,24 +17,63 @@ export enum _envoy_config_core_v3_HeaderValueOption_HeaderAppendAction {
*
* If the header doesn't exist then this will add new header with specified key and value.
*/
APPEND_IF_EXISTS_OR_ADD = 0,
APPEND_IF_EXISTS_OR_ADD: 'APPEND_IF_EXISTS_OR_ADD',
/**
* This action will add the header if it doesn't already exist. If the header
* already exists then this will be a no-op.
*/
ADD_IF_ABSENT = 1,
ADD_IF_ABSENT: 'ADD_IF_ABSENT',
/**
* This action will overwrite the specified value by discarding any existing values if
* the header already exists. If the header doesn't exist then this will add the header
* with specified key and value.
*/
OVERWRITE_IF_EXISTS_OR_ADD = 2,
OVERWRITE_IF_EXISTS_OR_ADD: 'OVERWRITE_IF_EXISTS_OR_ADD',
/**
* This action will overwrite the specified value by discarding any existing values if
* the header already exists. If the header doesn't exist then this will be no-op.
*/
OVERWRITE_IF_EXISTS = 3,
}
OVERWRITE_IF_EXISTS: 'OVERWRITE_IF_EXISTS',
} as const;
/**
* Describes the supported actions types for header append action.
*/
export type _envoy_config_core_v3_HeaderValueOption_HeaderAppendAction =
/**
* If the header already exists, this action will result in:
*
* - Comma-concatenated for predefined inline headers.
* - Duplicate header added in the ``HeaderMap`` for other headers.
*
* If the header doesn't exist then this will add new header with specified key and value.
*/
| 'APPEND_IF_EXISTS_OR_ADD'
| 0
/**
* This action will add the header if it doesn't already exist. If the header
* already exists then this will be a no-op.
*/
| 'ADD_IF_ABSENT'
| 1
/**
* This action will overwrite the specified value by discarding any existing values if
* the header already exists. If the header doesn't exist then this will add the header
* with specified key and value.
*/
| 'OVERWRITE_IF_EXISTS_OR_ADD'
| 2
/**
* This action will overwrite the specified value by discarding any existing values if
* the header already exists. If the header doesn't exist then this will be no-op.
*/
| 'OVERWRITE_IF_EXISTS'
| 3
/**
* Describes the supported actions types for header append action.
*/
export type _envoy_config_core_v3_HeaderValueOption_HeaderAppendAction__Output = typeof _envoy_config_core_v3_HeaderValueOption_HeaderAppendAction[keyof typeof _envoy_config_core_v3_HeaderValueOption_HeaderAppendAction]
/**
* Header name/value pair plus option to control append behavior.
@ -54,6 +93,7 @@ export interface HeaderValueOption {
* The :ref:`external authorization service <envoy_v3_api_msg_service.auth.v3.CheckResponse>` and
* :ref:`external processor service <envoy_v3_api_msg_service.ext_proc.v3.ProcessingResponse>` have
* default value (``false``) for this field.
* @deprecated
*/
'append'?: (_google_protobuf_BoolValue | null);
/**
@ -62,7 +102,7 @@ export interface HeaderValueOption {
* Value defaults to :ref:`APPEND_IF_EXISTS_OR_ADD
* <envoy_v3_api_enum_value_config.core.v3.HeaderValueOption.HeaderAppendAction.APPEND_IF_EXISTS_OR_ADD>`.
*/
'append_action'?: (_envoy_config_core_v3_HeaderValueOption_HeaderAppendAction | keyof typeof _envoy_config_core_v3_HeaderValueOption_HeaderAppendAction);
'append_action'?: (_envoy_config_core_v3_HeaderValueOption_HeaderAppendAction);
/**
* Is the header value allowed to be empty? If false (default), custom headers with empty values are dropped,
* otherwise they are added.
@ -88,6 +128,7 @@ export interface HeaderValueOption__Output {
* The :ref:`external authorization service <envoy_v3_api_msg_service.auth.v3.CheckResponse>` and
* :ref:`external processor service <envoy_v3_api_msg_service.ext_proc.v3.ProcessingResponse>` have
* default value (``false``) for this field.
* @deprecated
*/
'append': (_google_protobuf_BoolValue__Output | null);
/**
@ -96,7 +137,7 @@ export interface HeaderValueOption__Output {
* Value defaults to :ref:`APPEND_IF_EXISTS_OR_ADD
* <envoy_v3_api_enum_value_config.core.v3.HeaderValueOption.HeaderAppendAction.APPEND_IF_EXISTS_OR_ADD>`.
*/
'append_action': (keyof typeof _envoy_config_core_v3_HeaderValueOption_HeaderAppendAction);
'append_action': (_envoy_config_core_v3_HeaderValueOption_HeaderAppendAction__Output);
/**
* Is the header value allowed to be empty? If false (default), custom headers with empty values are dropped,
* otherwise they are added.

View File

@ -9,11 +9,10 @@ import type { TypedExtensionConfig as _envoy_config_core_v3_TypedExtensionConfig
import type { UInt64Value as _google_protobuf_UInt64Value, UInt64Value__Output as _google_protobuf_UInt64Value__Output } from '../../../../google/protobuf/UInt64Value';
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 { CodecClientType as _envoy_type_v3_CodecClientType, CodecClientType__Output as _envoy_type_v3_CodecClientType__Output } 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 { RequestMethod as _envoy_config_core_v3_RequestMethod } from '../../../../envoy/config/core/v3/RequestMethod';
import type { RequestMethod as _envoy_config_core_v3_RequestMethod, RequestMethod__Output as _envoy_config_core_v3_RequestMethod__Output } from '../../../../envoy/config/core/v3/RequestMethod';
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.
@ -183,7 +182,7 @@ export interface _envoy_config_core_v3_HealthCheck_HttpHealthCheck {
/**
* Use specified application protocol for health checks.
*/
'codec_client_type'?: (_envoy_type_v3_CodecClientType | keyof typeof _envoy_type_v3_CodecClientType);
'codec_client_type'?: (_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
@ -197,7 +196,7 @@ export interface _envoy_config_core_v3_HealthCheck_HttpHealthCheck {
* CONNECT method is disallowed because it is not appropriate for health check request.
* If a non-200 response is expected by the method, it needs to be set in :ref:`expected_statuses <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.expected_statuses>`.
*/
'method'?: (_envoy_config_core_v3_RequestMethod | keyof typeof _envoy_config_core_v3_RequestMethod);
'method'?: (_envoy_config_core_v3_RequestMethod);
}
/**
@ -272,7 +271,7 @@ export interface _envoy_config_core_v3_HealthCheck_HttpHealthCheck__Output {
/**
* Use specified application protocol for health checks.
*/
'codec_client_type': (keyof typeof _envoy_type_v3_CodecClientType);
'codec_client_type': (_envoy_type_v3_CodecClientType__Output);
/**
* An optional service name parameter which is used to validate the identity of
* the health checked cluster using a :ref:`StringMatcher
@ -286,7 +285,7 @@ export interface _envoy_config_core_v3_HealthCheck_HttpHealthCheck__Output {
* CONNECT method is disallowed because it is not appropriate for health check request.
* If a non-200 response is expected by the method, it needs to be set in :ref:`expected_statuses <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.expected_statuses>`.
*/
'method': (keyof typeof _envoy_config_core_v3_RequestMethod);
'method': (_envoy_config_core_v3_RequestMethod__Output);
}
/**
@ -497,6 +496,7 @@ export interface HealthCheck {
* in the file sink extension.
*
* Specifies the path to the :ref:`health check event log <arch_overview_health_check_logging>`.
* @deprecated
*/
'event_log_path'?: (string);
/**
@ -687,6 +687,7 @@ export interface HealthCheck__Output {
* in the file sink extension.
*
* Specifies the path to the :ref:`health check event log <arch_overview_health_check_logging>`.
* @deprecated
*/
'event_log_path': (string);
/**

View File

@ -3,19 +3,19 @@
/**
* Endpoint health status.
*/
export enum HealthStatus {
export const HealthStatus = {
/**
* The health status is not known. This is interpreted by Envoy as ``HEALTHY``.
*/
UNKNOWN = 0,
UNKNOWN: 'UNKNOWN',
/**
* Healthy.
*/
HEALTHY = 1,
HEALTHY: 'HEALTHY',
/**
* Unhealthy.
*/
UNHEALTHY = 2,
UNHEALTHY: 'UNHEALTHY',
/**
* Connection draining in progress. E.g.,
* `<https://aws.amazon.com/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/>`_
@ -23,14 +23,59 @@ export enum HealthStatus {
* `<https://cloud.google.com/compute/docs/load-balancing/enabling-connection-draining>`_.
* This is interpreted by Envoy as ``UNHEALTHY``.
*/
DRAINING = 3,
DRAINING: 'DRAINING',
/**
* Health check timed out. This is part of HDS and is interpreted by Envoy as
* ``UNHEALTHY``.
*/
TIMEOUT = 4,
TIMEOUT: 'TIMEOUT',
/**
* Degraded.
*/
DEGRADED = 5,
}
DEGRADED: 'DEGRADED',
} as const;
/**
* Endpoint health status.
*/
export type HealthStatus =
/**
* The health status is not known. This is interpreted by Envoy as ``HEALTHY``.
*/
| 'UNKNOWN'
| 0
/**
* Healthy.
*/
| 'HEALTHY'
| 1
/**
* Unhealthy.
*/
| 'UNHEALTHY'
| 2
/**
* Connection draining in progress. E.g.,
* `<https://aws.amazon.com/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/>`_
* or
* `<https://cloud.google.com/compute/docs/load-balancing/enabling-connection-draining>`_.
* This is interpreted by Envoy as ``UNHEALTHY``.
*/
| 'DRAINING'
| 3
/**
* Health check timed out. This is part of HDS and is interpreted by Envoy as
* ``UNHEALTHY``.
*/
| 'TIMEOUT'
| 4
/**
* Degraded.
*/
| 'DEGRADED'
| 5
/**
* Endpoint health status.
*/
export type HealthStatus__Output = typeof HealthStatus[keyof typeof HealthStatus]

View File

@ -1,17 +1,17 @@
// Original file: deps/envoy-api/envoy/config/core/v3/health_check.proto
import type { HealthStatus as _envoy_config_core_v3_HealthStatus } from '../../../../envoy/config/core/v3/HealthStatus';
import type { HealthStatus as _envoy_config_core_v3_HealthStatus, HealthStatus__Output as _envoy_config_core_v3_HealthStatus__Output } from '../../../../envoy/config/core/v3/HealthStatus';
export interface HealthStatusSet {
/**
* An order-independent set of health status.
*/
'statuses'?: (_envoy_config_core_v3_HealthStatus | keyof typeof _envoy_config_core_v3_HealthStatus)[];
'statuses'?: (_envoy_config_core_v3_HealthStatus)[];
}
export interface HealthStatusSet__Output {
/**
* An order-independent set of health status.
*/
'statuses': (keyof typeof _envoy_config_core_v3_HealthStatus)[];
'statuses': (_envoy_config_core_v3_HealthStatus__Output)[];
}

View File

@ -159,6 +159,7 @@ export interface Http2ProtocolOptions {
* <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.
* @deprecated
*/
'stream_error_on_invalid_http_messaging'?: (boolean);
/**
@ -339,6 +340,7 @@ export interface Http2ProtocolOptions__Output {
* <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.
* @deprecated
*/
'stream_error_on_invalid_http_messaging': (boolean);
/**

View File

@ -12,24 +12,61 @@ 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_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction {
export const _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction = {
/**
* Allow headers with underscores. This is the default behavior.
*/
ALLOW = 0,
ALLOW: 'ALLOW',
/**
* Reject client request. HTTP/1 requests are rejected with the 400 status. HTTP/2 requests
* end with the stream reset. The "httpN.requests_rejected_with_underscores_in_headers" counter
* is incremented for each rejected request.
*/
REJECT_REQUEST = 1,
REJECT_REQUEST: 'REJECT_REQUEST',
/**
* Drop the client header with name containing underscores. The header is dropped before the filter chain is
* invoked and as such filters will not see dropped headers. The
* "httpN.dropped_headers_with_underscores" is incremented for each dropped header.
*/
DROP_HEADER = 2,
}
DROP_HEADER: 'DROP_HEADER',
} as const;
/**
* Action to take when Envoy receives client request with header names containing underscore
* characters.
* Underscore character is allowed in header names by the RFC-7230 and this behavior is implemented
* as a security measure due to systems that treat '_' and '-' as interchangeable. Envoy by default allows client request headers with underscore
* characters.
*/
export type _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction =
/**
* Allow headers with underscores. This is the default behavior.
*/
| 'ALLOW'
| 0
/**
* Reject client request. HTTP/1 requests are rejected with the 400 status. HTTP/2 requests
* end with the stream reset. The "httpN.requests_rejected_with_underscores_in_headers" counter
* is incremented for each rejected request.
*/
| 'REJECT_REQUEST'
| 1
/**
* Drop the client header with name containing underscores. The header is dropped before the filter chain is
* invoked and as such filters will not see dropped headers. The
* "httpN.dropped_headers_with_underscores" is incremented for each dropped header.
*/
| 'DROP_HEADER'
| 2
/**
* Action to take when Envoy receives client request with header names containing underscore
* characters.
* Underscore character is allowed in header names by the RFC-7230 and this behavior is implemented
* as a security measure due to systems that treat '_' and '-' as interchangeable. Envoy by default allows client request headers with underscore
* characters.
*/
export type _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction__Output = typeof _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction[keyof typeof _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction]
/**
* [#next-free-field: 7]
@ -81,7 +118,7 @@ export interface HttpProtocolOptions {
* Note: this only affects client headers. It does not affect headers added
* by Envoy filters and does not have any impact if added to cluster config.
*/
'headers_with_underscores_action'?: (_envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction | keyof typeof _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction);
'headers_with_underscores_action'?: (_envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction);
/**
* Optional maximum requests for both upstream and downstream connections.
* If not specified, there is no limit.
@ -141,7 +178,7 @@ export interface HttpProtocolOptions__Output {
* Note: this only affects client headers. It does not affect headers added
* by Envoy filters and does not have any impact if added to cluster config.
*/
'headers_with_underscores_action': (keyof typeof _envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction);
'headers_with_underscores_action': (_envoy_config_core_v3_HttpProtocolOptions_HeadersWithUnderscoresAction__Output);
/**
* Optional maximum requests for both upstream and downstream connections.
* If not specified, there is no limit.

View File

@ -78,6 +78,7 @@ export interface Node {
* 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.
* @deprecated
*/
'listening_addresses'?: (_envoy_config_core_v3_Address)[];
/**
@ -162,6 +163,7 @@ export interface Node__Output {
* 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.
* @deprecated
*/
'listening_addresses': (_envoy_config_core_v3_Address__Output)[];
/**

View File

@ -4,22 +4,36 @@ import type { ProxyProtocolPassThroughTLVs as _envoy_config_core_v3_ProxyProtoco
// Original file: deps/envoy-api/envoy/config/core/v3/proxy_protocol.proto
export enum _envoy_config_core_v3_ProxyProtocolConfig_Version {
export const _envoy_config_core_v3_ProxyProtocolConfig_Version = {
/**
* PROXY protocol version 1. Human readable format.
*/
V1 = 0,
V1: 'V1',
/**
* PROXY protocol version 2. Binary format.
*/
V2 = 1,
}
V2: 'V2',
} as const;
export type _envoy_config_core_v3_ProxyProtocolConfig_Version =
/**
* PROXY protocol version 1. Human readable format.
*/
| 'V1'
| 0
/**
* PROXY protocol version 2. Binary format.
*/
| 'V2'
| 1
export type _envoy_config_core_v3_ProxyProtocolConfig_Version__Output = typeof _envoy_config_core_v3_ProxyProtocolConfig_Version[keyof typeof _envoy_config_core_v3_ProxyProtocolConfig_Version]
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);
'version'?: (_envoy_config_core_v3_ProxyProtocolConfig_Version);
/**
* This config controls which TLVs can be passed to upstream if it is Proxy Protocol
* V2 header. If there is no setting for this field, no TLVs will be passed through.
@ -31,7 +45,7 @@ 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);
'version': (_envoy_config_core_v3_ProxyProtocolConfig_Version__Output);
/**
* This config controls which TLVs can be passed to upstream if it is Proxy Protocol
* V2 header. If there is no setting for this field, no TLVs will be passed through.

View File

@ -3,23 +3,37 @@
// Original file: deps/envoy-api/envoy/config/core/v3/proxy_protocol.proto
export enum _envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType {
export const _envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType = {
/**
* Pass all TLVs.
*/
INCLUDE_ALL = 0,
INCLUDE_ALL: 'INCLUDE_ALL',
/**
* Pass specific TLVs defined in tlv_type.
*/
INCLUDE = 1,
}
INCLUDE: 'INCLUDE',
} as const;
export type _envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType =
/**
* Pass all TLVs.
*/
| 'INCLUDE_ALL'
| 0
/**
* Pass specific TLVs defined in tlv_type.
*/
| 'INCLUDE'
| 1
export type _envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType__Output = typeof _envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType[keyof typeof _envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType]
export interface ProxyProtocolPassThroughTLVs {
/**
* The strategy to pass through TLVs. Default is INCLUDE_ALL.
* If INCLUDE_ALL is set, all TLVs will be passed through no matter the tlv_type field.
*/
'match_type'?: (_envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType | keyof typeof _envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType);
'match_type'?: (_envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType);
/**
* The TLV types that are applied based on match_type.
* TLV type is defined as uint8_t in proxy protocol. See `the spec
@ -33,7 +47,7 @@ export interface ProxyProtocolPassThroughTLVs__Output {
* The strategy to pass through TLVs. Default is INCLUDE_ALL.
* If INCLUDE_ALL is set, all TLVs will be passed through no matter the tlv_type field.
*/
'match_type': (keyof typeof _envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType);
'match_type': (_envoy_config_core_v3_ProxyProtocolPassThroughTLVs_PassTLVsMatchType__Output);
/**
* The TLV types that are applied based on match_type.
* TLV type is defined as uint8_t in proxy protocol. See `the spec

View File

@ -3,15 +3,45 @@
/**
* 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,
}
export const RequestMethod = {
METHOD_UNSPECIFIED: 'METHOD_UNSPECIFIED',
GET: 'GET',
HEAD: 'HEAD',
POST: 'POST',
PUT: 'PUT',
DELETE: 'DELETE',
CONNECT: 'CONNECT',
OPTIONS: 'OPTIONS',
TRACE: 'TRACE',
PATCH: 'PATCH',
} as const;
/**
* HTTP request method.
*/
export type RequestMethod =
| 'METHOD_UNSPECIFIED'
| 0
| 'GET'
| 1
| 'HEAD'
| 2
| 'POST'
| 3
| 'PUT'
| 4
| 'DELETE'
| 5
| 'CONNECT'
| 6
| 'OPTIONS'
| 7
| 'TRACE'
| 8
| 'PATCH'
| 9
/**
* HTTP request method.
*/
export type RequestMethod__Output = typeof RequestMethod[keyof typeof RequestMethod]

View File

@ -9,7 +9,33 @@
* 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,
}
export const RoutingPriority = {
DEFAULT: 'DEFAULT',
HIGH: 'HIGH',
} as const;
/**
* 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 type RoutingPriority =
| 'DEFAULT'
| 0
| 'HIGH'
| 1
/**
* 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 type RoutingPriority__Output = typeof RoutingPriority[keyof typeof RoutingPriority]

View File

@ -1,6 +1,6 @@
// Original file: deps/envoy-api/envoy/config/core/v3/config_source.proto
import type { ApiVersion as _envoy_config_core_v3_ApiVersion } from '../../../../envoy/config/core/v3/ApiVersion';
import type { ApiVersion as _envoy_config_core_v3_ApiVersion, ApiVersion__Output as _envoy_config_core_v3_ApiVersion__Output } from '../../../../envoy/config/core/v3/ApiVersion';
/**
* [#not-implemented-hide:]
@ -13,7 +13,7 @@ export interface SelfConfigSource {
* 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_config_core_v3_ApiVersion | keyof typeof _envoy_config_core_v3_ApiVersion);
'transport_api_version'?: (_envoy_config_core_v3_ApiVersion);
}
/**
@ -27,5 +27,5 @@ export interface SelfConfigSource__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_config_core_v3_ApiVersion);
'transport_api_version': (_envoy_config_core_v3_ApiVersion__Output);
}

View File

@ -3,16 +3,24 @@
// Original file: deps/envoy-api/envoy/config/core/v3/address.proto
export enum _envoy_config_core_v3_SocketAddress_Protocol {
TCP = 0,
UDP = 1,
}
export const _envoy_config_core_v3_SocketAddress_Protocol = {
TCP: 'TCP',
UDP: 'UDP',
} as const;
export type _envoy_config_core_v3_SocketAddress_Protocol =
| 'TCP'
| 0
| 'UDP'
| 1
export type _envoy_config_core_v3_SocketAddress_Protocol__Output = typeof _envoy_config_core_v3_SocketAddress_Protocol[keyof typeof _envoy_config_core_v3_SocketAddress_Protocol]
/**
* [#next-free-field: 7]
*/
export interface SocketAddress {
'protocol'?: (_envoy_config_core_v3_SocketAddress_Protocol | keyof typeof _envoy_config_core_v3_SocketAddress_Protocol);
'protocol'?: (_envoy_config_core_v3_SocketAddress_Protocol);
/**
* The address for this socket. :ref:`Listeners <config_listeners>` will bind
* to the address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::``
@ -56,7 +64,7 @@ export interface SocketAddress {
* [#next-free-field: 7]
*/
export interface SocketAddress__Output {
'protocol': (keyof typeof _envoy_config_core_v3_SocketAddress_Protocol);
'protocol': (_envoy_config_core_v3_SocketAddress_Protocol__Output);
/**
* The address for this socket. :ref:`Listeners <config_listeners>` will bind
* to the address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::``

View File

@ -4,20 +4,39 @@ import type { Long } from '@grpc/proto-loader';
// Original file: deps/envoy-api/envoy/config/core/v3/socket_option.proto
export enum _envoy_config_core_v3_SocketOption_SocketState {
export const _envoy_config_core_v3_SocketOption_SocketState = {
/**
* Socket options are applied after socket creation but before binding the socket to a port
*/
STATE_PREBIND = 0,
STATE_PREBIND: 'STATE_PREBIND',
/**
* Socket options are applied after binding the socket to a port but before calling listen()
*/
STATE_BOUND = 1,
STATE_BOUND: 'STATE_BOUND',
/**
* Socket options are applied after calling listen()
*/
STATE_LISTENING = 2,
}
STATE_LISTENING: 'STATE_LISTENING',
} as const;
export type _envoy_config_core_v3_SocketOption_SocketState =
/**
* Socket options are applied after socket creation but before binding the socket to a port
*/
| 'STATE_PREBIND'
| 0
/**
* Socket options are applied after binding the socket to a port but before calling listen()
*/
| 'STATE_BOUND'
| 1
/**
* Socket options are applied after calling listen()
*/
| 'STATE_LISTENING'
| 2
export type _envoy_config_core_v3_SocketOption_SocketState__Output = typeof _envoy_config_core_v3_SocketOption_SocketState[keyof typeof _envoy_config_core_v3_SocketOption_SocketState]
/**
* Generic socket option message. This would be used to set socket options that
@ -70,7 +89,7 @@ export interface SocketOption {
* The state in which the option will be applied. When used in BindConfig
* STATE_PREBIND is currently the only valid value.
*/
'state'?: (_envoy_config_core_v3_SocketOption_SocketState | keyof typeof _envoy_config_core_v3_SocketOption_SocketState);
'state'?: (_envoy_config_core_v3_SocketOption_SocketState);
'value'?: "int_value"|"buf_value";
}
@ -125,6 +144,6 @@ export interface SocketOption__Output {
* The state in which the option will be applied. When used in BindConfig
* STATE_PREBIND is currently the only valid value.
*/
'state': (keyof typeof _envoy_config_core_v3_SocketOption_SocketState);
'state': (_envoy_config_core_v3_SocketOption_SocketState__Output);
'value': "int_value"|"buf_value";
}

View File

@ -29,6 +29,7 @@ export interface SubstitutionFormatString {
* upstream connect error:503:path=/foo
*
* Deprecated in favor of :ref:`text_format_source <envoy_v3_api_field_config.core.v3.SubstitutionFormatString.text_format_source>`. To migrate text format strings, use the :ref:`inline_string <envoy_v3_api_field_config.core.v3.DataSource.inline_string>` field.
* @deprecated
*/
'text_format'?: (string);
/**
@ -130,6 +131,7 @@ export interface SubstitutionFormatString__Output {
* upstream connect error:503:path=/foo
*
* Deprecated in favor of :ref:`text_format_source <envoy_v3_api_field_config.core.v3.SubstitutionFormatString.text_format_source>`. To migrate text format strings, use the :ref:`inline_string <envoy_v3_api_field_config.core.v3.DataSource.inline_string>` field.
* @deprecated
*/
'text_format'?: (string);
/**

View File

@ -3,17 +3,42 @@
/**
* Identifies the direction of the traffic relative to the local Envoy.
*/
export enum TrafficDirection {
export const TrafficDirection = {
/**
* Default option is unspecified.
*/
UNSPECIFIED = 0,
UNSPECIFIED: 'UNSPECIFIED',
/**
* The transport is used for incoming traffic.
*/
INBOUND = 1,
INBOUND: 'INBOUND',
/**
* The transport is used for outgoing traffic.
*/
OUTBOUND = 2,
}
OUTBOUND: 'OUTBOUND',
} as const;
/**
* Identifies the direction of the traffic relative to the local Envoy.
*/
export type TrafficDirection =
/**
* Default option is unspecified.
*/
| 'UNSPECIFIED'
| 0
/**
* The transport is used for incoming traffic.
*/
| 'INBOUND'
| 1
/**
* The transport is used for outgoing traffic.
*/
| 'OUTBOUND'
| 2
/**
* Identifies the direction of the traffic relative to the local Envoy.
*/
export type TrafficDirection__Output = typeof TrafficDirection[keyof typeof TrafficDirection]

View File

@ -2,7 +2,6 @@
import type { UInt64Value as _google_protobuf_UInt64Value, UInt64Value__Output as _google_protobuf_UInt64Value__Output } from '../../../../google/protobuf/UInt64Value';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { Long } from '@grpc/proto-loader';
/**
* Generic UDP socket configuration.

View File

@ -1,7 +1,7 @@
// Original file: deps/envoy-api/envoy/config/endpoint/v3/endpoint_components.proto
import type { Endpoint as _envoy_config_endpoint_v3_Endpoint, Endpoint__Output as _envoy_config_endpoint_v3_Endpoint__Output } from '../../../../envoy/config/endpoint/v3/Endpoint';
import type { HealthStatus as _envoy_config_core_v3_HealthStatus } from '../../../../envoy/config/core/v3/HealthStatus';
import type { HealthStatus as _envoy_config_core_v3_HealthStatus, HealthStatus__Output as _envoy_config_core_v3_HealthStatus__Output } from '../../../../envoy/config/core/v3/HealthStatus';
import type { Metadata as _envoy_config_core_v3_Metadata, Metadata__Output as _envoy_config_core_v3_Metadata__Output } from '../../../../envoy/config/core/v3/Metadata';
import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
@ -14,7 +14,7 @@ export interface LbEndpoint {
/**
* Optional health status when known and supplied by EDS server.
*/
'health_status'?: (_envoy_config_core_v3_HealthStatus | keyof typeof _envoy_config_core_v3_HealthStatus);
'health_status'?: (_envoy_config_core_v3_HealthStatus);
/**
* The endpoint metadata specifies values that may be used by the load
* balancer to select endpoints in a cluster for a given request. The filter
@ -56,7 +56,7 @@ export interface LbEndpoint__Output {
/**
* Optional health status when known and supplied by EDS server.
*/
'health_status': (keyof typeof _envoy_config_core_v3_HealthStatus);
'health_status': (_envoy_config_core_v3_HealthStatus__Output);
/**
* The endpoint metadata specifies values that may be used by the load
* balancer to select endpoints in a cluster for a given request. The filter

View File

@ -79,6 +79,7 @@ export interface FilterChain {
* This field is deprecated. Add a
* :ref:`PROXY protocol listener filter <config_listener_filters_proxy_protocol>`
* explicitly instead.
* @deprecated
*/
'use_proxy_proto'?: (_google_protobuf_BoolValue | null);
/**
@ -149,6 +150,7 @@ export interface FilterChain__Output {
* This field is deprecated. Add a
* :ref:`PROXY protocol listener filter <config_listener_filters_proxy_protocol>`
* explicitly instead.
* @deprecated
*/
'use_proxy_proto': (_google_protobuf_BoolValue__Output | null);
/**

View File

@ -5,20 +5,39 @@ import type { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output a
// Original file: deps/envoy-api/envoy/config/listener/v3/listener_components.proto
export enum _envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType {
export const _envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType = {
/**
* Any connection source matches.
*/
ANY = 0,
ANY: 'ANY',
/**
* Match a connection originating from the same host.
*/
SAME_IP_OR_LOOPBACK = 1,
SAME_IP_OR_LOOPBACK: 'SAME_IP_OR_LOOPBACK',
/**
* Match a connection originating from a different host.
*/
EXTERNAL = 2,
}
EXTERNAL: 'EXTERNAL',
} as const;
export type _envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType =
/**
* Any connection source matches.
*/
| 'ANY'
| 0
/**
* Match a connection originating from the same host.
*/
| 'SAME_IP_OR_LOOPBACK'
| 1
/**
* Match a connection originating from a different host.
*/
| 'EXTERNAL'
| 2
export type _envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType__Output = typeof _envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType[keyof typeof _envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType]
/**
* Specifies the match criteria for selecting a specific filter chain for a
@ -154,7 +173,7 @@ export interface FilterChainMatch {
/**
* Specifies the connection source IP match type. Can be any, local or external network.
*/
'source_type'?: (_envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType | keyof typeof _envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType);
'source_type'?: (_envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType);
/**
* The criteria is satisfied if the directly connected source IP address of the downstream
* connection is contained in at least one of the specified subnets. If the parameter is not
@ -297,7 +316,7 @@ export interface FilterChainMatch__Output {
/**
* Specifies the connection source IP match type. Can be any, local or external network.
*/
'source_type': (keyof typeof _envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType);
'source_type': (_envoy_config_listener_v3_FilterChainMatch_ConnectionSourceType__Output);
/**
* The criteria is satisfied if the directly connected source IP address of the downstream
* connection is contained in at least one of the specified subnets. If the parameter is not

View File

@ -8,7 +8,7 @@ import type { Metadata as _envoy_config_core_v3_Metadata, Metadata__Output as _e
import type { ListenerFilter as _envoy_config_listener_v3_ListenerFilter, ListenerFilter__Output as _envoy_config_listener_v3_ListenerFilter__Output } from '../../../../envoy/config/listener/v3/ListenerFilter';
import type { SocketOption as _envoy_config_core_v3_SocketOption, SocketOption__Output as _envoy_config_core_v3_SocketOption__Output } from '../../../../envoy/config/core/v3/SocketOption';
import type { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
import type { TrafficDirection as _envoy_config_core_v3_TrafficDirection } from '../../../../envoy/config/core/v3/TrafficDirection';
import type { TrafficDirection as _envoy_config_core_v3_TrafficDirection, TrafficDirection__Output as _envoy_config_core_v3_TrafficDirection__Output } from '../../../../envoy/config/core/v3/TrafficDirection';
import type { UdpListenerConfig as _envoy_config_listener_v3_UdpListenerConfig, UdpListenerConfig__Output as _envoy_config_listener_v3_UdpListenerConfig__Output } from '../../../../envoy/config/listener/v3/UdpListenerConfig';
import type { ApiListener as _envoy_config_listener_v3_ApiListener, ApiListener__Output as _envoy_config_listener_v3_ApiListener__Output } from '../../../../envoy/config/listener/v3/ApiListener';
import type { AccessLog as _envoy_config_accesslog_v3_AccessLog, AccessLog__Output as _envoy_config_accesslog_v3_AccessLog__Output } from '../../../../envoy/config/accesslog/v3/AccessLog';
@ -82,19 +82,36 @@ export interface _envoy_config_listener_v3_Listener_DeprecatedV1__Output {
// Original file: deps/envoy-api/envoy/config/listener/v3/listener.proto
export enum _envoy_config_listener_v3_Listener_DrainType {
export const _envoy_config_listener_v3_Listener_DrainType = {
/**
* Drain in response to calling /healthcheck/fail admin endpoint (along with the health check
* filter), listener removal/modification, and hot restart.
*/
DEFAULT = 0,
DEFAULT: 'DEFAULT',
/**
* Drain in response to listener removal/modification and hot restart. This setting does not
* include /healthcheck/fail. This setting may be desirable if Envoy is hosting both ingress
* and egress listeners.
*/
MODIFY_ONLY = 1,
}
MODIFY_ONLY: 'MODIFY_ONLY',
} as const;
export type _envoy_config_listener_v3_Listener_DrainType =
/**
* Drain in response to calling /healthcheck/fail admin endpoint (along with the health check
* filter), listener removal/modification, and hot restart.
*/
| 'DEFAULT'
| 0
/**
* Drain in response to listener removal/modification and hot restart. This setting does not
* include /healthcheck/fail. This setting may be desirable if Envoy is hosting both ingress
* and egress listeners.
*/
| 'MODIFY_ONLY'
| 1
export type _envoy_config_listener_v3_Listener_DrainType__Output = typeof _envoy_config_listener_v3_Listener_DrainType[keyof typeof _envoy_config_listener_v3_Listener_DrainType]
/**
* A connection balancer implementation that does exact balancing. This means that a lock is
@ -176,12 +193,13 @@ export interface Listener {
'metadata'?: (_envoy_config_core_v3_Metadata | null);
/**
* [#not-implemented-hide:]
* @deprecated
*/
'deprecated_v1'?: (_envoy_config_listener_v3_Listener_DeprecatedV1 | null);
/**
* The type of draining to perform at a listener-wide level.
*/
'drain_type'?: (_envoy_config_listener_v3_Listener_DrainType | keyof typeof _envoy_config_listener_v3_Listener_DrainType);
'drain_type'?: (_envoy_config_listener_v3_Listener_DrainType);
/**
* Listener filters have the opportunity to manipulate and augment the connection metadata that
* is used in connection filter chain matching, for example. These filters are run before any in
@ -261,7 +279,7 @@ export interface Listener {
* This property is required on Windows for listeners using the original destination filter,
* see :ref:`Original Destination <config_listener_filters_original_dst>`.
*/
'traffic_direction'?: (_envoy_config_core_v3_TrafficDirection | keyof typeof _envoy_config_core_v3_TrafficDirection);
'traffic_direction'?: (_envoy_config_core_v3_TrafficDirection);
/**
* Whether a connection should be created when listener filters timeout. Default is false.
*
@ -312,6 +330,7 @@ export interface Listener {
'connection_balance_config'?: (_envoy_config_listener_v3_Listener_ConnectionBalanceConfig | null);
/**
* Deprecated. Use ``enable_reuse_port`` instead.
* @deprecated
*/
'reuse_port'?: (boolean);
/**
@ -482,12 +501,13 @@ export interface Listener__Output {
'metadata': (_envoy_config_core_v3_Metadata__Output | null);
/**
* [#not-implemented-hide:]
* @deprecated
*/
'deprecated_v1': (_envoy_config_listener_v3_Listener_DeprecatedV1__Output | null);
/**
* The type of draining to perform at a listener-wide level.
*/
'drain_type': (keyof typeof _envoy_config_listener_v3_Listener_DrainType);
'drain_type': (_envoy_config_listener_v3_Listener_DrainType__Output);
/**
* Listener filters have the opportunity to manipulate and augment the connection metadata that
* is used in connection filter chain matching, for example. These filters are run before any in
@ -567,7 +587,7 @@ export interface Listener__Output {
* This property is required on Windows for listeners using the original destination filter,
* see :ref:`Original Destination <config_listener_filters_original_dst>`.
*/
'traffic_direction': (keyof typeof _envoy_config_core_v3_TrafficDirection);
'traffic_direction': (_envoy_config_core_v3_TrafficDirection__Output);
/**
* Whether a connection should be created when listener filters timeout. Default is false.
*
@ -618,6 +638,7 @@ export interface Listener__Output {
'connection_balance_config': (_envoy_config_listener_v3_Listener_ConnectionBalanceConfig__Output | null);
/**
* Deprecated. Use ``enable_reuse_port`` instead.
* @deprecated
*/
'reuse_port': (boolean);
/**

View File

@ -1,65 +0,0 @@
// Original file: deps/envoy-api/envoy/config/metrics/v3/stats.proto
import type { Address as _envoy_config_core_v3_Address, Address__Output as _envoy_config_core_v3_Address__Output } from '../../../../envoy/config/core/v3/Address';
import type { UInt64Value as _google_protobuf_UInt64Value, UInt64Value__Output as _google_protobuf_UInt64Value__Output } from '../../../../google/protobuf/UInt64Value';
import type { Long } from '@grpc/proto-loader';
/**
* Stats configuration proto schema for built-in *envoy.stat_sinks.dog_statsd* sink.
* The sink emits stats with `DogStatsD <https://docs.datadoghq.com/guides/dogstatsd/>`_
* compatible tags. Tags are configurable via :ref:`StatsConfig
* <envoy_v3_api_msg_config.metrics.v3.StatsConfig>`.
* [#extension: envoy.stat_sinks.dog_statsd]
*/
export interface DogStatsdSink {
/**
* The UDP address of a running DogStatsD compliant listener. If specified,
* statistics will be flushed to this address.
*/
'address'?: (_envoy_config_core_v3_Address | null);
/**
* Optional custom metric name prefix. See :ref:`StatsdSink's prefix field
* <envoy_v3_api_field_config.metrics.v3.StatsdSink.prefix>` for more details.
*/
'prefix'?: (string);
/**
* Optional max datagram size to use when sending UDP messages. By default Envoy
* will emit one metric per datagram. By specifying a max-size larger than a single
* metric, Envoy will emit multiple, new-line separated metrics. The max datagram
* size should not exceed your network's MTU.
*
* Note that this value may not be respected if smaller than a single metric.
*/
'max_bytes_per_datagram'?: (_google_protobuf_UInt64Value | null);
'dog_statsd_specifier'?: "address";
}
/**
* Stats configuration proto schema for built-in *envoy.stat_sinks.dog_statsd* sink.
* The sink emits stats with `DogStatsD <https://docs.datadoghq.com/guides/dogstatsd/>`_
* compatible tags. Tags are configurable via :ref:`StatsConfig
* <envoy_v3_api_msg_config.metrics.v3.StatsConfig>`.
* [#extension: envoy.stat_sinks.dog_statsd]
*/
export interface DogStatsdSink__Output {
/**
* The UDP address of a running DogStatsD compliant listener. If specified,
* statistics will be flushed to this address.
*/
'address'?: (_envoy_config_core_v3_Address__Output | null);
/**
* Optional custom metric name prefix. See :ref:`StatsdSink's prefix field
* <envoy_v3_api_field_config.metrics.v3.StatsdSink.prefix>` for more details.
*/
'prefix': (string);
/**
* Optional max datagram size to use when sending UDP messages. By default Envoy
* will emit one metric per datagram. By specifying a max-size larger than a single
* metric, Envoy will emit multiple, new-line separated metrics. The max datagram
* size should not exceed your network's MTU.
*
* Note that this value may not be respected if smaller than a single metric.
*/
'max_bytes_per_datagram': (_google_protobuf_UInt64Value__Output | null);
'dog_statsd_specifier': "address";
}

View File

@ -1,35 +0,0 @@
// Original file: deps/envoy-api/envoy/config/metrics/v3/stats.proto
import type { StringMatcher as _envoy_type_matcher_v3_StringMatcher, StringMatcher__Output as _envoy_type_matcher_v3_StringMatcher__Output } from '../../../../envoy/type/matcher/v3/StringMatcher';
/**
* Specifies a matcher for stats and the buckets that matching stats should use.
*/
export interface HistogramBucketSettings {
/**
* The stats that this rule applies to. The match is applied to the original stat name
* before tag-extraction, for example `cluster.exampleclustername.upstream_cx_length_ms`.
*/
'match'?: (_envoy_type_matcher_v3_StringMatcher | null);
/**
* Each value is the upper bound of a bucket. Each bucket must be greater than 0 and unique.
* The order of the buckets does not matter.
*/
'buckets'?: (number | string)[];
}
/**
* Specifies a matcher for stats and the buckets that matching stats should use.
*/
export interface HistogramBucketSettings__Output {
/**
* The stats that this rule applies to. The match is applied to the original stat name
* before tag-extraction, for example `cluster.exampleclustername.upstream_cx_length_ms`.
*/
'match': (_envoy_type_matcher_v3_StringMatcher__Output | null);
/**
* Each value is the upper bound of a bucket. Each bucket must be greater than 0 and unique.
* The order of the buckets does not matter.
*/
'buckets': (number)[];
}

View File

@ -1,61 +0,0 @@
// Original file: deps/envoy-api/envoy/config/metrics/v3/stats.proto
import type { Long } from '@grpc/proto-loader';
/**
* Stats configuration proto schema for built-in *envoy.stat_sinks.hystrix* sink.
* The sink emits stats in `text/event-stream
* <https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events>`_
* formatted stream for use by `Hystrix dashboard
* <https://github.com/Netflix-Skunkworks/hystrix-dashboard/wiki>`_.
*
* Note that only a single HystrixSink should be configured.
*
* Streaming is started through an admin endpoint :http:get:`/hystrix_event_stream`.
* [#extension: envoy.stat_sinks.hystrix]
*/
export interface HystrixSink {
/**
* The number of buckets the rolling statistical window is divided into.
*
* Each time the sink is flushed, all relevant Envoy statistics are sampled and
* added to the rolling window (removing the oldest samples in the window
* in the process). The sink then outputs the aggregate statistics across the
* current rolling window to the event stream(s).
*
* rolling_window(ms) = stats_flush_interval(ms) * num_of_buckets
*
* More detailed explanation can be found in `Hystrix wiki
* <https://github.com/Netflix/Hystrix/wiki/Metrics-and-Monitoring#hystrixrollingnumber>`_.
*/
'num_buckets'?: (number | string | Long);
}
/**
* Stats configuration proto schema for built-in *envoy.stat_sinks.hystrix* sink.
* The sink emits stats in `text/event-stream
* <https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events>`_
* formatted stream for use by `Hystrix dashboard
* <https://github.com/Netflix-Skunkworks/hystrix-dashboard/wiki>`_.
*
* Note that only a single HystrixSink should be configured.
*
* Streaming is started through an admin endpoint :http:get:`/hystrix_event_stream`.
* [#extension: envoy.stat_sinks.hystrix]
*/
export interface HystrixSink__Output {
/**
* The number of buckets the rolling statistical window is divided into.
*
* Each time the sink is flushed, all relevant Envoy statistics are sampled and
* added to the rolling window (removing the oldest samples in the window
* in the process). The sink then outputs the aggregate statistics across the
* current rolling window to the event stream(s).
*
* rolling_window(ms) = stats_flush_interval(ms) * num_of_buckets
*
* More detailed explanation can be found in `Hystrix wiki
* <https://github.com/Netflix/Hystrix/wiki/Metrics-and-Monitoring#hystrixrollingnumber>`_.
*/
'num_buckets': (string);
}

View File

@ -1,148 +0,0 @@
// Original file: deps/envoy-api/envoy/config/metrics/v3/stats.proto
import type { TagSpecifier as _envoy_config_metrics_v3_TagSpecifier, TagSpecifier__Output as _envoy_config_metrics_v3_TagSpecifier__Output } from '../../../../envoy/config/metrics/v3/TagSpecifier';
import type { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
import type { StatsMatcher as _envoy_config_metrics_v3_StatsMatcher, StatsMatcher__Output as _envoy_config_metrics_v3_StatsMatcher__Output } from '../../../../envoy/config/metrics/v3/StatsMatcher';
import type { HistogramBucketSettings as _envoy_config_metrics_v3_HistogramBucketSettings, HistogramBucketSettings__Output as _envoy_config_metrics_v3_HistogramBucketSettings__Output } from '../../../../envoy/config/metrics/v3/HistogramBucketSettings';
/**
* Statistics configuration such as tagging.
*/
export interface StatsConfig {
/**
* Each stat name is iteratively processed through these tag specifiers.
* When a tag is matched, the first capture group is removed from the name so
* later :ref:`TagSpecifiers <envoy_v3_api_msg_config.metrics.v3.TagSpecifier>` cannot match that
* same portion of the match.
*/
'stats_tags'?: (_envoy_config_metrics_v3_TagSpecifier)[];
/**
* Use all default tag regexes specified in Envoy. These can be combined with
* custom tags specified in :ref:`stats_tags
* <envoy_v3_api_field_config.metrics.v3.StatsConfig.stats_tags>`. They will be processed before
* the custom tags.
*
* .. note::
*
* If any default tags are specified twice, the config will be considered
* invalid.
*
* See :repo:`well_known_names.h <source/common/config/well_known_names.h>` for a list of the
* default tags in Envoy.
*
* If not provided, the value is assumed to be true.
*/
'use_all_default_tags'?: (_google_protobuf_BoolValue | null);
/**
* Inclusion/exclusion matcher for stat name creation. If not provided, all stats are instantiated
* as normal. Preventing the instantiation of certain families of stats can improve memory
* performance for Envoys running especially large configs.
*
* .. warning::
* Excluding stats may affect Envoy's behavior in undocumented ways. See
* `issue #8771 <https://github.com/envoyproxy/envoy/issues/8771>`_ for more information.
* If any unexpected behavior changes are observed, please open a new issue immediately.
*/
'stats_matcher'?: (_envoy_config_metrics_v3_StatsMatcher | null);
/**
* Defines rules for setting the histogram buckets. Rules are evaluated in order, and the first
* match is applied. If no match is found (or if no rules are set), the following default buckets
* are used:
*
* .. code-block:: json
*
* [
* 0.5,
* 1,
* 5,
* 10,
* 25,
* 50,
* 100,
* 250,
* 500,
* 1000,
* 2500,
* 5000,
* 10000,
* 30000,
* 60000,
* 300000,
* 600000,
* 1800000,
* 3600000
* ]
*/
'histogram_bucket_settings'?: (_envoy_config_metrics_v3_HistogramBucketSettings)[];
}
/**
* Statistics configuration such as tagging.
*/
export interface StatsConfig__Output {
/**
* Each stat name is iteratively processed through these tag specifiers.
* When a tag is matched, the first capture group is removed from the name so
* later :ref:`TagSpecifiers <envoy_v3_api_msg_config.metrics.v3.TagSpecifier>` cannot match that
* same portion of the match.
*/
'stats_tags': (_envoy_config_metrics_v3_TagSpecifier__Output)[];
/**
* Use all default tag regexes specified in Envoy. These can be combined with
* custom tags specified in :ref:`stats_tags
* <envoy_v3_api_field_config.metrics.v3.StatsConfig.stats_tags>`. They will be processed before
* the custom tags.
*
* .. note::
*
* If any default tags are specified twice, the config will be considered
* invalid.
*
* See :repo:`well_known_names.h <source/common/config/well_known_names.h>` for a list of the
* default tags in Envoy.
*
* If not provided, the value is assumed to be true.
*/
'use_all_default_tags': (_google_protobuf_BoolValue__Output | null);
/**
* Inclusion/exclusion matcher for stat name creation. If not provided, all stats are instantiated
* as normal. Preventing the instantiation of certain families of stats can improve memory
* performance for Envoys running especially large configs.
*
* .. warning::
* Excluding stats may affect Envoy's behavior in undocumented ways. See
* `issue #8771 <https://github.com/envoyproxy/envoy/issues/8771>`_ for more information.
* If any unexpected behavior changes are observed, please open a new issue immediately.
*/
'stats_matcher': (_envoy_config_metrics_v3_StatsMatcher__Output | null);
/**
* Defines rules for setting the histogram buckets. Rules are evaluated in order, and the first
* match is applied. If no match is found (or if no rules are set), the following default buckets
* are used:
*
* .. code-block:: json
*
* [
* 0.5,
* 1,
* 5,
* 10,
* 25,
* 50,
* 100,
* 250,
* 500,
* 1000,
* 2500,
* 5000,
* 10000,
* 30000,
* 60000,
* 300000,
* 600000,
* 1800000,
* 3600000
* ]
*/
'histogram_bucket_settings': (_envoy_config_metrics_v3_HistogramBucketSettings__Output)[];
}

View File

@ -1,47 +0,0 @@
// Original file: deps/envoy-api/envoy/config/metrics/v3/stats.proto
import type { ListStringMatcher as _envoy_type_matcher_v3_ListStringMatcher, ListStringMatcher__Output as _envoy_type_matcher_v3_ListStringMatcher__Output } from '../../../../envoy/type/matcher/v3/ListStringMatcher';
/**
* Configuration for disabling stat instantiation.
*/
export interface StatsMatcher {
/**
* If `reject_all` is true, then all stats are disabled. If `reject_all` is false, then all
* stats are enabled.
*/
'reject_all'?: (boolean);
/**
* Exclusive match. All stats are enabled except for those matching one of the supplied
* StringMatcher protos.
*/
'exclusion_list'?: (_envoy_type_matcher_v3_ListStringMatcher | null);
/**
* Inclusive match. No stats are enabled except for those matching one of the supplied
* StringMatcher protos.
*/
'inclusion_list'?: (_envoy_type_matcher_v3_ListStringMatcher | null);
'stats_matcher'?: "reject_all"|"exclusion_list"|"inclusion_list";
}
/**
* Configuration for disabling stat instantiation.
*/
export interface StatsMatcher__Output {
/**
* If `reject_all` is true, then all stats are disabled. If `reject_all` is false, then all
* stats are enabled.
*/
'reject_all'?: (boolean);
/**
* Exclusive match. All stats are enabled except for those matching one of the supplied
* StringMatcher protos.
*/
'exclusion_list'?: (_envoy_type_matcher_v3_ListStringMatcher__Output | null);
/**
* Inclusive match. No stats are enabled except for those matching one of the supplied
* StringMatcher protos.
*/
'inclusion_list'?: (_envoy_type_matcher_v3_ListStringMatcher__Output | null);
'stats_matcher': "reject_all"|"exclusion_list"|"inclusion_list";
}

View File

@ -1,43 +0,0 @@
// Original file: deps/envoy-api/envoy/config/metrics/v3/stats.proto
import type { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
/**
* Configuration for pluggable stats sinks.
*/
export interface StatsSink {
/**
* The name of the stats sink to instantiate. The name must match a supported
* stats sink.
* See the :ref:`extensions listed in typed_config below <extension_category_envoy.stats_sinks>` for the default list of available stats sink.
* Sinks optionally support tagged/multiple dimensional metrics.
*/
'name'?: (string);
'typed_config'?: (_google_protobuf_Any | null);
/**
* Stats sink specific configuration which depends on the sink being instantiated. See
* :ref:`StatsdSink <envoy_v3_api_msg_config.metrics.v3.StatsdSink>` for an example.
* [#extension-category: envoy.stats_sinks]
*/
'config_type'?: "typed_config";
}
/**
* Configuration for pluggable stats sinks.
*/
export interface StatsSink__Output {
/**
* The name of the stats sink to instantiate. The name must match a supported
* stats sink.
* See the :ref:`extensions listed in typed_config below <extension_category_envoy.stats_sinks>` for the default list of available stats sink.
* Sinks optionally support tagged/multiple dimensional metrics.
*/
'name': (string);
'typed_config'?: (_google_protobuf_Any__Output | null);
/**
* Stats sink specific configuration which depends on the sink being instantiated. See
* :ref:`StatsdSink <envoy_v3_api_msg_config.metrics.v3.StatsdSink>` for an example.
* [#extension-category: envoy.stats_sinks]
*/
'config_type': "typed_config";
}

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