mirror of
https://github.com/grpc/grpc-node.git
synced 2025-12-08 18:23:54 +00:00
Merge pull request #1489 from murgatroid99/grpc-js_xds_client
grpc-js: Add XdsClient class
This commit is contained in:
commit
8d759b30ab
12
.gitmodules
vendored
12
.gitmodules
vendored
@ -1,3 +1,15 @@
|
||||
[submodule "packages/grpc-tools/deps/protobuf"]
|
||||
path = packages/grpc-tools/deps/protobuf
|
||||
url = https://github.com/protocolbuffers/protobuf
|
||||
[submodule "packages/grpc-js/deps/envoy-api"]
|
||||
path = packages/grpc-js/deps/envoy-api
|
||||
url = https://github.com/envoyproxy/data-plane-api.git
|
||||
[submodule "packages/grpc-js/deps/udpa"]
|
||||
path = packages/grpc-js/deps/udpa
|
||||
url = https://github.com/cncf/udpa.git
|
||||
[submodule "packages/grpc-js/deps/googleapis"]
|
||||
path = packages/grpc-js/deps/googleapis
|
||||
url = https://github.com/googleapis/googleapis.git
|
||||
[submodule "packages/grpc-js/deps/protoc-gen-validate"]
|
||||
path = packages/grpc-js/deps/protoc-gen-validate
|
||||
url = https://github.com/envoyproxy/protoc-gen-validate.git
|
||||
|
||||
1
packages/grpc-js/deps/envoy-api
Submodule
1
packages/grpc-js/deps/envoy-api
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 50cef8fcab37ba59a61068934d08a3f4c28a681f
|
||||
1
packages/grpc-js/deps/googleapis
Submodule
1
packages/grpc-js/deps/googleapis
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 8c53b2cb792234354c13336ac7daee61333deade
|
||||
1
packages/grpc-js/deps/protoc-gen-validate
Submodule
1
packages/grpc-js/deps/protoc-gen-validate
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 0af61d9dc28712dc0e6f8e1a940855a2ee0cb9ed
|
||||
1
packages/grpc-js/deps/udpa
Submodule
1
packages/grpc-js/deps/udpa
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 3b31d022a144b334eb2224838e4d6952ab5253aa
|
||||
@ -15,7 +15,7 @@
|
||||
"types": "build/src/index.d.ts",
|
||||
"license": "Apache-2.0",
|
||||
"devDependencies": {
|
||||
"@grpc/proto-loader": "^0.5.0",
|
||||
"@grpc/proto-loader": "^0.6.0-pre6",
|
||||
"@types/gulp": "^4.0.6",
|
||||
"@types/gulp-mocha": "0.0.32",
|
||||
"@types/lodash": "^4.14.108",
|
||||
@ -48,11 +48,12 @@
|
||||
"clean": "node -e 'require(\"rimraf\")(\"./build\", () => {})'",
|
||||
"compile": "tsc -p .",
|
||||
"format": "clang-format -i -style=\"{Language: JavaScript, BasedOnStyle: Google, ColumnLimit: 80}\" src/*.ts test/*.ts",
|
||||
"generate-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --json --includeComments --includeDirs deps/envoy-api/ deps/udpa/ deps/googleapis/ deps/protoc-gen-validate/ -O src/generated/ --grpcLib ../index envoy/service/discovery/v2/ads.proto envoy/api/v2/listener.proto envoy/api/v2/route.proto envoy/api/v2/cluster.proto envoy/api/v2/endpoint.proto",
|
||||
"lint": "npm run check",
|
||||
"prepare": "npm run compile",
|
||||
"test": "gulp test",
|
||||
"check": "gts check src/**/*.ts",
|
||||
"fix": "gts fix src/**/*.ts",
|
||||
"fix": "gts fix src/*.ts",
|
||||
"pretest": "npm run compile",
|
||||
"posttest": "npm run check"
|
||||
},
|
||||
@ -60,8 +61,16 @@
|
||||
"semver": "^6.2.0"
|
||||
},
|
||||
"files": [
|
||||
"src/*.ts",
|
||||
"src/**/*.ts",
|
||||
"build/src/*.{js,d.ts,js.map}",
|
||||
"LICENSE"
|
||||
"LICENSE",
|
||||
"deps/envoy-api/envoy/api/v2/**/*.proto",
|
||||
"deps/envoy-api/envoy/config/**/*.proto",
|
||||
"deps/envoy-api/envoy/service/**/*.proto",
|
||||
"deps/envoy-api/envoy/type/**/*.proto",
|
||||
"deps/udpa/udpa/**/*.proto",
|
||||
"deps/googleapis/google/api/*.proto",
|
||||
"deps/googleapis/google/rpc/*.proto",
|
||||
"deps/protoc-gen-validate/validate/**/*.proto"
|
||||
]
|
||||
}
|
||||
|
||||
155
packages/grpc-js/src/generated/ads.ts
Normal file
155
packages/grpc-js/src/generated/ads.ts
Normal file
@ -0,0 +1,155 @@
|
||||
import * as grpc from '../index';
|
||||
import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader';
|
||||
|
||||
import { AggregatedDiscoveryServiceClient as _envoy_service_discovery_v2_AggregatedDiscoveryServiceClient } from './envoy/service/discovery/v2/AggregatedDiscoveryService';
|
||||
|
||||
type ConstructorArguments<Constructor> = Constructor extends new (...args: infer Args) => any ? Args: never;
|
||||
type SubtypeConstructor<Constructor, Subtype> = {
|
||||
new(...args: ConstructorArguments<Constructor>): Subtype;
|
||||
}
|
||||
|
||||
export interface ProtoGrpcType {
|
||||
envoy: {
|
||||
api: {
|
||||
v2: {
|
||||
DeltaDiscoveryRequest: MessageTypeDefinition
|
||||
DeltaDiscoveryResponse: MessageTypeDefinition
|
||||
DiscoveryRequest: MessageTypeDefinition
|
||||
DiscoveryResponse: MessageTypeDefinition
|
||||
Resource: MessageTypeDefinition
|
||||
core: {
|
||||
Address: MessageTypeDefinition
|
||||
AsyncDataSource: MessageTypeDefinition
|
||||
BackoffStrategy: MessageTypeDefinition
|
||||
BindConfig: MessageTypeDefinition
|
||||
BuildVersion: MessageTypeDefinition
|
||||
CidrRange: MessageTypeDefinition
|
||||
ControlPlane: MessageTypeDefinition
|
||||
DataSource: MessageTypeDefinition
|
||||
Extension: MessageTypeDefinition
|
||||
HeaderMap: MessageTypeDefinition
|
||||
HeaderValue: MessageTypeDefinition
|
||||
HeaderValueOption: MessageTypeDefinition
|
||||
HttpUri: MessageTypeDefinition
|
||||
Locality: MessageTypeDefinition
|
||||
Metadata: MessageTypeDefinition
|
||||
Node: MessageTypeDefinition
|
||||
Pipe: MessageTypeDefinition
|
||||
RemoteDataSource: MessageTypeDefinition
|
||||
RequestMethod: EnumTypeDefinition
|
||||
RetryPolicy: MessageTypeDefinition
|
||||
RoutingPriority: EnumTypeDefinition
|
||||
RuntimeDouble: MessageTypeDefinition
|
||||
RuntimeFeatureFlag: MessageTypeDefinition
|
||||
RuntimeFractionalPercent: MessageTypeDefinition
|
||||
RuntimeUInt32: MessageTypeDefinition
|
||||
SocketAddress: MessageTypeDefinition
|
||||
SocketOption: MessageTypeDefinition
|
||||
TcpKeepalive: MessageTypeDefinition
|
||||
TrafficDirection: EnumTypeDefinition
|
||||
TransportSocket: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
}
|
||||
service: {
|
||||
discovery: {
|
||||
v2: {
|
||||
AdsDummy: MessageTypeDefinition
|
||||
/**
|
||||
* See https://github.com/lyft/envoy-api#apis for a description of the role of
|
||||
* ADS and how it is intended to be used by a management server. ADS requests
|
||||
* have the same structure as their singleton xDS counterparts, but can
|
||||
* multiplex many resource types on a single stream. The type_url in the
|
||||
* DiscoveryRequest/DiscoveryResponse provides sufficient information to recover
|
||||
* the multiplexed singleton APIs at the Envoy instance and management server.
|
||||
*/
|
||||
AggregatedDiscoveryService: SubtypeConstructor<typeof grpc.Client, _envoy_service_discovery_v2_AggregatedDiscoveryServiceClient> & { service: ServiceDefinition }
|
||||
}
|
||||
}
|
||||
}
|
||||
type: {
|
||||
FractionalPercent: MessageTypeDefinition
|
||||
Percent: MessageTypeDefinition
|
||||
SemanticVersion: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
google: {
|
||||
protobuf: {
|
||||
Any: MessageTypeDefinition
|
||||
BoolValue: MessageTypeDefinition
|
||||
BytesValue: MessageTypeDefinition
|
||||
DescriptorProto: MessageTypeDefinition
|
||||
DoubleValue: MessageTypeDefinition
|
||||
Duration: MessageTypeDefinition
|
||||
EnumDescriptorProto: MessageTypeDefinition
|
||||
EnumOptions: MessageTypeDefinition
|
||||
EnumValueDescriptorProto: MessageTypeDefinition
|
||||
EnumValueOptions: MessageTypeDefinition
|
||||
FieldDescriptorProto: MessageTypeDefinition
|
||||
FieldOptions: MessageTypeDefinition
|
||||
FileDescriptorProto: MessageTypeDefinition
|
||||
FileDescriptorSet: MessageTypeDefinition
|
||||
FileOptions: MessageTypeDefinition
|
||||
FloatValue: MessageTypeDefinition
|
||||
GeneratedCodeInfo: MessageTypeDefinition
|
||||
Int32Value: MessageTypeDefinition
|
||||
Int64Value: MessageTypeDefinition
|
||||
ListValue: MessageTypeDefinition
|
||||
MessageOptions: MessageTypeDefinition
|
||||
MethodDescriptorProto: MessageTypeDefinition
|
||||
MethodOptions: MessageTypeDefinition
|
||||
NullValue: EnumTypeDefinition
|
||||
OneofDescriptorProto: MessageTypeDefinition
|
||||
OneofOptions: MessageTypeDefinition
|
||||
ServiceDescriptorProto: MessageTypeDefinition
|
||||
ServiceOptions: MessageTypeDefinition
|
||||
SourceCodeInfo: MessageTypeDefinition
|
||||
StringValue: MessageTypeDefinition
|
||||
Struct: MessageTypeDefinition
|
||||
Timestamp: MessageTypeDefinition
|
||||
UInt32Value: MessageTypeDefinition
|
||||
UInt64Value: MessageTypeDefinition
|
||||
UninterpretedOption: MessageTypeDefinition
|
||||
Value: MessageTypeDefinition
|
||||
}
|
||||
rpc: {
|
||||
Status: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
udpa: {
|
||||
annotations: {
|
||||
FieldMigrateAnnotation: MessageTypeDefinition
|
||||
FileMigrateAnnotation: MessageTypeDefinition
|
||||
MigrateAnnotation: MessageTypeDefinition
|
||||
PackageVersionStatus: EnumTypeDefinition
|
||||
StatusAnnotation: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
validate: {
|
||||
AnyRules: MessageTypeDefinition
|
||||
BoolRules: MessageTypeDefinition
|
||||
BytesRules: MessageTypeDefinition
|
||||
DoubleRules: MessageTypeDefinition
|
||||
DurationRules: MessageTypeDefinition
|
||||
EnumRules: MessageTypeDefinition
|
||||
FieldRules: MessageTypeDefinition
|
||||
Fixed32Rules: MessageTypeDefinition
|
||||
Fixed64Rules: MessageTypeDefinition
|
||||
FloatRules: MessageTypeDefinition
|
||||
Int32Rules: MessageTypeDefinition
|
||||
Int64Rules: MessageTypeDefinition
|
||||
KnownRegex: EnumTypeDefinition
|
||||
MapRules: MessageTypeDefinition
|
||||
MessageRules: MessageTypeDefinition
|
||||
RepeatedRules: MessageTypeDefinition
|
||||
SFixed32Rules: MessageTypeDefinition
|
||||
SFixed64Rules: MessageTypeDefinition
|
||||
SInt32Rules: MessageTypeDefinition
|
||||
SInt64Rules: MessageTypeDefinition
|
||||
StringRules: MessageTypeDefinition
|
||||
TimestampRules: MessageTypeDefinition
|
||||
UInt32Rules: MessageTypeDefinition
|
||||
UInt64Rules: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
|
||||
192
packages/grpc-js/src/generated/cluster.ts
Normal file
192
packages/grpc-js/src/generated/cluster.ts
Normal file
@ -0,0 +1,192 @@
|
||||
import * as grpc from '../index';
|
||||
import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader';
|
||||
|
||||
|
||||
type ConstructorArguments<Constructor> = Constructor extends new (...args: infer Args) => any ? Args: never;
|
||||
type SubtypeConstructor<Constructor, Subtype> = {
|
||||
new(...args: ConstructorArguments<Constructor>): Subtype;
|
||||
}
|
||||
|
||||
export interface ProtoGrpcType {
|
||||
envoy: {
|
||||
annotations: {
|
||||
}
|
||||
api: {
|
||||
v2: {
|
||||
Cluster: MessageTypeDefinition
|
||||
ClusterLoadAssignment: MessageTypeDefinition
|
||||
LoadBalancingPolicy: MessageTypeDefinition
|
||||
UpstreamBindConfig: MessageTypeDefinition
|
||||
UpstreamConnectionOptions: MessageTypeDefinition
|
||||
auth: {
|
||||
CertificateValidationContext: MessageTypeDefinition
|
||||
CommonTlsContext: MessageTypeDefinition
|
||||
DownstreamTlsContext: MessageTypeDefinition
|
||||
GenericSecret: MessageTypeDefinition
|
||||
PrivateKeyProvider: MessageTypeDefinition
|
||||
SdsSecretConfig: MessageTypeDefinition
|
||||
Secret: MessageTypeDefinition
|
||||
TlsCertificate: MessageTypeDefinition
|
||||
TlsParameters: MessageTypeDefinition
|
||||
TlsSessionTicketKeys: MessageTypeDefinition
|
||||
UpstreamTlsContext: MessageTypeDefinition
|
||||
}
|
||||
cluster: {
|
||||
CircuitBreakers: MessageTypeDefinition
|
||||
Filter: MessageTypeDefinition
|
||||
OutlierDetection: MessageTypeDefinition
|
||||
}
|
||||
core: {
|
||||
Address: MessageTypeDefinition
|
||||
AggregatedConfigSource: MessageTypeDefinition
|
||||
ApiConfigSource: MessageTypeDefinition
|
||||
ApiVersion: EnumTypeDefinition
|
||||
AsyncDataSource: MessageTypeDefinition
|
||||
BackoffStrategy: MessageTypeDefinition
|
||||
BindConfig: MessageTypeDefinition
|
||||
BuildVersion: MessageTypeDefinition
|
||||
CidrRange: MessageTypeDefinition
|
||||
ConfigSource: MessageTypeDefinition
|
||||
ControlPlane: MessageTypeDefinition
|
||||
DataSource: MessageTypeDefinition
|
||||
EventServiceConfig: MessageTypeDefinition
|
||||
Extension: MessageTypeDefinition
|
||||
GrpcProtocolOptions: MessageTypeDefinition
|
||||
GrpcService: MessageTypeDefinition
|
||||
HeaderMap: MessageTypeDefinition
|
||||
HeaderValue: MessageTypeDefinition
|
||||
HeaderValueOption: MessageTypeDefinition
|
||||
HealthCheck: MessageTypeDefinition
|
||||
HealthStatus: EnumTypeDefinition
|
||||
Http1ProtocolOptions: MessageTypeDefinition
|
||||
Http2ProtocolOptions: MessageTypeDefinition
|
||||
HttpProtocolOptions: MessageTypeDefinition
|
||||
HttpUri: MessageTypeDefinition
|
||||
Locality: MessageTypeDefinition
|
||||
Metadata: MessageTypeDefinition
|
||||
Node: MessageTypeDefinition
|
||||
Pipe: MessageTypeDefinition
|
||||
RateLimitSettings: MessageTypeDefinition
|
||||
RemoteDataSource: MessageTypeDefinition
|
||||
RequestMethod: EnumTypeDefinition
|
||||
RetryPolicy: MessageTypeDefinition
|
||||
RoutingPriority: EnumTypeDefinition
|
||||
RuntimeDouble: MessageTypeDefinition
|
||||
RuntimeFeatureFlag: MessageTypeDefinition
|
||||
RuntimeFractionalPercent: MessageTypeDefinition
|
||||
RuntimeUInt32: MessageTypeDefinition
|
||||
SelfConfigSource: MessageTypeDefinition
|
||||
SocketAddress: MessageTypeDefinition
|
||||
SocketOption: MessageTypeDefinition
|
||||
TcpKeepalive: MessageTypeDefinition
|
||||
TcpProtocolOptions: MessageTypeDefinition
|
||||
TrafficDirection: EnumTypeDefinition
|
||||
TransportSocket: MessageTypeDefinition
|
||||
UpstreamHttpProtocolOptions: MessageTypeDefinition
|
||||
}
|
||||
endpoint: {
|
||||
Endpoint: MessageTypeDefinition
|
||||
LbEndpoint: MessageTypeDefinition
|
||||
LocalityLbEndpoints: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
}
|
||||
type: {
|
||||
CodecClientType: EnumTypeDefinition
|
||||
DoubleRange: MessageTypeDefinition
|
||||
FractionalPercent: MessageTypeDefinition
|
||||
Int32Range: MessageTypeDefinition
|
||||
Int64Range: MessageTypeDefinition
|
||||
Percent: MessageTypeDefinition
|
||||
SemanticVersion: MessageTypeDefinition
|
||||
matcher: {
|
||||
ListStringMatcher: MessageTypeDefinition
|
||||
RegexMatchAndSubstitute: MessageTypeDefinition
|
||||
RegexMatcher: MessageTypeDefinition
|
||||
StringMatcher: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
}
|
||||
google: {
|
||||
api: {
|
||||
CustomHttpPattern: MessageTypeDefinition
|
||||
Http: MessageTypeDefinition
|
||||
HttpRule: MessageTypeDefinition
|
||||
}
|
||||
protobuf: {
|
||||
Any: MessageTypeDefinition
|
||||
BoolValue: MessageTypeDefinition
|
||||
BytesValue: MessageTypeDefinition
|
||||
DescriptorProto: MessageTypeDefinition
|
||||
DoubleValue: MessageTypeDefinition
|
||||
Duration: MessageTypeDefinition
|
||||
Empty: MessageTypeDefinition
|
||||
EnumDescriptorProto: MessageTypeDefinition
|
||||
EnumOptions: MessageTypeDefinition
|
||||
EnumValueDescriptorProto: MessageTypeDefinition
|
||||
EnumValueOptions: MessageTypeDefinition
|
||||
FieldDescriptorProto: MessageTypeDefinition
|
||||
FieldOptions: MessageTypeDefinition
|
||||
FileDescriptorProto: MessageTypeDefinition
|
||||
FileDescriptorSet: MessageTypeDefinition
|
||||
FileOptions: MessageTypeDefinition
|
||||
FloatValue: MessageTypeDefinition
|
||||
GeneratedCodeInfo: MessageTypeDefinition
|
||||
Int32Value: MessageTypeDefinition
|
||||
Int64Value: MessageTypeDefinition
|
||||
ListValue: MessageTypeDefinition
|
||||
MessageOptions: MessageTypeDefinition
|
||||
MethodDescriptorProto: MessageTypeDefinition
|
||||
MethodOptions: MessageTypeDefinition
|
||||
NullValue: EnumTypeDefinition
|
||||
OneofDescriptorProto: MessageTypeDefinition
|
||||
OneofOptions: MessageTypeDefinition
|
||||
ServiceDescriptorProto: MessageTypeDefinition
|
||||
ServiceOptions: MessageTypeDefinition
|
||||
SourceCodeInfo: MessageTypeDefinition
|
||||
StringValue: MessageTypeDefinition
|
||||
Struct: MessageTypeDefinition
|
||||
Timestamp: MessageTypeDefinition
|
||||
UInt32Value: MessageTypeDefinition
|
||||
UInt64Value: MessageTypeDefinition
|
||||
UninterpretedOption: MessageTypeDefinition
|
||||
Value: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
udpa: {
|
||||
annotations: {
|
||||
FieldMigrateAnnotation: MessageTypeDefinition
|
||||
FileMigrateAnnotation: MessageTypeDefinition
|
||||
MigrateAnnotation: MessageTypeDefinition
|
||||
PackageVersionStatus: EnumTypeDefinition
|
||||
StatusAnnotation: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
validate: {
|
||||
AnyRules: MessageTypeDefinition
|
||||
BoolRules: MessageTypeDefinition
|
||||
BytesRules: MessageTypeDefinition
|
||||
DoubleRules: MessageTypeDefinition
|
||||
DurationRules: MessageTypeDefinition
|
||||
EnumRules: MessageTypeDefinition
|
||||
FieldRules: MessageTypeDefinition
|
||||
Fixed32Rules: MessageTypeDefinition
|
||||
Fixed64Rules: MessageTypeDefinition
|
||||
FloatRules: MessageTypeDefinition
|
||||
Int32Rules: MessageTypeDefinition
|
||||
Int64Rules: MessageTypeDefinition
|
||||
KnownRegex: EnumTypeDefinition
|
||||
MapRules: MessageTypeDefinition
|
||||
MessageRules: MessageTypeDefinition
|
||||
RepeatedRules: MessageTypeDefinition
|
||||
SFixed32Rules: MessageTypeDefinition
|
||||
SFixed64Rules: MessageTypeDefinition
|
||||
SInt32Rules: MessageTypeDefinition
|
||||
SInt64Rules: MessageTypeDefinition
|
||||
StringRules: MessageTypeDefinition
|
||||
TimestampRules: MessageTypeDefinition
|
||||
UInt32Rules: MessageTypeDefinition
|
||||
UInt64Rules: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
|
||||
158
packages/grpc-js/src/generated/endpoint.ts
Normal file
158
packages/grpc-js/src/generated/endpoint.ts
Normal file
@ -0,0 +1,158 @@
|
||||
import * as grpc from '../index';
|
||||
import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader';
|
||||
|
||||
|
||||
type ConstructorArguments<Constructor> = Constructor extends new (...args: infer Args) => any ? Args: never;
|
||||
type SubtypeConstructor<Constructor, Subtype> = {
|
||||
new(...args: ConstructorArguments<Constructor>): Subtype;
|
||||
}
|
||||
|
||||
export interface ProtoGrpcType {
|
||||
envoy: {
|
||||
annotations: {
|
||||
}
|
||||
api: {
|
||||
v2: {
|
||||
ClusterLoadAssignment: MessageTypeDefinition
|
||||
core: {
|
||||
Address: MessageTypeDefinition
|
||||
AsyncDataSource: MessageTypeDefinition
|
||||
BackoffStrategy: MessageTypeDefinition
|
||||
BindConfig: MessageTypeDefinition
|
||||
BuildVersion: MessageTypeDefinition
|
||||
CidrRange: MessageTypeDefinition
|
||||
ControlPlane: MessageTypeDefinition
|
||||
DataSource: MessageTypeDefinition
|
||||
EventServiceConfig: MessageTypeDefinition
|
||||
Extension: MessageTypeDefinition
|
||||
GrpcService: MessageTypeDefinition
|
||||
HeaderMap: MessageTypeDefinition
|
||||
HeaderValue: MessageTypeDefinition
|
||||
HeaderValueOption: MessageTypeDefinition
|
||||
HealthCheck: MessageTypeDefinition
|
||||
HealthStatus: EnumTypeDefinition
|
||||
HttpUri: MessageTypeDefinition
|
||||
Locality: MessageTypeDefinition
|
||||
Metadata: MessageTypeDefinition
|
||||
Node: MessageTypeDefinition
|
||||
Pipe: MessageTypeDefinition
|
||||
RemoteDataSource: MessageTypeDefinition
|
||||
RequestMethod: EnumTypeDefinition
|
||||
RetryPolicy: MessageTypeDefinition
|
||||
RoutingPriority: EnumTypeDefinition
|
||||
RuntimeDouble: MessageTypeDefinition
|
||||
RuntimeFeatureFlag: MessageTypeDefinition
|
||||
RuntimeFractionalPercent: MessageTypeDefinition
|
||||
RuntimeUInt32: MessageTypeDefinition
|
||||
SocketAddress: MessageTypeDefinition
|
||||
SocketOption: MessageTypeDefinition
|
||||
TcpKeepalive: MessageTypeDefinition
|
||||
TrafficDirection: EnumTypeDefinition
|
||||
TransportSocket: MessageTypeDefinition
|
||||
}
|
||||
endpoint: {
|
||||
Endpoint: MessageTypeDefinition
|
||||
LbEndpoint: MessageTypeDefinition
|
||||
LocalityLbEndpoints: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
}
|
||||
type: {
|
||||
CodecClientType: EnumTypeDefinition
|
||||
DoubleRange: MessageTypeDefinition
|
||||
FractionalPercent: MessageTypeDefinition
|
||||
Int32Range: MessageTypeDefinition
|
||||
Int64Range: MessageTypeDefinition
|
||||
Percent: MessageTypeDefinition
|
||||
SemanticVersion: MessageTypeDefinition
|
||||
matcher: {
|
||||
ListStringMatcher: MessageTypeDefinition
|
||||
RegexMatchAndSubstitute: MessageTypeDefinition
|
||||
RegexMatcher: MessageTypeDefinition
|
||||
StringMatcher: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
}
|
||||
google: {
|
||||
api: {
|
||||
CustomHttpPattern: MessageTypeDefinition
|
||||
Http: MessageTypeDefinition
|
||||
HttpRule: MessageTypeDefinition
|
||||
}
|
||||
protobuf: {
|
||||
Any: MessageTypeDefinition
|
||||
BoolValue: MessageTypeDefinition
|
||||
BytesValue: MessageTypeDefinition
|
||||
DescriptorProto: MessageTypeDefinition
|
||||
DoubleValue: MessageTypeDefinition
|
||||
Duration: MessageTypeDefinition
|
||||
Empty: MessageTypeDefinition
|
||||
EnumDescriptorProto: MessageTypeDefinition
|
||||
EnumOptions: MessageTypeDefinition
|
||||
EnumValueDescriptorProto: MessageTypeDefinition
|
||||
EnumValueOptions: MessageTypeDefinition
|
||||
FieldDescriptorProto: MessageTypeDefinition
|
||||
FieldOptions: MessageTypeDefinition
|
||||
FileDescriptorProto: MessageTypeDefinition
|
||||
FileDescriptorSet: MessageTypeDefinition
|
||||
FileOptions: MessageTypeDefinition
|
||||
FloatValue: MessageTypeDefinition
|
||||
GeneratedCodeInfo: MessageTypeDefinition
|
||||
Int32Value: MessageTypeDefinition
|
||||
Int64Value: MessageTypeDefinition
|
||||
ListValue: MessageTypeDefinition
|
||||
MessageOptions: MessageTypeDefinition
|
||||
MethodDescriptorProto: MessageTypeDefinition
|
||||
MethodOptions: MessageTypeDefinition
|
||||
NullValue: EnumTypeDefinition
|
||||
OneofDescriptorProto: MessageTypeDefinition
|
||||
OneofOptions: MessageTypeDefinition
|
||||
ServiceDescriptorProto: MessageTypeDefinition
|
||||
ServiceOptions: MessageTypeDefinition
|
||||
SourceCodeInfo: MessageTypeDefinition
|
||||
StringValue: MessageTypeDefinition
|
||||
Struct: MessageTypeDefinition
|
||||
Timestamp: MessageTypeDefinition
|
||||
UInt32Value: MessageTypeDefinition
|
||||
UInt64Value: MessageTypeDefinition
|
||||
UninterpretedOption: MessageTypeDefinition
|
||||
Value: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
udpa: {
|
||||
annotations: {
|
||||
FieldMigrateAnnotation: MessageTypeDefinition
|
||||
FileMigrateAnnotation: MessageTypeDefinition
|
||||
MigrateAnnotation: MessageTypeDefinition
|
||||
PackageVersionStatus: EnumTypeDefinition
|
||||
StatusAnnotation: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
validate: {
|
||||
AnyRules: MessageTypeDefinition
|
||||
BoolRules: MessageTypeDefinition
|
||||
BytesRules: MessageTypeDefinition
|
||||
DoubleRules: MessageTypeDefinition
|
||||
DurationRules: MessageTypeDefinition
|
||||
EnumRules: MessageTypeDefinition
|
||||
FieldRules: MessageTypeDefinition
|
||||
Fixed32Rules: MessageTypeDefinition
|
||||
Fixed64Rules: MessageTypeDefinition
|
||||
FloatRules: MessageTypeDefinition
|
||||
Int32Rules: MessageTypeDefinition
|
||||
Int64Rules: MessageTypeDefinition
|
||||
KnownRegex: EnumTypeDefinition
|
||||
MapRules: MessageTypeDefinition
|
||||
MessageRules: MessageTypeDefinition
|
||||
RepeatedRules: MessageTypeDefinition
|
||||
SFixed32Rules: MessageTypeDefinition
|
||||
SFixed64Rules: MessageTypeDefinition
|
||||
SInt32Rules: MessageTypeDefinition
|
||||
SInt64Rules: MessageTypeDefinition
|
||||
StringRules: MessageTypeDefinition
|
||||
TimestampRules: MessageTypeDefinition
|
||||
UInt32Rules: MessageTypeDefinition
|
||||
UInt64Rules: MessageTypeDefinition
|
||||
}
|
||||
}
|
||||
|
||||
1679
packages/grpc-js/src/generated/envoy/api/v2/Cluster.ts
Normal file
1679
packages/grpc-js/src/generated/envoy/api/v2/Cluster.ts
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,235 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/endpoint.proto
|
||||
|
||||
import { LocalityLbEndpoints as _envoy_api_v2_endpoint_LocalityLbEndpoints, LocalityLbEndpoints__Output as _envoy_api_v2_endpoint_LocalityLbEndpoints__Output } from '../../../envoy/api/v2/endpoint/LocalityLbEndpoints';
|
||||
import { Endpoint as _envoy_api_v2_endpoint_Endpoint, Endpoint__Output as _envoy_api_v2_endpoint_Endpoint__Output } from '../../../envoy/api/v2/endpoint/Endpoint';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../google/protobuf/UInt32Value';
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../google/protobuf/Duration';
|
||||
import { FractionalPercent as _envoy_type_FractionalPercent, FractionalPercent__Output as _envoy_type_FractionalPercent__Output } from '../../../envoy/type/FractionalPercent';
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
export interface _envoy_api_v2_ClusterLoadAssignment_Policy_DropOverload {
|
||||
/**
|
||||
* Identifier for the policy specifying the drop.
|
||||
*/
|
||||
'category'?: (string);
|
||||
/**
|
||||
* Percentage of traffic that should be dropped for the category.
|
||||
*/
|
||||
'drop_percentage'?: (_envoy_type_FractionalPercent);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
export interface _envoy_api_v2_ClusterLoadAssignment_Policy_DropOverload__Output {
|
||||
/**
|
||||
* Identifier for the policy specifying the drop.
|
||||
*/
|
||||
'category': (string);
|
||||
/**
|
||||
* Percentage of traffic that should be dropped for the category.
|
||||
*/
|
||||
'drop_percentage'?: (_envoy_type_FractionalPercent__Output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load balancing policy settings.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface _envoy_api_v2_ClusterLoadAssignment_Policy {
|
||||
/**
|
||||
* Action to trim the overall incoming traffic to protect the upstream
|
||||
* hosts. This action allows protection in case the hosts are unable to
|
||||
* recover from an outage, or unable to autoscale or unable to handle
|
||||
* incoming traffic volume for any reason.
|
||||
*
|
||||
* At the client each category is applied one after the other to generate
|
||||
* the 'actual' drop percentage on all outgoing traffic. For example:
|
||||
*
|
||||
* .. code-block:: json
|
||||
*
|
||||
* { "drop_overloads": [
|
||||
* { "category": "throttle", "drop_percentage": 60 }
|
||||
* { "category": "lb", "drop_percentage": 50 }
|
||||
* ]}
|
||||
*
|
||||
* The actual drop percentages applied to the traffic at the clients will be
|
||||
* "throttle"_drop = 60%
|
||||
* "lb"_drop = 20% // 50% of the remaining 'actual' load, which is 40%.
|
||||
* actual_outgoing_load = 20% // remaining after applying all categories.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'drop_overloads'?: (_envoy_api_v2_ClusterLoadAssignment_Policy_DropOverload)[];
|
||||
/**
|
||||
* Priority levels and localities are considered overprovisioned with this
|
||||
* factor (in percentage). This means that we don't consider a priority
|
||||
* level or locality unhealthy until the percentage of healthy hosts
|
||||
* multiplied by the overprovisioning factor drops below 100.
|
||||
* With the default value 140(1.4), Envoy doesn't consider a priority level
|
||||
* or a locality unhealthy until their percentage of healthy hosts drops
|
||||
* below 72%. For example:
|
||||
*
|
||||
* .. code-block:: json
|
||||
*
|
||||
* { "overprovisioning_factor": 100 }
|
||||
*
|
||||
* Read more at :ref:`priority levels <arch_overview_load_balancing_priority_levels>` and
|
||||
* :ref:`localities <arch_overview_load_balancing_locality_weighted_lb>`.
|
||||
*/
|
||||
'overprovisioning_factor'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The max time until which the endpoints from this assignment can be used.
|
||||
* If no new assignments are received before this time expires the endpoints
|
||||
* are considered stale and should be marked unhealthy.
|
||||
* Defaults to 0 which means endpoints never go stale.
|
||||
*/
|
||||
'endpoint_stale_after'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* The flag to disable overprovisioning. If it is set to true,
|
||||
* :ref:`overprovisioning factor
|
||||
* <arch_overview_load_balancing_overprovisioning_factor>` will be ignored
|
||||
* and Envoy will not perform graceful failover between priority levels or
|
||||
* localities as endpoints become unhealthy. Otherwise Envoy will perform
|
||||
* graceful failover as :ref:`overprovisioning factor
|
||||
* <arch_overview_load_balancing_overprovisioning_factor>` suggests.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'disable_overprovisioning'?: (boolean);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load balancing policy settings.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface _envoy_api_v2_ClusterLoadAssignment_Policy__Output {
|
||||
/**
|
||||
* Action to trim the overall incoming traffic to protect the upstream
|
||||
* hosts. This action allows protection in case the hosts are unable to
|
||||
* recover from an outage, or unable to autoscale or unable to handle
|
||||
* incoming traffic volume for any reason.
|
||||
*
|
||||
* At the client each category is applied one after the other to generate
|
||||
* the 'actual' drop percentage on all outgoing traffic. For example:
|
||||
*
|
||||
* .. code-block:: json
|
||||
*
|
||||
* { "drop_overloads": [
|
||||
* { "category": "throttle", "drop_percentage": 60 }
|
||||
* { "category": "lb", "drop_percentage": 50 }
|
||||
* ]}
|
||||
*
|
||||
* The actual drop percentages applied to the traffic at the clients will be
|
||||
* "throttle"_drop = 60%
|
||||
* "lb"_drop = 20% // 50% of the remaining 'actual' load, which is 40%.
|
||||
* actual_outgoing_load = 20% // remaining after applying all categories.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'drop_overloads': (_envoy_api_v2_ClusterLoadAssignment_Policy_DropOverload__Output)[];
|
||||
/**
|
||||
* Priority levels and localities are considered overprovisioned with this
|
||||
* factor (in percentage). This means that we don't consider a priority
|
||||
* level or locality unhealthy until the percentage of healthy hosts
|
||||
* multiplied by the overprovisioning factor drops below 100.
|
||||
* With the default value 140(1.4), Envoy doesn't consider a priority level
|
||||
* or a locality unhealthy until their percentage of healthy hosts drops
|
||||
* below 72%. For example:
|
||||
*
|
||||
* .. code-block:: json
|
||||
*
|
||||
* { "overprovisioning_factor": 100 }
|
||||
*
|
||||
* Read more at :ref:`priority levels <arch_overview_load_balancing_priority_levels>` and
|
||||
* :ref:`localities <arch_overview_load_balancing_locality_weighted_lb>`.
|
||||
*/
|
||||
'overprovisioning_factor'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The max time until which the endpoints from this assignment can be used.
|
||||
* If no new assignments are received before this time expires the endpoints
|
||||
* are considered stale and should be marked unhealthy.
|
||||
* Defaults to 0 which means endpoints never go stale.
|
||||
*/
|
||||
'endpoint_stale_after'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* The flag to disable overprovisioning. If it is set to true,
|
||||
* :ref:`overprovisioning factor
|
||||
* <arch_overview_load_balancing_overprovisioning_factor>` will be ignored
|
||||
* and Envoy will not perform graceful failover between priority levels or
|
||||
* localities as endpoints become unhealthy. Otherwise Envoy will perform
|
||||
* graceful failover as :ref:`overprovisioning factor
|
||||
* <arch_overview_load_balancing_overprovisioning_factor>` suggests.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'disable_overprovisioning': (boolean);
|
||||
}
|
||||
|
||||
/**
|
||||
* Each route from RDS will map to a single cluster or traffic split across
|
||||
* clusters using weights expressed in the RDS WeightedCluster.
|
||||
*
|
||||
* With EDS, each cluster is treated independently from a LB perspective, with
|
||||
* LB taking place between the Localities within a cluster and at a finer
|
||||
* granularity between the hosts within a locality. The percentage of traffic
|
||||
* for each endpoint is determined by both its load_balancing_weight, and the
|
||||
* load_balancing_weight of its locality. First, a locality will be selected,
|
||||
* then an endpoint within that locality will be chose based on its weight.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface ClusterLoadAssignment {
|
||||
/**
|
||||
* Name of the cluster. This will be the :ref:`service_name
|
||||
* <envoy_api_field_Cluster.EdsClusterConfig.service_name>` value if specified
|
||||
* in the cluster :ref:`EdsClusterConfig
|
||||
* <envoy_api_msg_Cluster.EdsClusterConfig>`.
|
||||
*/
|
||||
'cluster_name'?: (string);
|
||||
/**
|
||||
* List of endpoints to load balance to.
|
||||
*/
|
||||
'endpoints'?: (_envoy_api_v2_endpoint_LocalityLbEndpoints)[];
|
||||
/**
|
||||
* Load balancing policy settings.
|
||||
*/
|
||||
'policy'?: (_envoy_api_v2_ClusterLoadAssignment_Policy);
|
||||
/**
|
||||
* Map of named endpoints that can be referenced in LocalityLbEndpoints.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'named_endpoints'?: ({[key: string]: _envoy_api_v2_endpoint_Endpoint});
|
||||
}
|
||||
|
||||
/**
|
||||
* Each route from RDS will map to a single cluster or traffic split across
|
||||
* clusters using weights expressed in the RDS WeightedCluster.
|
||||
*
|
||||
* With EDS, each cluster is treated independently from a LB perspective, with
|
||||
* LB taking place between the Localities within a cluster and at a finer
|
||||
* granularity between the hosts within a locality. The percentage of traffic
|
||||
* for each endpoint is determined by both its load_balancing_weight, and the
|
||||
* load_balancing_weight of its locality. First, a locality will be selected,
|
||||
* then an endpoint within that locality will be chose based on its weight.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface ClusterLoadAssignment__Output {
|
||||
/**
|
||||
* Name of the cluster. This will be the :ref:`service_name
|
||||
* <envoy_api_field_Cluster.EdsClusterConfig.service_name>` value if specified
|
||||
* in the cluster :ref:`EdsClusterConfig
|
||||
* <envoy_api_msg_Cluster.EdsClusterConfig>`.
|
||||
*/
|
||||
'cluster_name': (string);
|
||||
/**
|
||||
* List of endpoints to load balance to.
|
||||
*/
|
||||
'endpoints': (_envoy_api_v2_endpoint_LocalityLbEndpoints__Output)[];
|
||||
/**
|
||||
* Load balancing policy settings.
|
||||
*/
|
||||
'policy'?: (_envoy_api_v2_ClusterLoadAssignment_Policy__Output);
|
||||
/**
|
||||
* Map of named endpoints that can be referenced in LocalityLbEndpoints.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'named_endpoints'?: ({[key: string]: _envoy_api_v2_endpoint_Endpoint__Output});
|
||||
}
|
||||
@ -0,0 +1,202 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/discovery.proto
|
||||
|
||||
import { Node as _envoy_api_v2_core_Node, Node__Output as _envoy_api_v2_core_Node__Output } from '../../../envoy/api/v2/core/Node';
|
||||
import { Status as _google_rpc_Status, Status__Output as _google_rpc_Status__Output } from '../../../google/rpc/Status';
|
||||
|
||||
/**
|
||||
* DeltaDiscoveryRequest and DeltaDiscoveryResponse are used in a new gRPC
|
||||
* endpoint for Delta xDS.
|
||||
*
|
||||
* With Delta xDS, the DeltaDiscoveryResponses do not need to include a full
|
||||
* snapshot of the tracked resources. Instead, DeltaDiscoveryResponses are a
|
||||
* diff to the state of a xDS client.
|
||||
* In Delta XDS there are per-resource versions, which allow tracking state at
|
||||
* the resource granularity.
|
||||
* An xDS Delta session is always in the context of a gRPC bidirectional
|
||||
* stream. This allows the xDS server to keep track of the state of xDS clients
|
||||
* connected to it.
|
||||
*
|
||||
* In Delta xDS the nonce field is required and used to pair
|
||||
* DeltaDiscoveryResponse to a DeltaDiscoveryRequest ACK or NACK.
|
||||
* Optionally, a response message level system_version_info is present for
|
||||
* debugging purposes only.
|
||||
*
|
||||
* DeltaDiscoveryRequest plays two independent roles. Any DeltaDiscoveryRequest
|
||||
* can be either or both of: [1] informing the server of what resources the
|
||||
* client has gained/lost interest in (using resource_names_subscribe and
|
||||
* resource_names_unsubscribe), or [2] (N)ACKing an earlier resource update from
|
||||
* the server (using response_nonce, with presence of error_detail making it a NACK).
|
||||
* Additionally, the first message (for a given type_url) of a reconnected gRPC stream
|
||||
* has a third role: informing the server of the resources (and their versions)
|
||||
* that the client already possesses, using the initial_resource_versions field.
|
||||
*
|
||||
* As with state-of-the-world, when multiple resource types are multiplexed (ADS),
|
||||
* all requests/acknowledgments/updates are logically walled off by type_url:
|
||||
* a Cluster ACK exists in a completely separate world from a prior Route NACK.
|
||||
* In particular, initial_resource_versions being sent at the "start" of every
|
||||
* gRPC stream actually entails a message for each type_url, each with its own
|
||||
* initial_resource_versions.
|
||||
* [#next-free-field: 8]
|
||||
*/
|
||||
export interface DeltaDiscoveryRequest {
|
||||
/**
|
||||
* The node making the request.
|
||||
*/
|
||||
'node'?: (_envoy_api_v2_core_Node);
|
||||
/**
|
||||
* Type of the resource that is being requested, e.g.
|
||||
* "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment".
|
||||
*/
|
||||
'type_url'?: (string);
|
||||
/**
|
||||
* DeltaDiscoveryRequests allow the client to add or remove individual
|
||||
* resources to the set of tracked resources in the context of a stream.
|
||||
* All resource names in the resource_names_subscribe list are added to the
|
||||
* set of tracked resources and all resource names in the resource_names_unsubscribe
|
||||
* list are removed from the set of tracked resources.
|
||||
*
|
||||
* *Unlike* state-of-the-world xDS, an empty resource_names_subscribe or
|
||||
* resource_names_unsubscribe list simply means that no resources are to be
|
||||
* added or removed to the resource list.
|
||||
* *Like* state-of-the-world xDS, the server must send updates for all tracked
|
||||
* resources, but can also send updates for resources the client has not subscribed to.
|
||||
*
|
||||
* NOTE: the server must respond with all resources listed in resource_names_subscribe,
|
||||
* even if it believes the client has the most recent version of them. The reason:
|
||||
* the client may have dropped them, but then regained interest before it had a chance
|
||||
* to send the unsubscribe message. See DeltaSubscriptionStateTest.RemoveThenAdd.
|
||||
*
|
||||
* These two fields can be set in any DeltaDiscoveryRequest, including ACKs
|
||||
* and initial_resource_versions.
|
||||
*
|
||||
* A list of Resource names to add to the list of tracked resources.
|
||||
*/
|
||||
'resource_names_subscribe'?: (string)[];
|
||||
/**
|
||||
* A list of Resource names to remove from the list of tracked resources.
|
||||
*/
|
||||
'resource_names_unsubscribe'?: (string)[];
|
||||
/**
|
||||
* Informs the server of the versions of the resources the xDS client knows of, to enable the
|
||||
* client to continue the same logical xDS session even in the face of gRPC stream reconnection.
|
||||
* It will not be populated: [1] in the very first stream of a session, since the client will
|
||||
* not yet have any resources, [2] in any message after the first in a stream (for a given
|
||||
* type_url), since the server will already be correctly tracking the client's state.
|
||||
* (In ADS, the first message *of each type_url* of a reconnected stream populates this map.)
|
||||
* The map's keys are names of xDS resources known to the xDS client.
|
||||
* The map's values are opaque resource versions.
|
||||
*/
|
||||
'initial_resource_versions'?: ({[key: string]: string});
|
||||
/**
|
||||
* When the DeltaDiscoveryRequest is a ACK or NACK message in response
|
||||
* to a previous DeltaDiscoveryResponse, the response_nonce must be the
|
||||
* nonce in the DeltaDiscoveryResponse.
|
||||
* Otherwise (unlike in DiscoveryRequest) response_nonce must be omitted.
|
||||
*/
|
||||
'response_nonce'?: (string);
|
||||
/**
|
||||
* This is populated when the previous :ref:`DiscoveryResponse <envoy_api_msg_DiscoveryResponse>`
|
||||
* failed to update configuration. The *message* field in *error_details*
|
||||
* provides the Envoy internal exception related to the failure.
|
||||
*/
|
||||
'error_detail'?: (_google_rpc_Status);
|
||||
}
|
||||
|
||||
/**
|
||||
* DeltaDiscoveryRequest and DeltaDiscoveryResponse are used in a new gRPC
|
||||
* endpoint for Delta xDS.
|
||||
*
|
||||
* With Delta xDS, the DeltaDiscoveryResponses do not need to include a full
|
||||
* snapshot of the tracked resources. Instead, DeltaDiscoveryResponses are a
|
||||
* diff to the state of a xDS client.
|
||||
* In Delta XDS there are per-resource versions, which allow tracking state at
|
||||
* the resource granularity.
|
||||
* An xDS Delta session is always in the context of a gRPC bidirectional
|
||||
* stream. This allows the xDS server to keep track of the state of xDS clients
|
||||
* connected to it.
|
||||
*
|
||||
* In Delta xDS the nonce field is required and used to pair
|
||||
* DeltaDiscoveryResponse to a DeltaDiscoveryRequest ACK or NACK.
|
||||
* Optionally, a response message level system_version_info is present for
|
||||
* debugging purposes only.
|
||||
*
|
||||
* DeltaDiscoveryRequest plays two independent roles. Any DeltaDiscoveryRequest
|
||||
* can be either or both of: [1] informing the server of what resources the
|
||||
* client has gained/lost interest in (using resource_names_subscribe and
|
||||
* resource_names_unsubscribe), or [2] (N)ACKing an earlier resource update from
|
||||
* the server (using response_nonce, with presence of error_detail making it a NACK).
|
||||
* Additionally, the first message (for a given type_url) of a reconnected gRPC stream
|
||||
* has a third role: informing the server of the resources (and their versions)
|
||||
* that the client already possesses, using the initial_resource_versions field.
|
||||
*
|
||||
* As with state-of-the-world, when multiple resource types are multiplexed (ADS),
|
||||
* all requests/acknowledgments/updates are logically walled off by type_url:
|
||||
* a Cluster ACK exists in a completely separate world from a prior Route NACK.
|
||||
* In particular, initial_resource_versions being sent at the "start" of every
|
||||
* gRPC stream actually entails a message for each type_url, each with its own
|
||||
* initial_resource_versions.
|
||||
* [#next-free-field: 8]
|
||||
*/
|
||||
export interface DeltaDiscoveryRequest__Output {
|
||||
/**
|
||||
* The node making the request.
|
||||
*/
|
||||
'node'?: (_envoy_api_v2_core_Node__Output);
|
||||
/**
|
||||
* Type of the resource that is being requested, e.g.
|
||||
* "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment".
|
||||
*/
|
||||
'type_url': (string);
|
||||
/**
|
||||
* DeltaDiscoveryRequests allow the client to add or remove individual
|
||||
* resources to the set of tracked resources in the context of a stream.
|
||||
* All resource names in the resource_names_subscribe list are added to the
|
||||
* set of tracked resources and all resource names in the resource_names_unsubscribe
|
||||
* list are removed from the set of tracked resources.
|
||||
*
|
||||
* *Unlike* state-of-the-world xDS, an empty resource_names_subscribe or
|
||||
* resource_names_unsubscribe list simply means that no resources are to be
|
||||
* added or removed to the resource list.
|
||||
* *Like* state-of-the-world xDS, the server must send updates for all tracked
|
||||
* resources, but can also send updates for resources the client has not subscribed to.
|
||||
*
|
||||
* NOTE: the server must respond with all resources listed in resource_names_subscribe,
|
||||
* even if it believes the client has the most recent version of them. The reason:
|
||||
* the client may have dropped them, but then regained interest before it had a chance
|
||||
* to send the unsubscribe message. See DeltaSubscriptionStateTest.RemoveThenAdd.
|
||||
*
|
||||
* These two fields can be set in any DeltaDiscoveryRequest, including ACKs
|
||||
* and initial_resource_versions.
|
||||
*
|
||||
* A list of Resource names to add to the list of tracked resources.
|
||||
*/
|
||||
'resource_names_subscribe': (string)[];
|
||||
/**
|
||||
* A list of Resource names to remove from the list of tracked resources.
|
||||
*/
|
||||
'resource_names_unsubscribe': (string)[];
|
||||
/**
|
||||
* Informs the server of the versions of the resources the xDS client knows of, to enable the
|
||||
* client to continue the same logical xDS session even in the face of gRPC stream reconnection.
|
||||
* It will not be populated: [1] in the very first stream of a session, since the client will
|
||||
* not yet have any resources, [2] in any message after the first in a stream (for a given
|
||||
* type_url), since the server will already be correctly tracking the client's state.
|
||||
* (In ADS, the first message *of each type_url* of a reconnected stream populates this map.)
|
||||
* The map's keys are names of xDS resources known to the xDS client.
|
||||
* The map's values are opaque resource versions.
|
||||
*/
|
||||
'initial_resource_versions': ({[key: string]: string});
|
||||
/**
|
||||
* When the DeltaDiscoveryRequest is a ACK or NACK message in response
|
||||
* to a previous DeltaDiscoveryResponse, the response_nonce must be the
|
||||
* nonce in the DeltaDiscoveryResponse.
|
||||
* Otherwise (unlike in DiscoveryRequest) response_nonce must be omitted.
|
||||
*/
|
||||
'response_nonce': (string);
|
||||
/**
|
||||
* This is populated when the previous :ref:`DiscoveryResponse <envoy_api_msg_DiscoveryResponse>`
|
||||
* failed to update configuration. The *message* field in *error_details*
|
||||
* provides the Envoy internal exception related to the failure.
|
||||
*/
|
||||
'error_detail'?: (_google_rpc_Status__Output);
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/discovery.proto
|
||||
|
||||
import { Resource as _envoy_api_v2_Resource, Resource__Output as _envoy_api_v2_Resource__Output } from '../../../envoy/api/v2/Resource';
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface DeltaDiscoveryResponse {
|
||||
/**
|
||||
* The version of the response data (used for debugging).
|
||||
*/
|
||||
'system_version_info'?: (string);
|
||||
/**
|
||||
* The response resources. These are typed resources, whose types must match
|
||||
* the type_url field.
|
||||
*/
|
||||
'resources'?: (_envoy_api_v2_Resource)[];
|
||||
/**
|
||||
* Type URL for resources. Identifies the xDS API when muxing over ADS.
|
||||
* Must be consistent with the type_url in the Any within 'resources' if 'resources' is non-empty.
|
||||
*/
|
||||
'type_url'?: (string);
|
||||
/**
|
||||
* The nonce provides a way for DeltaDiscoveryRequests to uniquely
|
||||
* reference a DeltaDiscoveryResponse when (N)ACKing. The nonce is required.
|
||||
*/
|
||||
'nonce'?: (string);
|
||||
/**
|
||||
* Resources names of resources that have be deleted and to be removed from the xDS Client.
|
||||
* Removed resources for missing resources can be ignored.
|
||||
*/
|
||||
'removed_resources'?: (string)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface DeltaDiscoveryResponse__Output {
|
||||
/**
|
||||
* The version of the response data (used for debugging).
|
||||
*/
|
||||
'system_version_info': (string);
|
||||
/**
|
||||
* The response resources. These are typed resources, whose types must match
|
||||
* the type_url field.
|
||||
*/
|
||||
'resources': (_envoy_api_v2_Resource__Output)[];
|
||||
/**
|
||||
* Type URL for resources. Identifies the xDS API when muxing over ADS.
|
||||
* Must be consistent with the type_url in the Any within 'resources' if 'resources' is non-empty.
|
||||
*/
|
||||
'type_url': (string);
|
||||
/**
|
||||
* The nonce provides a way for DeltaDiscoveryRequests to uniquely
|
||||
* reference a DeltaDiscoveryResponse when (N)ACKing. The nonce is required.
|
||||
*/
|
||||
'nonce': (string);
|
||||
/**
|
||||
* Resources names of resources that have be deleted and to be removed from the xDS Client.
|
||||
* Removed resources for missing resources can be ignored.
|
||||
*/
|
||||
'removed_resources': (string)[];
|
||||
}
|
||||
110
packages/grpc-js/src/generated/envoy/api/v2/DiscoveryRequest.ts
Normal file
110
packages/grpc-js/src/generated/envoy/api/v2/DiscoveryRequest.ts
Normal file
@ -0,0 +1,110 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/discovery.proto
|
||||
|
||||
import { Node as _envoy_api_v2_core_Node, Node__Output as _envoy_api_v2_core_Node__Output } from '../../../envoy/api/v2/core/Node';
|
||||
import { Status as _google_rpc_Status, Status__Output as _google_rpc_Status__Output } from '../../../google/rpc/Status';
|
||||
|
||||
/**
|
||||
* A DiscoveryRequest requests a set of versioned resources of the same type for
|
||||
* a given Envoy node on some API.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface DiscoveryRequest {
|
||||
/**
|
||||
* The version_info provided in the request messages will be the version_info
|
||||
* received with the most recent successfully processed response or empty on
|
||||
* the first request. It is expected that no new request is sent after a
|
||||
* response is received until the Envoy instance is ready to ACK/NACK the new
|
||||
* configuration. ACK/NACK takes place by returning the new API config version
|
||||
* as applied or the previous API config version respectively. Each type_url
|
||||
* (see below) has an independent version associated with it.
|
||||
*/
|
||||
'version_info'?: (string);
|
||||
/**
|
||||
* The node making the request.
|
||||
*/
|
||||
'node'?: (_envoy_api_v2_core_Node);
|
||||
/**
|
||||
* List of resources to subscribe to, e.g. list of cluster names or a route
|
||||
* configuration name. If this is empty, all resources for the API are
|
||||
* returned. LDS/CDS may have empty resource_names, which will cause all
|
||||
* resources for the Envoy instance to be returned. The LDS and CDS responses
|
||||
* will then imply a number of resources that need to be fetched via EDS/RDS,
|
||||
* which will be explicitly enumerated in resource_names.
|
||||
*/
|
||||
'resource_names'?: (string)[];
|
||||
/**
|
||||
* Type of the resource that is being requested, e.g.
|
||||
* "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment". This is implicit
|
||||
* in requests made via singleton xDS APIs such as CDS, LDS, etc. but is
|
||||
* required for ADS.
|
||||
*/
|
||||
'type_url'?: (string);
|
||||
/**
|
||||
* nonce corresponding to DiscoveryResponse being ACK/NACKed. See above
|
||||
* discussion on version_info and the DiscoveryResponse nonce comment. This
|
||||
* may be empty only if 1) this is a non-persistent-stream xDS such as HTTP,
|
||||
* or 2) the client has not yet accepted an update in this xDS stream (unlike
|
||||
* delta, where it is populated only for new explicit ACKs).
|
||||
*/
|
||||
'response_nonce'?: (string);
|
||||
/**
|
||||
* This is populated when the previous :ref:`DiscoveryResponse <envoy_api_msg_DiscoveryResponse>`
|
||||
* failed to update configuration. The *message* field in *error_details* provides the Envoy
|
||||
* internal exception related to the failure. It is only intended for consumption during manual
|
||||
* debugging, the string provided is not guaranteed to be stable across Envoy versions.
|
||||
*/
|
||||
'error_detail'?: (_google_rpc_Status);
|
||||
}
|
||||
|
||||
/**
|
||||
* A DiscoveryRequest requests a set of versioned resources of the same type for
|
||||
* a given Envoy node on some API.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface DiscoveryRequest__Output {
|
||||
/**
|
||||
* The version_info provided in the request messages will be the version_info
|
||||
* received with the most recent successfully processed response or empty on
|
||||
* the first request. It is expected that no new request is sent after a
|
||||
* response is received until the Envoy instance is ready to ACK/NACK the new
|
||||
* configuration. ACK/NACK takes place by returning the new API config version
|
||||
* as applied or the previous API config version respectively. Each type_url
|
||||
* (see below) has an independent version associated with it.
|
||||
*/
|
||||
'version_info': (string);
|
||||
/**
|
||||
* The node making the request.
|
||||
*/
|
||||
'node'?: (_envoy_api_v2_core_Node__Output);
|
||||
/**
|
||||
* List of resources to subscribe to, e.g. list of cluster names or a route
|
||||
* configuration name. If this is empty, all resources for the API are
|
||||
* returned. LDS/CDS may have empty resource_names, which will cause all
|
||||
* resources for the Envoy instance to be returned. The LDS and CDS responses
|
||||
* will then imply a number of resources that need to be fetched via EDS/RDS,
|
||||
* which will be explicitly enumerated in resource_names.
|
||||
*/
|
||||
'resource_names': (string)[];
|
||||
/**
|
||||
* Type of the resource that is being requested, e.g.
|
||||
* "type.googleapis.com/envoy.api.v2.ClusterLoadAssignment". This is implicit
|
||||
* in requests made via singleton xDS APIs such as CDS, LDS, etc. but is
|
||||
* required for ADS.
|
||||
*/
|
||||
'type_url': (string);
|
||||
/**
|
||||
* nonce corresponding to DiscoveryResponse being ACK/NACKed. See above
|
||||
* discussion on version_info and the DiscoveryResponse nonce comment. This
|
||||
* may be empty only if 1) this is a non-persistent-stream xDS such as HTTP,
|
||||
* or 2) the client has not yet accepted an update in this xDS stream (unlike
|
||||
* delta, where it is populated only for new explicit ACKs).
|
||||
*/
|
||||
'response_nonce': (string);
|
||||
/**
|
||||
* This is populated when the previous :ref:`DiscoveryResponse <envoy_api_msg_DiscoveryResponse>`
|
||||
* failed to update configuration. The *message* field in *error_details* provides the Envoy
|
||||
* internal exception related to the failure. It is only intended for consumption during manual
|
||||
* debugging, the string provided is not guaranteed to be stable across Envoy versions.
|
||||
*/
|
||||
'error_detail'?: (_google_rpc_Status__Output);
|
||||
}
|
||||
108
packages/grpc-js/src/generated/envoy/api/v2/DiscoveryResponse.ts
Normal file
108
packages/grpc-js/src/generated/envoy/api/v2/DiscoveryResponse.ts
Normal file
@ -0,0 +1,108 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/discovery.proto
|
||||
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
|
||||
import { ControlPlane as _envoy_api_v2_core_ControlPlane, ControlPlane__Output as _envoy_api_v2_core_ControlPlane__Output } from '../../../envoy/api/v2/core/ControlPlane';
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface DiscoveryResponse {
|
||||
/**
|
||||
* The version of the response data.
|
||||
*/
|
||||
'version_info'?: (string);
|
||||
/**
|
||||
* The response resources. These resources are typed and depend on the API being called.
|
||||
*/
|
||||
'resources'?: (_google_protobuf_Any)[];
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* Canary is used to support two Envoy command line flags:
|
||||
*
|
||||
* * --terminate-on-canary-transition-failure. When set, Envoy is able to
|
||||
* terminate if it detects that configuration is stuck at canary. Consider
|
||||
* this example sequence of updates:
|
||||
* - Management server applies a canary config successfully.
|
||||
* - Management server rolls back to a production config.
|
||||
* - Envoy rejects the new production config.
|
||||
* Since there is no sensible way to continue receiving configuration
|
||||
* updates, Envoy will then terminate and apply production config from a
|
||||
* clean slate.
|
||||
* * --dry-run-canary. When set, a canary response will never be applied, only
|
||||
* validated via a dry run.
|
||||
*/
|
||||
'canary'?: (boolean);
|
||||
/**
|
||||
* Type URL for resources. Identifies the xDS API when muxing over ADS.
|
||||
* Must be consistent with the type_url in the 'resources' repeated Any (if non-empty).
|
||||
*/
|
||||
'type_url'?: (string);
|
||||
/**
|
||||
* For gRPC based subscriptions, the nonce provides a way to explicitly ack a
|
||||
* specific DiscoveryResponse in a following DiscoveryRequest. Additional
|
||||
* messages may have been sent by Envoy to the management server for the
|
||||
* previous version on the stream prior to this DiscoveryResponse, that were
|
||||
* unprocessed at response send time. The nonce allows the management server
|
||||
* to ignore any further DiscoveryRequests for the previous version until a
|
||||
* DiscoveryRequest bearing the nonce. The nonce is optional and is not
|
||||
* required for non-stream based xDS implementations.
|
||||
*/
|
||||
'nonce'?: (string);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* The control plane instance that sent the response.
|
||||
*/
|
||||
'control_plane'?: (_envoy_api_v2_core_ControlPlane);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface DiscoveryResponse__Output {
|
||||
/**
|
||||
* The version of the response data.
|
||||
*/
|
||||
'version_info': (string);
|
||||
/**
|
||||
* The response resources. These resources are typed and depend on the API being called.
|
||||
*/
|
||||
'resources': (_google_protobuf_Any__Output)[];
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* Canary is used to support two Envoy command line flags:
|
||||
*
|
||||
* * --terminate-on-canary-transition-failure. When set, Envoy is able to
|
||||
* terminate if it detects that configuration is stuck at canary. Consider
|
||||
* this example sequence of updates:
|
||||
* - Management server applies a canary config successfully.
|
||||
* - Management server rolls back to a production config.
|
||||
* - Envoy rejects the new production config.
|
||||
* Since there is no sensible way to continue receiving configuration
|
||||
* updates, Envoy will then terminate and apply production config from a
|
||||
* clean slate.
|
||||
* * --dry-run-canary. When set, a canary response will never be applied, only
|
||||
* validated via a dry run.
|
||||
*/
|
||||
'canary': (boolean);
|
||||
/**
|
||||
* Type URL for resources. Identifies the xDS API when muxing over ADS.
|
||||
* Must be consistent with the type_url in the 'resources' repeated Any (if non-empty).
|
||||
*/
|
||||
'type_url': (string);
|
||||
/**
|
||||
* For gRPC based subscriptions, the nonce provides a way to explicitly ack a
|
||||
* specific DiscoveryResponse in a following DiscoveryRequest. Additional
|
||||
* messages may have been sent by Envoy to the management server for the
|
||||
* previous version on the stream prior to this DiscoveryResponse, that were
|
||||
* unprocessed at response send time. The nonce allows the management server
|
||||
* to ignore any further DiscoveryRequests for the previous version until a
|
||||
* DiscoveryRequest bearing the nonce. The nonce is optional and is not
|
||||
* required for non-stream based xDS implementations.
|
||||
*/
|
||||
'nonce': (string);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* The control plane instance that sent the response.
|
||||
*/
|
||||
'control_plane'?: (_envoy_api_v2_core_ControlPlane__Output);
|
||||
}
|
||||
504
packages/grpc-js/src/generated/envoy/api/v2/Listener.ts
Normal file
504
packages/grpc-js/src/generated/envoy/api/v2/Listener.ts
Normal file
@ -0,0 +1,504 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener.proto
|
||||
|
||||
import { Address as _envoy_api_v2_core_Address, Address__Output as _envoy_api_v2_core_Address__Output } from '../../../envoy/api/v2/core/Address';
|
||||
import { FilterChain as _envoy_api_v2_listener_FilterChain, FilterChain__Output as _envoy_api_v2_listener_FilterChain__Output } from '../../../envoy/api/v2/listener/FilterChain';
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../google/protobuf/BoolValue';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../google/protobuf/UInt32Value';
|
||||
import { Metadata as _envoy_api_v2_core_Metadata, Metadata__Output as _envoy_api_v2_core_Metadata__Output } from '../../../envoy/api/v2/core/Metadata';
|
||||
import { ListenerFilter as _envoy_api_v2_listener_ListenerFilter, ListenerFilter__Output as _envoy_api_v2_listener_ListenerFilter__Output } from '../../../envoy/api/v2/listener/ListenerFilter';
|
||||
import { SocketOption as _envoy_api_v2_core_SocketOption, SocketOption__Output as _envoy_api_v2_core_SocketOption__Output } from '../../../envoy/api/v2/core/SocketOption';
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../google/protobuf/Duration';
|
||||
import { TrafficDirection as _envoy_api_v2_core_TrafficDirection } from '../../../envoy/api/v2/core/TrafficDirection';
|
||||
import { UdpListenerConfig as _envoy_api_v2_listener_UdpListenerConfig, UdpListenerConfig__Output as _envoy_api_v2_listener_UdpListenerConfig__Output } from '../../../envoy/api/v2/listener/UdpListenerConfig';
|
||||
import { ApiListener as _envoy_config_listener_v2_ApiListener, ApiListener__Output as _envoy_config_listener_v2_ApiListener__Output } from '../../../envoy/config/listener/v2/ApiListener';
|
||||
import { AccessLog as _envoy_config_filter_accesslog_v2_AccessLog, AccessLog__Output as _envoy_config_filter_accesslog_v2_AccessLog__Output } from '../../../envoy/config/filter/accesslog/v2/AccessLog';
|
||||
|
||||
/**
|
||||
* Configuration for listener connection balancing.
|
||||
*/
|
||||
export interface _envoy_api_v2_Listener_ConnectionBalanceConfig {
|
||||
/**
|
||||
* If specified, the listener will use the exact connection balancer.
|
||||
*/
|
||||
'exact_balance'?: (_envoy_api_v2_Listener_ConnectionBalanceConfig_ExactBalance);
|
||||
'balance_type'?: "exact_balance";
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration for listener connection balancing.
|
||||
*/
|
||||
export interface _envoy_api_v2_Listener_ConnectionBalanceConfig__Output {
|
||||
/**
|
||||
* If specified, the listener will use the exact connection balancer.
|
||||
*/
|
||||
'exact_balance'?: (_envoy_api_v2_Listener_ConnectionBalanceConfig_ExactBalance__Output);
|
||||
'balance_type': "exact_balance";
|
||||
}
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
export interface _envoy_api_v2_Listener_DeprecatedV1 {
|
||||
/**
|
||||
* Whether the listener should bind to the port. A listener that doesn't
|
||||
* bind can only receive connections redirected from other listeners that
|
||||
* set use_original_dst parameter to true. Default is true.
|
||||
*
|
||||
* This is deprecated in v2, all Listeners will bind to their port. An
|
||||
* additional filter chain must be created for every original destination
|
||||
* port this listener may redirect to in v2, with the original port
|
||||
* specified in the FilterChainMatch destination_port field.
|
||||
*
|
||||
* [#comment:TODO(PiotrSikora): Remove this once verified that we no longer need it.]
|
||||
*/
|
||||
'bind_to_port'?: (_google_protobuf_BoolValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
export interface _envoy_api_v2_Listener_DeprecatedV1__Output {
|
||||
/**
|
||||
* Whether the listener should bind to the port. A listener that doesn't
|
||||
* bind can only receive connections redirected from other listeners that
|
||||
* set use_original_dst parameter to true. Default is true.
|
||||
*
|
||||
* This is deprecated in v2, all Listeners will bind to their port. An
|
||||
* additional filter chain must be created for every original destination
|
||||
* port this listener may redirect to in v2, with the original port
|
||||
* specified in the FilterChainMatch destination_port field.
|
||||
*
|
||||
* [#comment:TODO(PiotrSikora): Remove this once verified that we no longer need it.]
|
||||
*/
|
||||
'bind_to_port'?: (_google_protobuf_BoolValue__Output);
|
||||
}
|
||||
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener.proto
|
||||
|
||||
export enum _envoy_api_v2_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,
|
||||
}
|
||||
|
||||
/**
|
||||
* A connection balancer implementation that does exact balancing. This means that a lock is
|
||||
* held during balancing so that connection counts are nearly exactly balanced between worker
|
||||
* threads. This is "nearly" exact in the sense that a connection might close in parallel thus
|
||||
* making the counts incorrect, but this should be rectified on the next accept. This balancer
|
||||
* sacrifices accept throughput for accuracy and should be used when there are a small number of
|
||||
* connections that rarely cycle (e.g., service mesh gRPC egress).
|
||||
*/
|
||||
export interface _envoy_api_v2_Listener_ConnectionBalanceConfig_ExactBalance {
|
||||
}
|
||||
|
||||
/**
|
||||
* A connection balancer implementation that does exact balancing. This means that a lock is
|
||||
* held during balancing so that connection counts are nearly exactly balanced between worker
|
||||
* threads. This is "nearly" exact in the sense that a connection might close in parallel thus
|
||||
* making the counts incorrect, but this should be rectified on the next accept. This balancer
|
||||
* sacrifices accept throughput for accuracy and should be used when there are a small number of
|
||||
* connections that rarely cycle (e.g., service mesh gRPC egress).
|
||||
*/
|
||||
export interface _envoy_api_v2_Listener_ConnectionBalanceConfig_ExactBalance__Output {
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 23]
|
||||
*/
|
||||
export interface Listener {
|
||||
/**
|
||||
* The unique name by which this listener is known. If no name is provided,
|
||||
* Envoy will allocate an internal UUID for the listener. If the listener is to be dynamically
|
||||
* updated or removed via :ref:`LDS <config_listeners_lds>` a unique name must be provided.
|
||||
*/
|
||||
'name'?: (string);
|
||||
/**
|
||||
* The address that the listener should listen on. In general, the address must be unique, though
|
||||
* that is governed by the bind rules of the OS. E.g., multiple listeners can listen on port 0 on
|
||||
* Linux as the actual port will be allocated by the OS.
|
||||
*/
|
||||
'address'?: (_envoy_api_v2_core_Address);
|
||||
/**
|
||||
* A list of filter chains to consider for this listener. The
|
||||
* :ref:`FilterChain <envoy_api_msg_listener.FilterChain>` with the most specific
|
||||
* :ref:`FilterChainMatch <envoy_api_msg_listener.FilterChainMatch>` criteria is used on a
|
||||
* connection.
|
||||
*
|
||||
* Example using SNI for filter chain selection can be found in the
|
||||
* :ref:`FAQ entry <faq_how_to_setup_sni>`.
|
||||
*/
|
||||
'filter_chains'?: (_envoy_api_v2_listener_FilterChain)[];
|
||||
/**
|
||||
* If a connection is redirected using *iptables*, the port on which the proxy
|
||||
* receives it might be different from the original destination address. When this flag is set to
|
||||
* true, the listener hands off redirected connections to the listener associated with the
|
||||
* original destination address. If there is no listener associated with the original destination
|
||||
* address, the connection is handled by the listener that receives it. Defaults to false.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* This field is deprecated. Use :ref:`an original_dst <config_listener_filters_original_dst>`
|
||||
* :ref:`listener filter <envoy_api_field_Listener.listener_filters>` instead.
|
||||
*
|
||||
* Note that hand off to another listener is *NOT* performed without this flag. Once
|
||||
* :ref:`FilterChainMatch <envoy_api_msg_listener.FilterChainMatch>` is implemented this flag
|
||||
* will be removed, as filter chain matching can be used to select a filter chain based on the
|
||||
* restored destination address.
|
||||
*/
|
||||
'use_original_dst'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Soft limit on size of the listener’s new connection read and write buffers.
|
||||
* If unspecified, an implementation defined default is applied (1MiB).
|
||||
*/
|
||||
'per_connection_buffer_limit_bytes'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Listener metadata.
|
||||
*/
|
||||
'metadata'?: (_envoy_api_v2_core_Metadata);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'deprecated_v1'?: (_envoy_api_v2_Listener_DeprecatedV1);
|
||||
/**
|
||||
* The type of draining to perform at a listener-wide level.
|
||||
*/
|
||||
'drain_type'?: (_envoy_api_v2_Listener_DrainType | keyof typeof _envoy_api_v2_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
|
||||
* :ref:`filter_chains <envoy_api_field_Listener.filter_chains>`. Order matters as the
|
||||
* filters are processed sequentially right after a socket has been accepted by the listener, and
|
||||
* before a connection is created.
|
||||
* UDP Listener filters can be specified when the protocol in the listener socket address in
|
||||
* :ref:`protocol <envoy_api_field_core.SocketAddress.protocol>` is :ref:`UDP
|
||||
* <envoy_api_enum_value_core.SocketAddress.Protocol.UDP>`.
|
||||
* UDP listeners currently support a single filter.
|
||||
*/
|
||||
'listener_filters'?: (_envoy_api_v2_listener_ListenerFilter)[];
|
||||
/**
|
||||
* Whether the listener should be set as a transparent socket.
|
||||
* When this flag is set to true, connections can be redirected to the listener using an
|
||||
* *iptables* *TPROXY* target, in which case the original source and destination addresses and
|
||||
* ports are preserved on accepted connections. This flag should be used in combination with
|
||||
* :ref:`an original_dst <config_listener_filters_original_dst>` :ref:`listener filter
|
||||
* <envoy_api_field_Listener.listener_filters>` to mark the connections' local addresses as
|
||||
* "restored." This can be used to hand off each redirected connection to another listener
|
||||
* associated with the connection's destination address. Direct connections to the socket without
|
||||
* using *TPROXY* cannot be distinguished from connections redirected using *TPROXY* and are
|
||||
* therefore treated as if they were redirected.
|
||||
* When this flag is set to false, the listener's socket is explicitly reset as non-transparent.
|
||||
* Setting this flag requires Envoy to run with the *CAP_NET_ADMIN* capability.
|
||||
* When this flag is not set (default), the socket is not modified, i.e. the transparent option
|
||||
* is neither set nor reset.
|
||||
*/
|
||||
'transparent'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Whether the listener should set the *IP_FREEBIND* socket option. When this
|
||||
* flag is set to true, listeners can be bound to an IP address that is not
|
||||
* configured on the system running Envoy. When this flag is set to false, the
|
||||
* option *IP_FREEBIND* is disabled on the socket. When this flag is not set
|
||||
* (default), the socket is not modified, i.e. the option is neither enabled
|
||||
* nor disabled.
|
||||
*/
|
||||
'freebind'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Whether the listener should accept TCP Fast Open (TFO) connections.
|
||||
* When this flag is set to a value greater than 0, the option TCP_FASTOPEN is enabled on
|
||||
* the socket, with a queue length of the specified size
|
||||
* (see `details in RFC7413 <https://tools.ietf.org/html/rfc7413#section-5.1>`_).
|
||||
* When this flag is set to 0, the option TCP_FASTOPEN is disabled on the socket.
|
||||
* When this flag is not set (default), the socket is not modified,
|
||||
* i.e. the option is neither enabled nor disabled.
|
||||
*
|
||||
* On Linux, the net.ipv4.tcp_fastopen kernel parameter must include flag 0x2 to enable
|
||||
* TCP_FASTOPEN.
|
||||
* See `ip-sysctl.txt <https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt>`_.
|
||||
*
|
||||
* On macOS, only values of 0, 1, and unset are valid; other values may result in an error.
|
||||
* To set the queue length on macOS, set the net.inet.tcp.fastopen_backlog kernel parameter.
|
||||
*/
|
||||
'tcp_fast_open_queue_length'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Additional socket options that may not be present in Envoy source code or
|
||||
* precompiled binaries.
|
||||
*/
|
||||
'socket_options'?: (_envoy_api_v2_core_SocketOption)[];
|
||||
/**
|
||||
* The timeout to wait for all listener filters to complete operation. If the timeout is reached,
|
||||
* the accepted socket is closed without a connection being created unless
|
||||
* `continue_on_listener_filters_timeout` is set to true. Specify 0 to disable the
|
||||
* timeout. If not specified, a default timeout of 15s is used.
|
||||
*/
|
||||
'listener_filters_timeout'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Specifies the intended direction of the traffic relative to the local Envoy.
|
||||
*/
|
||||
'traffic_direction'?: (_envoy_api_v2_core_TrafficDirection | keyof typeof _envoy_api_v2_core_TrafficDirection);
|
||||
/**
|
||||
* Whether a connection should be created when listener filters timeout. Default is false.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Some listener filters, such as :ref:`Proxy Protocol filter
|
||||
* <config_listener_filters_proxy_protocol>`, should not be used with this option. It will cause
|
||||
* unexpected behavior when a connection is created.
|
||||
*/
|
||||
'continue_on_listener_filters_timeout'?: (boolean);
|
||||
/**
|
||||
* If the protocol in the listener socket address in :ref:`protocol
|
||||
* <envoy_api_field_core.SocketAddress.protocol>` is :ref:`UDP
|
||||
* <envoy_api_enum_value_core.SocketAddress.Protocol.UDP>`, this field specifies the actual udp
|
||||
* listener to create, i.e. :ref:`udp_listener_name
|
||||
* <envoy_api_field_listener.UdpListenerConfig.udp_listener_name>` = "raw_udp_listener" for
|
||||
* creating a packet-oriented UDP listener. If not present, treat it as "raw_udp_listener".
|
||||
*/
|
||||
'udp_listener_config'?: (_envoy_api_v2_listener_UdpListenerConfig);
|
||||
/**
|
||||
* Used to represent an API listener, which is used in non-proxy clients. The type of API
|
||||
* exposed to the non-proxy application depends on the type of API listener.
|
||||
* When this field is set, no other field except for :ref:`name<envoy_api_field_Listener.name>`
|
||||
* should be set.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* Currently only one ApiListener can be installed; and it can only be done via bootstrap config,
|
||||
* not LDS.
|
||||
*
|
||||
* [#next-major-version: In the v3 API, instead of this messy approach where the socket
|
||||
* listener fields are directly in the top-level Listener message and the API listener types
|
||||
* are in the ApiListener message, the socket listener messages should be in their own message,
|
||||
* and the top-level Listener should essentially be a oneof that selects between the
|
||||
* socket listener and the various types of API listener. That way, a given Listener message
|
||||
* can structurally only contain the fields of the relevant type.]
|
||||
*/
|
||||
'api_listener'?: (_envoy_config_listener_v2_ApiListener);
|
||||
/**
|
||||
* The listener's connection balancer configuration, currently only applicable to TCP listeners.
|
||||
* If no configuration is specified, Envoy will not attempt to balance active connections between
|
||||
* worker threads.
|
||||
*/
|
||||
'connection_balance_config'?: (_envoy_api_v2_Listener_ConnectionBalanceConfig);
|
||||
/**
|
||||
* When this flag is set to true, listeners set the *SO_REUSEPORT* socket option and
|
||||
* create one socket for each worker thread. This makes inbound connections
|
||||
* distribute among worker threads roughly evenly in cases where there are a high number
|
||||
* of connections. When this flag is set to false, all worker threads share one socket.
|
||||
*
|
||||
* Before Linux v4.19-rc1, new TCP connections may be rejected during hot restart
|
||||
* (see `3rd paragraph in 'soreuseport' commit message
|
||||
* <https://github.com/torvalds/linux/commit/c617f398edd4db2b8567a28e89>`_).
|
||||
* This issue was fixed by `tcp: Avoid TCP syncookie rejected by SO_REUSEPORT socket
|
||||
* <https://github.com/torvalds/linux/commit/40a1227ea845a37ab197dd1caffb60b047fa36b1>`_.
|
||||
*/
|
||||
'reuse_port'?: (boolean);
|
||||
/**
|
||||
* Configuration for :ref:`access logs <arch_overview_access_logs>`
|
||||
* emitted by this listener.
|
||||
*/
|
||||
'access_log'?: (_envoy_config_filter_accesslog_v2_AccessLog)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 23]
|
||||
*/
|
||||
export interface Listener__Output {
|
||||
/**
|
||||
* The unique name by which this listener is known. If no name is provided,
|
||||
* Envoy will allocate an internal UUID for the listener. If the listener is to be dynamically
|
||||
* updated or removed via :ref:`LDS <config_listeners_lds>` a unique name must be provided.
|
||||
*/
|
||||
'name': (string);
|
||||
/**
|
||||
* The address that the listener should listen on. In general, the address must be unique, though
|
||||
* that is governed by the bind rules of the OS. E.g., multiple listeners can listen on port 0 on
|
||||
* Linux as the actual port will be allocated by the OS.
|
||||
*/
|
||||
'address'?: (_envoy_api_v2_core_Address__Output);
|
||||
/**
|
||||
* A list of filter chains to consider for this listener. The
|
||||
* :ref:`FilterChain <envoy_api_msg_listener.FilterChain>` with the most specific
|
||||
* :ref:`FilterChainMatch <envoy_api_msg_listener.FilterChainMatch>` criteria is used on a
|
||||
* connection.
|
||||
*
|
||||
* Example using SNI for filter chain selection can be found in the
|
||||
* :ref:`FAQ entry <faq_how_to_setup_sni>`.
|
||||
*/
|
||||
'filter_chains': (_envoy_api_v2_listener_FilterChain__Output)[];
|
||||
/**
|
||||
* If a connection is redirected using *iptables*, the port on which the proxy
|
||||
* receives it might be different from the original destination address. When this flag is set to
|
||||
* true, the listener hands off redirected connections to the listener associated with the
|
||||
* original destination address. If there is no listener associated with the original destination
|
||||
* address, the connection is handled by the listener that receives it. Defaults to false.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* This field is deprecated. Use :ref:`an original_dst <config_listener_filters_original_dst>`
|
||||
* :ref:`listener filter <envoy_api_field_Listener.listener_filters>` instead.
|
||||
*
|
||||
* Note that hand off to another listener is *NOT* performed without this flag. Once
|
||||
* :ref:`FilterChainMatch <envoy_api_msg_listener.FilterChainMatch>` is implemented this flag
|
||||
* will be removed, as filter chain matching can be used to select a filter chain based on the
|
||||
* restored destination address.
|
||||
*/
|
||||
'use_original_dst'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Soft limit on size of the listener’s new connection read and write buffers.
|
||||
* If unspecified, an implementation defined default is applied (1MiB).
|
||||
*/
|
||||
'per_connection_buffer_limit_bytes'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Listener metadata.
|
||||
*/
|
||||
'metadata'?: (_envoy_api_v2_core_Metadata__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'deprecated_v1'?: (_envoy_api_v2_Listener_DeprecatedV1__Output);
|
||||
/**
|
||||
* The type of draining to perform at a listener-wide level.
|
||||
*/
|
||||
'drain_type': (keyof typeof _envoy_api_v2_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
|
||||
* :ref:`filter_chains <envoy_api_field_Listener.filter_chains>`. Order matters as the
|
||||
* filters are processed sequentially right after a socket has been accepted by the listener, and
|
||||
* before a connection is created.
|
||||
* UDP Listener filters can be specified when the protocol in the listener socket address in
|
||||
* :ref:`protocol <envoy_api_field_core.SocketAddress.protocol>` is :ref:`UDP
|
||||
* <envoy_api_enum_value_core.SocketAddress.Protocol.UDP>`.
|
||||
* UDP listeners currently support a single filter.
|
||||
*/
|
||||
'listener_filters': (_envoy_api_v2_listener_ListenerFilter__Output)[];
|
||||
/**
|
||||
* Whether the listener should be set as a transparent socket.
|
||||
* When this flag is set to true, connections can be redirected to the listener using an
|
||||
* *iptables* *TPROXY* target, in which case the original source and destination addresses and
|
||||
* ports are preserved on accepted connections. This flag should be used in combination with
|
||||
* :ref:`an original_dst <config_listener_filters_original_dst>` :ref:`listener filter
|
||||
* <envoy_api_field_Listener.listener_filters>` to mark the connections' local addresses as
|
||||
* "restored." This can be used to hand off each redirected connection to another listener
|
||||
* associated with the connection's destination address. Direct connections to the socket without
|
||||
* using *TPROXY* cannot be distinguished from connections redirected using *TPROXY* and are
|
||||
* therefore treated as if they were redirected.
|
||||
* When this flag is set to false, the listener's socket is explicitly reset as non-transparent.
|
||||
* Setting this flag requires Envoy to run with the *CAP_NET_ADMIN* capability.
|
||||
* When this flag is not set (default), the socket is not modified, i.e. the transparent option
|
||||
* is neither set nor reset.
|
||||
*/
|
||||
'transparent'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Whether the listener should set the *IP_FREEBIND* socket option. When this
|
||||
* flag is set to true, listeners can be bound to an IP address that is not
|
||||
* configured on the system running Envoy. When this flag is set to false, the
|
||||
* option *IP_FREEBIND* is disabled on the socket. When this flag is not set
|
||||
* (default), the socket is not modified, i.e. the option is neither enabled
|
||||
* nor disabled.
|
||||
*/
|
||||
'freebind'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Whether the listener should accept TCP Fast Open (TFO) connections.
|
||||
* When this flag is set to a value greater than 0, the option TCP_FASTOPEN is enabled on
|
||||
* the socket, with a queue length of the specified size
|
||||
* (see `details in RFC7413 <https://tools.ietf.org/html/rfc7413#section-5.1>`_).
|
||||
* When this flag is set to 0, the option TCP_FASTOPEN is disabled on the socket.
|
||||
* When this flag is not set (default), the socket is not modified,
|
||||
* i.e. the option is neither enabled nor disabled.
|
||||
*
|
||||
* On Linux, the net.ipv4.tcp_fastopen kernel parameter must include flag 0x2 to enable
|
||||
* TCP_FASTOPEN.
|
||||
* See `ip-sysctl.txt <https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt>`_.
|
||||
*
|
||||
* On macOS, only values of 0, 1, and unset are valid; other values may result in an error.
|
||||
* To set the queue length on macOS, set the net.inet.tcp.fastopen_backlog kernel parameter.
|
||||
*/
|
||||
'tcp_fast_open_queue_length'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Additional socket options that may not be present in Envoy source code or
|
||||
* precompiled binaries.
|
||||
*/
|
||||
'socket_options': (_envoy_api_v2_core_SocketOption__Output)[];
|
||||
/**
|
||||
* The timeout to wait for all listener filters to complete operation. If the timeout is reached,
|
||||
* the accepted socket is closed without a connection being created unless
|
||||
* `continue_on_listener_filters_timeout` is set to true. Specify 0 to disable the
|
||||
* timeout. If not specified, a default timeout of 15s is used.
|
||||
*/
|
||||
'listener_filters_timeout'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Specifies the intended direction of the traffic relative to the local Envoy.
|
||||
*/
|
||||
'traffic_direction': (keyof typeof _envoy_api_v2_core_TrafficDirection);
|
||||
/**
|
||||
* Whether a connection should be created when listener filters timeout. Default is false.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Some listener filters, such as :ref:`Proxy Protocol filter
|
||||
* <config_listener_filters_proxy_protocol>`, should not be used with this option. It will cause
|
||||
* unexpected behavior when a connection is created.
|
||||
*/
|
||||
'continue_on_listener_filters_timeout': (boolean);
|
||||
/**
|
||||
* If the protocol in the listener socket address in :ref:`protocol
|
||||
* <envoy_api_field_core.SocketAddress.protocol>` is :ref:`UDP
|
||||
* <envoy_api_enum_value_core.SocketAddress.Protocol.UDP>`, this field specifies the actual udp
|
||||
* listener to create, i.e. :ref:`udp_listener_name
|
||||
* <envoy_api_field_listener.UdpListenerConfig.udp_listener_name>` = "raw_udp_listener" for
|
||||
* creating a packet-oriented UDP listener. If not present, treat it as "raw_udp_listener".
|
||||
*/
|
||||
'udp_listener_config'?: (_envoy_api_v2_listener_UdpListenerConfig__Output);
|
||||
/**
|
||||
* Used to represent an API listener, which is used in non-proxy clients. The type of API
|
||||
* exposed to the non-proxy application depends on the type of API listener.
|
||||
* When this field is set, no other field except for :ref:`name<envoy_api_field_Listener.name>`
|
||||
* should be set.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* Currently only one ApiListener can be installed; and it can only be done via bootstrap config,
|
||||
* not LDS.
|
||||
*
|
||||
* [#next-major-version: In the v3 API, instead of this messy approach where the socket
|
||||
* listener fields are directly in the top-level Listener message and the API listener types
|
||||
* are in the ApiListener message, the socket listener messages should be in their own message,
|
||||
* and the top-level Listener should essentially be a oneof that selects between the
|
||||
* socket listener and the various types of API listener. That way, a given Listener message
|
||||
* can structurally only contain the fields of the relevant type.]
|
||||
*/
|
||||
'api_listener'?: (_envoy_config_listener_v2_ApiListener__Output);
|
||||
/**
|
||||
* The listener's connection balancer configuration, currently only applicable to TCP listeners.
|
||||
* If no configuration is specified, Envoy will not attempt to balance active connections between
|
||||
* worker threads.
|
||||
*/
|
||||
'connection_balance_config'?: (_envoy_api_v2_Listener_ConnectionBalanceConfig__Output);
|
||||
/**
|
||||
* When this flag is set to true, listeners set the *SO_REUSEPORT* socket option and
|
||||
* create one socket for each worker thread. This makes inbound connections
|
||||
* distribute among worker threads roughly evenly in cases where there are a high number
|
||||
* of connections. When this flag is set to false, all worker threads share one socket.
|
||||
*
|
||||
* Before Linux v4.19-rc1, new TCP connections may be rejected during hot restart
|
||||
* (see `3rd paragraph in 'soreuseport' commit message
|
||||
* <https://github.com/torvalds/linux/commit/c617f398edd4db2b8567a28e89>`_).
|
||||
* This issue was fixed by `tcp: Avoid TCP syncookie rejected by SO_REUSEPORT socket
|
||||
* <https://github.com/torvalds/linux/commit/40a1227ea845a37ab197dd1caffb60b047fa36b1>`_.
|
||||
*/
|
||||
'reuse_port': (boolean);
|
||||
/**
|
||||
* Configuration for :ref:`access logs <arch_overview_access_logs>`
|
||||
* emitted by this listener.
|
||||
*/
|
||||
'access_log': (_envoy_config_filter_accesslog_v2_AccessLog__Output)[];
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/cluster.proto
|
||||
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../google/protobuf/Struct';
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
|
||||
|
||||
export interface _envoy_api_v2_LoadBalancingPolicy_Policy {
|
||||
/**
|
||||
* Required. The name of the LB policy.
|
||||
*/
|
||||
'name'?: (string);
|
||||
/**
|
||||
* Optional config for the LB policy.
|
||||
* No more than one of these two fields may be populated.
|
||||
*/
|
||||
'config'?: (_google_protobuf_Struct);
|
||||
'typed_config'?: (_google_protobuf_Any);
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_LoadBalancingPolicy_Policy__Output {
|
||||
/**
|
||||
* Required. The name of the LB policy.
|
||||
*/
|
||||
'name': (string);
|
||||
/**
|
||||
* Optional config for the LB policy.
|
||||
* No more than one of these two fields may be populated.
|
||||
*/
|
||||
'config'?: (_google_protobuf_Struct__Output);
|
||||
'typed_config'?: (_google_protobuf_Any__Output);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:] Extensible load balancing policy configuration.
|
||||
*
|
||||
* Every LB policy defined via this mechanism will be identified via a unique name using reverse
|
||||
* DNS notation. If the policy needs configuration parameters, it must define a message for its
|
||||
* own configuration, which will be stored in the config field. The name of the policy will tell
|
||||
* clients which type of message they should expect to see in the config field.
|
||||
*
|
||||
* Note that there are cases where it is useful to be able to independently select LB policies
|
||||
* for choosing a locality and for choosing an endpoint within that locality. For example, a
|
||||
* given deployment may always use the same policy to choose the locality, but for choosing the
|
||||
* endpoint within the locality, some clusters may use weighted-round-robin, while others may
|
||||
* use some sort of session-based balancing.
|
||||
*
|
||||
* This can be accomplished via hierarchical LB policies, where the parent LB policy creates a
|
||||
* child LB policy for each locality. For each request, the parent chooses the locality and then
|
||||
* delegates to the child policy for that locality to choose the endpoint within the locality.
|
||||
*
|
||||
* To facilitate this, the config message for the top-level LB policy may include a field of
|
||||
* type LoadBalancingPolicy that specifies the child policy.
|
||||
*/
|
||||
export interface LoadBalancingPolicy {
|
||||
/**
|
||||
* Each client will iterate over the list in order and stop at the first policy that it
|
||||
* supports. This provides a mechanism for starting to use new LB policies that are not yet
|
||||
* supported by all clients.
|
||||
*/
|
||||
'policies'?: (_envoy_api_v2_LoadBalancingPolicy_Policy)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:] Extensible load balancing policy configuration.
|
||||
*
|
||||
* Every LB policy defined via this mechanism will be identified via a unique name using reverse
|
||||
* DNS notation. If the policy needs configuration parameters, it must define a message for its
|
||||
* own configuration, which will be stored in the config field. The name of the policy will tell
|
||||
* clients which type of message they should expect to see in the config field.
|
||||
*
|
||||
* Note that there are cases where it is useful to be able to independently select LB policies
|
||||
* for choosing a locality and for choosing an endpoint within that locality. For example, a
|
||||
* given deployment may always use the same policy to choose the locality, but for choosing the
|
||||
* endpoint within the locality, some clusters may use weighted-round-robin, while others may
|
||||
* use some sort of session-based balancing.
|
||||
*
|
||||
* This can be accomplished via hierarchical LB policies, where the parent LB policy creates a
|
||||
* child LB policy for each locality. For each request, the parent chooses the locality and then
|
||||
* delegates to the child policy for that locality to choose the endpoint within the locality.
|
||||
*
|
||||
* To facilitate this, the config message for the top-level LB policy may include a field of
|
||||
* type LoadBalancingPolicy that specifies the child policy.
|
||||
*/
|
||||
export interface LoadBalancingPolicy__Output {
|
||||
/**
|
||||
* Each client will iterate over the list in order and stop at the first policy that it
|
||||
* supports. This provides a mechanism for starting to use new LB policies that are not yet
|
||||
* supported by all clients.
|
||||
*/
|
||||
'policies': (_envoy_api_v2_LoadBalancingPolicy_Policy__Output)[];
|
||||
}
|
||||
43
packages/grpc-js/src/generated/envoy/api/v2/Resource.ts
Normal file
43
packages/grpc-js/src/generated/envoy/api/v2/Resource.ts
Normal file
@ -0,0 +1,43 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/discovery.proto
|
||||
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../google/protobuf/Any';
|
||||
|
||||
export interface Resource {
|
||||
/**
|
||||
* The resource level version. It allows xDS to track the state of individual
|
||||
* resources.
|
||||
*/
|
||||
'version'?: (string);
|
||||
/**
|
||||
* The resource being tracked.
|
||||
*/
|
||||
'resource'?: (_google_protobuf_Any);
|
||||
/**
|
||||
* The resource's name, to distinguish it from others of the same type of resource.
|
||||
*/
|
||||
'name'?: (string);
|
||||
/**
|
||||
* The aliases are a list of other names that this resource can go by.
|
||||
*/
|
||||
'aliases'?: (string)[];
|
||||
}
|
||||
|
||||
export interface Resource__Output {
|
||||
/**
|
||||
* The resource level version. It allows xDS to track the state of individual
|
||||
* resources.
|
||||
*/
|
||||
'version': (string);
|
||||
/**
|
||||
* The resource being tracked.
|
||||
*/
|
||||
'resource'?: (_google_protobuf_Any__Output);
|
||||
/**
|
||||
* The resource's name, to distinguish it from others of the same type of resource.
|
||||
*/
|
||||
'name': (string);
|
||||
/**
|
||||
* The aliases are a list of other names that this resource can go by.
|
||||
*/
|
||||
'aliases': (string)[];
|
||||
}
|
||||
@ -0,0 +1,186 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route.proto
|
||||
|
||||
import { VirtualHost as _envoy_api_v2_route_VirtualHost, VirtualHost__Output as _envoy_api_v2_route_VirtualHost__Output } from '../../../envoy/api/v2/route/VirtualHost';
|
||||
import { HeaderValueOption as _envoy_api_v2_core_HeaderValueOption, HeaderValueOption__Output as _envoy_api_v2_core_HeaderValueOption__Output } from '../../../envoy/api/v2/core/HeaderValueOption';
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../google/protobuf/BoolValue';
|
||||
import { Vhds as _envoy_api_v2_Vhds, Vhds__Output as _envoy_api_v2_Vhds__Output } from '../../../envoy/api/v2/Vhds';
|
||||
|
||||
/**
|
||||
* [#next-free-field: 11]
|
||||
*/
|
||||
export interface RouteConfiguration {
|
||||
/**
|
||||
* The name of the route configuration. For example, it might match
|
||||
* :ref:`route_config_name
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.Rds.route_config_name>` in
|
||||
* :ref:`envoy_api_msg_config.filter.network.http_connection_manager.v2.Rds`.
|
||||
*/
|
||||
'name'?: (string);
|
||||
/**
|
||||
* An array of virtual hosts that make up the route table.
|
||||
*/
|
||||
'virtual_hosts'?: (_envoy_api_v2_route_VirtualHost)[];
|
||||
/**
|
||||
* Optionally specifies a list of HTTP headers that the connection manager
|
||||
* will consider to be internal only. If they are found on external requests they will be cleaned
|
||||
* prior to filter invocation. See :ref:`config_http_conn_man_headers_x-envoy-internal` for more
|
||||
* information.
|
||||
*/
|
||||
'internal_only_headers'?: (string)[];
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be added to each response that
|
||||
* the connection manager encodes. Headers specified at this level are applied
|
||||
* after headers from any enclosed :ref:`envoy_api_msg_route.VirtualHost` or
|
||||
* :ref:`envoy_api_msg_route.RouteAction`. For more information, including details on
|
||||
* header value syntax, see the documentation on :ref:`custom request headers
|
||||
* <config_http_conn_man_headers_custom_request_headers>`.
|
||||
*/
|
||||
'response_headers_to_add'?: (_envoy_api_v2_core_HeaderValueOption)[];
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be removed from each response
|
||||
* that the connection manager encodes.
|
||||
*/
|
||||
'response_headers_to_remove'?: (string)[];
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be added to each request
|
||||
* routed by the HTTP connection manager. Headers specified at this level are
|
||||
* applied after headers from any enclosed :ref:`envoy_api_msg_route.VirtualHost` or
|
||||
* :ref:`envoy_api_msg_route.RouteAction`. For more information, including details on
|
||||
* header value syntax, see the documentation on :ref:`custom request headers
|
||||
* <config_http_conn_man_headers_custom_request_headers>`.
|
||||
*/
|
||||
'request_headers_to_add'?: (_envoy_api_v2_core_HeaderValueOption)[];
|
||||
/**
|
||||
* An optional boolean that specifies whether the clusters that the route
|
||||
* table refers to will be validated by the cluster manager. If set to true
|
||||
* and a route refers to a non-existent cluster, the route table will not
|
||||
* load. If set to false and a route refers to a non-existent cluster, the
|
||||
* route table will load and the router filter will return a 404 if the route
|
||||
* is selected at runtime. This setting defaults to true if the route table
|
||||
* is statically defined via the :ref:`route_config
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.route_config>`
|
||||
* option. This setting default to false if the route table is loaded dynamically via the
|
||||
* :ref:`rds
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.rds>`
|
||||
* option. Users may wish to override the default behavior in certain cases (for example when
|
||||
* using CDS with a static route table).
|
||||
*/
|
||||
'validate_clusters'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be removed from each request
|
||||
* routed by the HTTP connection manager.
|
||||
*/
|
||||
'request_headers_to_remove'?: (string)[];
|
||||
/**
|
||||
* An array of virtual hosts will be dynamically loaded via the VHDS API.
|
||||
* Both *virtual_hosts* and *vhds* fields will be used when present. *virtual_hosts* can be used
|
||||
* for a base routing table or for infrequently changing virtual hosts. *vhds* is used for
|
||||
* on-demand discovery of virtual hosts. The contents of these two fields will be merged to
|
||||
* generate a routing table for a given RouteConfiguration, with *vhds* derived configuration
|
||||
* taking precedence.
|
||||
*/
|
||||
'vhds'?: (_envoy_api_v2_Vhds);
|
||||
/**
|
||||
* By default, headers that should be added/removed are evaluated from most to least specific:
|
||||
*
|
||||
* * route level
|
||||
* * virtual host level
|
||||
* * connection manager level
|
||||
*
|
||||
* To allow setting overrides at the route or virtual host level, this order can be reversed
|
||||
* by setting this option to true. Defaults to false.
|
||||
*
|
||||
* [#next-major-version: In the v3 API, this will default to true.]
|
||||
*/
|
||||
'most_specific_header_mutations_wins'?: (boolean);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 11]
|
||||
*/
|
||||
export interface RouteConfiguration__Output {
|
||||
/**
|
||||
* The name of the route configuration. For example, it might match
|
||||
* :ref:`route_config_name
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.Rds.route_config_name>` in
|
||||
* :ref:`envoy_api_msg_config.filter.network.http_connection_manager.v2.Rds`.
|
||||
*/
|
||||
'name': (string);
|
||||
/**
|
||||
* An array of virtual hosts that make up the route table.
|
||||
*/
|
||||
'virtual_hosts': (_envoy_api_v2_route_VirtualHost__Output)[];
|
||||
/**
|
||||
* Optionally specifies a list of HTTP headers that the connection manager
|
||||
* will consider to be internal only. If they are found on external requests they will be cleaned
|
||||
* prior to filter invocation. See :ref:`config_http_conn_man_headers_x-envoy-internal` for more
|
||||
* information.
|
||||
*/
|
||||
'internal_only_headers': (string)[];
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be added to each response that
|
||||
* the connection manager encodes. Headers specified at this level are applied
|
||||
* after headers from any enclosed :ref:`envoy_api_msg_route.VirtualHost` or
|
||||
* :ref:`envoy_api_msg_route.RouteAction`. For more information, including details on
|
||||
* header value syntax, see the documentation on :ref:`custom request headers
|
||||
* <config_http_conn_man_headers_custom_request_headers>`.
|
||||
*/
|
||||
'response_headers_to_add': (_envoy_api_v2_core_HeaderValueOption__Output)[];
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be removed from each response
|
||||
* that the connection manager encodes.
|
||||
*/
|
||||
'response_headers_to_remove': (string)[];
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be added to each request
|
||||
* routed by the HTTP connection manager. Headers specified at this level are
|
||||
* applied after headers from any enclosed :ref:`envoy_api_msg_route.VirtualHost` or
|
||||
* :ref:`envoy_api_msg_route.RouteAction`. For more information, including details on
|
||||
* header value syntax, see the documentation on :ref:`custom request headers
|
||||
* <config_http_conn_man_headers_custom_request_headers>`.
|
||||
*/
|
||||
'request_headers_to_add': (_envoy_api_v2_core_HeaderValueOption__Output)[];
|
||||
/**
|
||||
* An optional boolean that specifies whether the clusters that the route
|
||||
* table refers to will be validated by the cluster manager. If set to true
|
||||
* and a route refers to a non-existent cluster, the route table will not
|
||||
* load. If set to false and a route refers to a non-existent cluster, the
|
||||
* route table will load and the router filter will return a 404 if the route
|
||||
* is selected at runtime. This setting defaults to true if the route table
|
||||
* is statically defined via the :ref:`route_config
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.route_config>`
|
||||
* option. This setting default to false if the route table is loaded dynamically via the
|
||||
* :ref:`rds
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.rds>`
|
||||
* option. Users may wish to override the default behavior in certain cases (for example when
|
||||
* using CDS with a static route table).
|
||||
*/
|
||||
'validate_clusters'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be removed from each request
|
||||
* routed by the HTTP connection manager.
|
||||
*/
|
||||
'request_headers_to_remove': (string)[];
|
||||
/**
|
||||
* An array of virtual hosts will be dynamically loaded via the VHDS API.
|
||||
* Both *virtual_hosts* and *vhds* fields will be used when present. *virtual_hosts* can be used
|
||||
* for a base routing table or for infrequently changing virtual hosts. *vhds* is used for
|
||||
* on-demand discovery of virtual hosts. The contents of these two fields will be merged to
|
||||
* generate a routing table for a given RouteConfiguration, with *vhds* derived configuration
|
||||
* taking precedence.
|
||||
*/
|
||||
'vhds'?: (_envoy_api_v2_Vhds__Output);
|
||||
/**
|
||||
* By default, headers that should be added/removed are evaluated from most to least specific:
|
||||
*
|
||||
* * route level
|
||||
* * virtual host level
|
||||
* * connection manager level
|
||||
*
|
||||
* To allow setting overrides at the route or virtual host level, this order can be reversed
|
||||
* by setting this option to true. Defaults to false.
|
||||
*
|
||||
* [#next-major-version: In the v3 API, this will default to true.]
|
||||
*/
|
||||
'most_specific_header_mutations_wins': (boolean);
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/cluster.proto
|
||||
|
||||
import { Address as _envoy_api_v2_core_Address, Address__Output as _envoy_api_v2_core_Address__Output } from '../../../envoy/api/v2/core/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_api_v2_core_Address);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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_api_v2_core_Address__Output);
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/cluster.proto
|
||||
|
||||
import { TcpKeepalive as _envoy_api_v2_core_TcpKeepalive, TcpKeepalive__Output as _envoy_api_v2_core_TcpKeepalive__Output } from '../../../envoy/api/v2/core/TcpKeepalive';
|
||||
|
||||
export interface UpstreamConnectionOptions {
|
||||
/**
|
||||
* If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.
|
||||
*/
|
||||
'tcp_keepalive'?: (_envoy_api_v2_core_TcpKeepalive);
|
||||
}
|
||||
|
||||
export interface UpstreamConnectionOptions__Output {
|
||||
/**
|
||||
* If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.
|
||||
*/
|
||||
'tcp_keepalive'?: (_envoy_api_v2_core_TcpKeepalive__Output);
|
||||
}
|
||||
17
packages/grpc-js/src/generated/envoy/api/v2/Vhds.ts
Normal file
17
packages/grpc-js/src/generated/envoy/api/v2/Vhds.ts
Normal file
@ -0,0 +1,17 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route.proto
|
||||
|
||||
import { ConfigSource as _envoy_api_v2_core_ConfigSource, ConfigSource__Output as _envoy_api_v2_core_ConfigSource__Output } from '../../../envoy/api/v2/core/ConfigSource';
|
||||
|
||||
export interface Vhds {
|
||||
/**
|
||||
* Configuration source specifier for VHDS.
|
||||
*/
|
||||
'config_source'?: (_envoy_api_v2_core_ConfigSource);
|
||||
}
|
||||
|
||||
export interface Vhds__Output {
|
||||
/**
|
||||
* Configuration source specifier for VHDS.
|
||||
*/
|
||||
'config_source'?: (_envoy_api_v2_core_ConfigSource__Output);
|
||||
}
|
||||
@ -0,0 +1,315 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
|
||||
|
||||
import { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
import { StringMatcher as _envoy_type_matcher_StringMatcher, StringMatcher__Output as _envoy_type_matcher_StringMatcher__Output } from '../../../../envoy/type/matcher/StringMatcher';
|
||||
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
|
||||
|
||||
/**
|
||||
* Peer certificate verification mode.
|
||||
*/
|
||||
export enum _envoy_api_v2_auth_CertificateValidationContext_TrustChainVerification {
|
||||
/**
|
||||
* Perform default certificate verification (e.g., against CA / verification lists)
|
||||
*/
|
||||
VERIFY_TRUST_CHAIN = 0,
|
||||
/**
|
||||
* Connections where the certificate fails verification will be permitted.
|
||||
* For HTTP connections, the result of certificate verification can be used in route matching. (
|
||||
* see :ref:`validated <envoy_api_field_route.RouteMatch.TlsContextMatchOptions.validated>` ).
|
||||
*/
|
||||
ACCEPT_UNTRUSTED = 1,
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 11]
|
||||
*/
|
||||
export interface CertificateValidationContext {
|
||||
/**
|
||||
* TLS certificate data containing certificate authority certificates to use in verifying
|
||||
* a presented peer certificate (e.g. server certificate for clusters or client certificate
|
||||
* for listeners). If not specified and a peer certificate is presented it will not be
|
||||
* verified. By default, a client certificate is optional, unless one of the additional
|
||||
* options (:ref:`require_client_certificate
|
||||
* <envoy_api_field_auth.DownstreamTlsContext.require_client_certificate>`,
|
||||
* :ref:`verify_certificate_spki
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>`,
|
||||
* :ref:`verify_certificate_hash
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>`, or
|
||||
* :ref:`match_subject_alt_names
|
||||
* <envoy_api_field_auth.CertificateValidationContext.match_subject_alt_names>`) is also
|
||||
* specified.
|
||||
*
|
||||
* It can optionally contain certificate revocation lists, in which case Envoy will verify
|
||||
* that the presented peer certificate has not been revoked by one of the included CRLs.
|
||||
*
|
||||
* See :ref:`the TLS overview <arch_overview_ssl_enabling_verification>` for a list of common
|
||||
* system CA locations.
|
||||
*/
|
||||
'trusted_ca'?: (_envoy_api_v2_core_DataSource);
|
||||
/**
|
||||
* An optional list of hex-encoded SHA-256 hashes. If specified, Envoy will verify that
|
||||
* the SHA-256 of the DER-encoded presented certificate matches one of the specified values.
|
||||
*
|
||||
* A hex-encoded SHA-256 of the certificate can be generated with the following command:
|
||||
*
|
||||
* .. code-block:: bash
|
||||
*
|
||||
* $ openssl x509 -in path/to/client.crt -outform DER | openssl dgst -sha256 | cut -d" " -f2
|
||||
* df6ff72fe9116521268f6f2dd4966f51df479883fe7037b39f75916ac3049d1a
|
||||
*
|
||||
* A long hex-encoded and colon-separated SHA-256 (a.k.a. "fingerprint") of the certificate
|
||||
* can be generated with the following command:
|
||||
*
|
||||
* .. code-block:: bash
|
||||
*
|
||||
* $ openssl x509 -in path/to/client.crt -noout -fingerprint -sha256 | cut -d"=" -f2
|
||||
* DF:6F:F7:2F:E9:11:65:21:26:8F:6F:2D:D4:96:6F:51:DF:47:98:83:FE:70:37:B3:9F:75:91:6A:C3:04:9D:1A
|
||||
*
|
||||
* Both of those formats are acceptable.
|
||||
*
|
||||
* When both:
|
||||
* :ref:`verify_certificate_hash
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>` and
|
||||
* :ref:`verify_certificate_spki
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>` are specified,
|
||||
* a hash matching value from either of the lists will result in the certificate being accepted.
|
||||
*/
|
||||
'verify_certificate_hash'?: (string)[];
|
||||
/**
|
||||
* An optional list of base64-encoded SHA-256 hashes. If specified, Envoy will verify that the
|
||||
* SHA-256 of the DER-encoded Subject Public Key Information (SPKI) of the presented certificate
|
||||
* matches one of the specified values.
|
||||
*
|
||||
* A base64-encoded SHA-256 of the Subject Public Key Information (SPKI) of the certificate
|
||||
* can be generated with the following command:
|
||||
*
|
||||
* .. code-block:: bash
|
||||
*
|
||||
* $ openssl x509 -in path/to/client.crt -noout -pubkey
|
||||
* | openssl pkey -pubin -outform DER
|
||||
* | openssl dgst -sha256 -binary
|
||||
* | openssl enc -base64
|
||||
* NvqYIYSbgK2vCJpQhObf77vv+bQWtc5ek5RIOwPiC9A=
|
||||
*
|
||||
* This is the format used in HTTP Public Key Pinning.
|
||||
*
|
||||
* When both:
|
||||
* :ref:`verify_certificate_hash
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>` and
|
||||
* :ref:`verify_certificate_spki
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>` are specified,
|
||||
* a hash matching value from either of the lists will result in the certificate being accepted.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* This option is preferred over :ref:`verify_certificate_hash
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>`,
|
||||
* because SPKI is tied to a private key, so it doesn't change when the certificate
|
||||
* is renewed using the same private key.
|
||||
*/
|
||||
'verify_certificate_spki'?: (string)[];
|
||||
/**
|
||||
* An optional list of Subject Alternative Names. If specified, Envoy will verify that the
|
||||
* Subject Alternative Name of the presented certificate matches one of the specified values.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Subject Alternative Names are easily spoofable and verifying only them is insecure,
|
||||
* therefore this option must be used together with :ref:`trusted_ca
|
||||
* <envoy_api_field_auth.CertificateValidationContext.trusted_ca>`.
|
||||
*/
|
||||
'verify_subject_alt_name'?: (string)[];
|
||||
/**
|
||||
* [#not-implemented-hide:] Must present a signed time-stamped OCSP response.
|
||||
*/
|
||||
'require_ocsp_staple'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* [#not-implemented-hide:] Must present signed certificate time-stamp.
|
||||
*/
|
||||
'require_signed_certificate_timestamp'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* An optional `certificate revocation list
|
||||
* <https://en.wikipedia.org/wiki/Certificate_revocation_list>`_
|
||||
* (in PEM format). If specified, Envoy will verify that the presented peer
|
||||
* certificate has not been revoked by this CRL. If this DataSource contains
|
||||
* multiple CRLs, all of them will be used.
|
||||
*/
|
||||
'crl'?: (_envoy_api_v2_core_DataSource);
|
||||
/**
|
||||
* If specified, Envoy will not reject expired certificates.
|
||||
*/
|
||||
'allow_expired_certificate'?: (boolean);
|
||||
/**
|
||||
* An optional list of Subject Alternative name matchers. Envoy will verify that the
|
||||
* Subject Alternative Name of the presented certificate matches one of the specified matches.
|
||||
*
|
||||
* When a certificate has wildcard DNS SAN entries, to match a specific client, it should be
|
||||
* configured with exact match type in the :ref:`string matcher <envoy_api_msg_type.matcher.StringMatcher>`.
|
||||
* For example if the certificate has "\*.example.com" as DNS SAN entry, to allow only "api.example.com",
|
||||
* it should be configured as shown below.
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* match_subject_alt_names:
|
||||
* exact: "api.example.com"
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Subject Alternative Names are easily spoofable and verifying only them is insecure,
|
||||
* therefore this option must be used together with :ref:`trusted_ca
|
||||
* <envoy_api_field_auth.CertificateValidationContext.trusted_ca>`.
|
||||
*/
|
||||
'match_subject_alt_names'?: (_envoy_type_matcher_StringMatcher)[];
|
||||
/**
|
||||
* Certificate trust chain verification mode.
|
||||
*/
|
||||
'trust_chain_verification'?: (_envoy_api_v2_auth_CertificateValidationContext_TrustChainVerification | keyof typeof _envoy_api_v2_auth_CertificateValidationContext_TrustChainVerification);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 11]
|
||||
*/
|
||||
export interface CertificateValidationContext__Output {
|
||||
/**
|
||||
* TLS certificate data containing certificate authority certificates to use in verifying
|
||||
* a presented peer certificate (e.g. server certificate for clusters or client certificate
|
||||
* for listeners). If not specified and a peer certificate is presented it will not be
|
||||
* verified. By default, a client certificate is optional, unless one of the additional
|
||||
* options (:ref:`require_client_certificate
|
||||
* <envoy_api_field_auth.DownstreamTlsContext.require_client_certificate>`,
|
||||
* :ref:`verify_certificate_spki
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>`,
|
||||
* :ref:`verify_certificate_hash
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>`, or
|
||||
* :ref:`match_subject_alt_names
|
||||
* <envoy_api_field_auth.CertificateValidationContext.match_subject_alt_names>`) is also
|
||||
* specified.
|
||||
*
|
||||
* It can optionally contain certificate revocation lists, in which case Envoy will verify
|
||||
* that the presented peer certificate has not been revoked by one of the included CRLs.
|
||||
*
|
||||
* See :ref:`the TLS overview <arch_overview_ssl_enabling_verification>` for a list of common
|
||||
* system CA locations.
|
||||
*/
|
||||
'trusted_ca'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
/**
|
||||
* An optional list of hex-encoded SHA-256 hashes. If specified, Envoy will verify that
|
||||
* the SHA-256 of the DER-encoded presented certificate matches one of the specified values.
|
||||
*
|
||||
* A hex-encoded SHA-256 of the certificate can be generated with the following command:
|
||||
*
|
||||
* .. code-block:: bash
|
||||
*
|
||||
* $ openssl x509 -in path/to/client.crt -outform DER | openssl dgst -sha256 | cut -d" " -f2
|
||||
* df6ff72fe9116521268f6f2dd4966f51df479883fe7037b39f75916ac3049d1a
|
||||
*
|
||||
* A long hex-encoded and colon-separated SHA-256 (a.k.a. "fingerprint") of the certificate
|
||||
* can be generated with the following command:
|
||||
*
|
||||
* .. code-block:: bash
|
||||
*
|
||||
* $ openssl x509 -in path/to/client.crt -noout -fingerprint -sha256 | cut -d"=" -f2
|
||||
* DF:6F:F7:2F:E9:11:65:21:26:8F:6F:2D:D4:96:6F:51:DF:47:98:83:FE:70:37:B3:9F:75:91:6A:C3:04:9D:1A
|
||||
*
|
||||
* Both of those formats are acceptable.
|
||||
*
|
||||
* When both:
|
||||
* :ref:`verify_certificate_hash
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>` and
|
||||
* :ref:`verify_certificate_spki
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>` are specified,
|
||||
* a hash matching value from either of the lists will result in the certificate being accepted.
|
||||
*/
|
||||
'verify_certificate_hash': (string)[];
|
||||
/**
|
||||
* An optional list of base64-encoded SHA-256 hashes. If specified, Envoy will verify that the
|
||||
* SHA-256 of the DER-encoded Subject Public Key Information (SPKI) of the presented certificate
|
||||
* matches one of the specified values.
|
||||
*
|
||||
* A base64-encoded SHA-256 of the Subject Public Key Information (SPKI) of the certificate
|
||||
* can be generated with the following command:
|
||||
*
|
||||
* .. code-block:: bash
|
||||
*
|
||||
* $ openssl x509 -in path/to/client.crt -noout -pubkey
|
||||
* | openssl pkey -pubin -outform DER
|
||||
* | openssl dgst -sha256 -binary
|
||||
* | openssl enc -base64
|
||||
* NvqYIYSbgK2vCJpQhObf77vv+bQWtc5ek5RIOwPiC9A=
|
||||
*
|
||||
* This is the format used in HTTP Public Key Pinning.
|
||||
*
|
||||
* When both:
|
||||
* :ref:`verify_certificate_hash
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>` and
|
||||
* :ref:`verify_certificate_spki
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_spki>` are specified,
|
||||
* a hash matching value from either of the lists will result in the certificate being accepted.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* This option is preferred over :ref:`verify_certificate_hash
|
||||
* <envoy_api_field_auth.CertificateValidationContext.verify_certificate_hash>`,
|
||||
* because SPKI is tied to a private key, so it doesn't change when the certificate
|
||||
* is renewed using the same private key.
|
||||
*/
|
||||
'verify_certificate_spki': (string)[];
|
||||
/**
|
||||
* An optional list of Subject Alternative Names. If specified, Envoy will verify that the
|
||||
* Subject Alternative Name of the presented certificate matches one of the specified values.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Subject Alternative Names are easily spoofable and verifying only them is insecure,
|
||||
* therefore this option must be used together with :ref:`trusted_ca
|
||||
* <envoy_api_field_auth.CertificateValidationContext.trusted_ca>`.
|
||||
*/
|
||||
'verify_subject_alt_name': (string)[];
|
||||
/**
|
||||
* [#not-implemented-hide:] Must present a signed time-stamped OCSP response.
|
||||
*/
|
||||
'require_ocsp_staple'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:] Must present signed certificate time-stamp.
|
||||
*/
|
||||
'require_signed_certificate_timestamp'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* An optional `certificate revocation list
|
||||
* <https://en.wikipedia.org/wiki/Certificate_revocation_list>`_
|
||||
* (in PEM format). If specified, Envoy will verify that the presented peer
|
||||
* certificate has not been revoked by this CRL. If this DataSource contains
|
||||
* multiple CRLs, all of them will be used.
|
||||
*/
|
||||
'crl'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
/**
|
||||
* If specified, Envoy will not reject expired certificates.
|
||||
*/
|
||||
'allow_expired_certificate': (boolean);
|
||||
/**
|
||||
* An optional list of Subject Alternative name matchers. Envoy will verify that the
|
||||
* Subject Alternative Name of the presented certificate matches one of the specified matches.
|
||||
*
|
||||
* When a certificate has wildcard DNS SAN entries, to match a specific client, it should be
|
||||
* configured with exact match type in the :ref:`string matcher <envoy_api_msg_type.matcher.StringMatcher>`.
|
||||
* For example if the certificate has "\*.example.com" as DNS SAN entry, to allow only "api.example.com",
|
||||
* it should be configured as shown below.
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* match_subject_alt_names:
|
||||
* exact: "api.example.com"
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Subject Alternative Names are easily spoofable and verifying only them is insecure,
|
||||
* therefore this option must be used together with :ref:`trusted_ca
|
||||
* <envoy_api_field_auth.CertificateValidationContext.trusted_ca>`.
|
||||
*/
|
||||
'match_subject_alt_names': (_envoy_type_matcher_StringMatcher__Output)[];
|
||||
/**
|
||||
* Certificate trust chain verification mode.
|
||||
*/
|
||||
'trust_chain_verification': (keyof typeof _envoy_api_v2_auth_CertificateValidationContext_TrustChainVerification);
|
||||
}
|
||||
@ -0,0 +1,140 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/tls.proto
|
||||
|
||||
import { TlsParameters as _envoy_api_v2_auth_TlsParameters, TlsParameters__Output as _envoy_api_v2_auth_TlsParameters__Output } from '../../../../envoy/api/v2/auth/TlsParameters';
|
||||
import { TlsCertificate as _envoy_api_v2_auth_TlsCertificate, TlsCertificate__Output as _envoy_api_v2_auth_TlsCertificate__Output } from '../../../../envoy/api/v2/auth/TlsCertificate';
|
||||
import { CertificateValidationContext as _envoy_api_v2_auth_CertificateValidationContext, CertificateValidationContext__Output as _envoy_api_v2_auth_CertificateValidationContext__Output } from '../../../../envoy/api/v2/auth/CertificateValidationContext';
|
||||
import { SdsSecretConfig as _envoy_api_v2_auth_SdsSecretConfig, SdsSecretConfig__Output as _envoy_api_v2_auth_SdsSecretConfig__Output } from '../../../../envoy/api/v2/auth/SdsSecretConfig';
|
||||
|
||||
export interface _envoy_api_v2_auth_CommonTlsContext_CombinedCertificateValidationContext {
|
||||
/**
|
||||
* How to validate peer certificates.
|
||||
*/
|
||||
'default_validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext);
|
||||
/**
|
||||
* Config for fetching validation context via SDS API.
|
||||
*/
|
||||
'validation_context_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig);
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_auth_CommonTlsContext_CombinedCertificateValidationContext__Output {
|
||||
/**
|
||||
* How to validate peer certificates.
|
||||
*/
|
||||
'default_validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext__Output);
|
||||
/**
|
||||
* Config for fetching validation context via SDS API.
|
||||
*/
|
||||
'validation_context_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig__Output);
|
||||
}
|
||||
|
||||
/**
|
||||
* TLS context shared by both client and server TLS contexts.
|
||||
* [#next-free-field: 9]
|
||||
*/
|
||||
export interface CommonTlsContext {
|
||||
/**
|
||||
* TLS protocol versions, cipher suites etc.
|
||||
*/
|
||||
'tls_params'?: (_envoy_api_v2_auth_TlsParameters);
|
||||
/**
|
||||
* :ref:`Multiple TLS certificates <arch_overview_ssl_cert_select>` can be associated with the
|
||||
* same context to allow both RSA and ECDSA certificates.
|
||||
*
|
||||
* Only a single TLS certificate is supported in client contexts. In server contexts, the first
|
||||
* RSA certificate is used for clients that only support RSA and the first ECDSA certificate is
|
||||
* used for clients that support ECDSA.
|
||||
*/
|
||||
'tls_certificates'?: (_envoy_api_v2_auth_TlsCertificate)[];
|
||||
/**
|
||||
* How to validate peer certificates.
|
||||
*/
|
||||
'validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext);
|
||||
/**
|
||||
* Supplies the list of ALPN protocols that the listener should expose. In
|
||||
* practice this is likely to be set to one of two values (see the
|
||||
* :ref:`codec_type
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.codec_type>`
|
||||
* parameter in the HTTP connection manager for more information):
|
||||
*
|
||||
* * "h2,http/1.1" If the listener is going to support both HTTP/2 and HTTP/1.1.
|
||||
* * "http/1.1" If the listener is only going to support HTTP/1.1.
|
||||
*
|
||||
* There is no default for this parameter. If empty, Envoy will not expose ALPN.
|
||||
*/
|
||||
'alpn_protocols'?: (string)[];
|
||||
/**
|
||||
* Configs for fetching TLS certificates via SDS API.
|
||||
*/
|
||||
'tls_certificate_sds_secret_configs'?: (_envoy_api_v2_auth_SdsSecretConfig)[];
|
||||
/**
|
||||
* Config for fetching validation context via SDS API.
|
||||
*/
|
||||
'validation_context_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig);
|
||||
/**
|
||||
* Combined certificate validation context holds a default CertificateValidationContext
|
||||
* and SDS config. When SDS server returns dynamic CertificateValidationContext, both dynamic
|
||||
* and default CertificateValidationContext are merged into a new CertificateValidationContext
|
||||
* for validation. This merge is done by Message::MergeFrom(), so dynamic
|
||||
* CertificateValidationContext overwrites singular fields in default
|
||||
* CertificateValidationContext, and concatenates repeated fields to default
|
||||
* CertificateValidationContext, and logical OR is applied to boolean fields.
|
||||
*/
|
||||
'combined_validation_context'?: (_envoy_api_v2_auth_CommonTlsContext_CombinedCertificateValidationContext);
|
||||
'validation_context_type'?: "validation_context"|"validation_context_sds_secret_config"|"combined_validation_context";
|
||||
}
|
||||
|
||||
/**
|
||||
* TLS context shared by both client and server TLS contexts.
|
||||
* [#next-free-field: 9]
|
||||
*/
|
||||
export interface CommonTlsContext__Output {
|
||||
/**
|
||||
* TLS protocol versions, cipher suites etc.
|
||||
*/
|
||||
'tls_params'?: (_envoy_api_v2_auth_TlsParameters__Output);
|
||||
/**
|
||||
* :ref:`Multiple TLS certificates <arch_overview_ssl_cert_select>` can be associated with the
|
||||
* same context to allow both RSA and ECDSA certificates.
|
||||
*
|
||||
* Only a single TLS certificate is supported in client contexts. In server contexts, the first
|
||||
* RSA certificate is used for clients that only support RSA and the first ECDSA certificate is
|
||||
* used for clients that support ECDSA.
|
||||
*/
|
||||
'tls_certificates': (_envoy_api_v2_auth_TlsCertificate__Output)[];
|
||||
/**
|
||||
* How to validate peer certificates.
|
||||
*/
|
||||
'validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext__Output);
|
||||
/**
|
||||
* Supplies the list of ALPN protocols that the listener should expose. In
|
||||
* practice this is likely to be set to one of two values (see the
|
||||
* :ref:`codec_type
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.codec_type>`
|
||||
* parameter in the HTTP connection manager for more information):
|
||||
*
|
||||
* * "h2,http/1.1" If the listener is going to support both HTTP/2 and HTTP/1.1.
|
||||
* * "http/1.1" If the listener is only going to support HTTP/1.1.
|
||||
*
|
||||
* There is no default for this parameter. If empty, Envoy will not expose ALPN.
|
||||
*/
|
||||
'alpn_protocols': (string)[];
|
||||
/**
|
||||
* Configs for fetching TLS certificates via SDS API.
|
||||
*/
|
||||
'tls_certificate_sds_secret_configs': (_envoy_api_v2_auth_SdsSecretConfig__Output)[];
|
||||
/**
|
||||
* Config for fetching validation context via SDS API.
|
||||
*/
|
||||
'validation_context_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig__Output);
|
||||
/**
|
||||
* Combined certificate validation context holds a default CertificateValidationContext
|
||||
* and SDS config. When SDS server returns dynamic CertificateValidationContext, both dynamic
|
||||
* and default CertificateValidationContext are merged into a new CertificateValidationContext
|
||||
* for validation. This merge is done by Message::MergeFrom(), so dynamic
|
||||
* CertificateValidationContext overwrites singular fields in default
|
||||
* CertificateValidationContext, and concatenates repeated fields to default
|
||||
* CertificateValidationContext, and logical OR is applied to boolean fields.
|
||||
*/
|
||||
'combined_validation_context'?: (_envoy_api_v2_auth_CommonTlsContext_CombinedCertificateValidationContext__Output);
|
||||
'validation_context_type': "validation_context"|"validation_context_sds_secret_config"|"combined_validation_context";
|
||||
}
|
||||
@ -0,0 +1,101 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/tls.proto
|
||||
|
||||
import { CommonTlsContext as _envoy_api_v2_auth_CommonTlsContext, CommonTlsContext__Output as _envoy_api_v2_auth_CommonTlsContext__Output } from '../../../../envoy/api/v2/auth/CommonTlsContext';
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
import { TlsSessionTicketKeys as _envoy_api_v2_auth_TlsSessionTicketKeys, TlsSessionTicketKeys__Output as _envoy_api_v2_auth_TlsSessionTicketKeys__Output } from '../../../../envoy/api/v2/auth/TlsSessionTicketKeys';
|
||||
import { SdsSecretConfig as _envoy_api_v2_auth_SdsSecretConfig, SdsSecretConfig__Output as _envoy_api_v2_auth_SdsSecretConfig__Output } from '../../../../envoy/api/v2/auth/SdsSecretConfig';
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
|
||||
|
||||
/**
|
||||
* [#next-free-field: 8]
|
||||
*/
|
||||
export interface DownstreamTlsContext {
|
||||
/**
|
||||
* Common TLS context settings.
|
||||
*/
|
||||
'common_tls_context'?: (_envoy_api_v2_auth_CommonTlsContext);
|
||||
/**
|
||||
* If specified, Envoy will reject connections without a valid client
|
||||
* certificate.
|
||||
*/
|
||||
'require_client_certificate'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* If specified, Envoy will reject connections without a valid and matching SNI.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'require_sni'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* TLS session ticket key settings.
|
||||
*/
|
||||
'session_ticket_keys'?: (_envoy_api_v2_auth_TlsSessionTicketKeys);
|
||||
/**
|
||||
* Config for fetching TLS session ticket keys via SDS API.
|
||||
*/
|
||||
'session_ticket_keys_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig);
|
||||
/**
|
||||
* If specified, session_timeout will change maximum lifetime (in seconds) of TLS session
|
||||
* Currently this value is used as a hint to `TLS session ticket lifetime (for TLSv1.2)
|
||||
* <https://tools.ietf.org/html/rfc5077#section-5.6>`
|
||||
* only seconds could be specified (fractional seconds are going to be ignored).
|
||||
*/
|
||||
'session_timeout'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Config for controlling stateless TLS session resumption: setting this to true will cause the TLS
|
||||
* server to not issue TLS session tickets for the purposes of stateless TLS session resumption.
|
||||
* If set to false, the TLS server will issue TLS session tickets and encrypt/decrypt them using
|
||||
* the keys specified through either :ref:`session_ticket_keys <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys>`
|
||||
* or :ref:`session_ticket_keys_sds_secret_config <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys_sds_secret_config>`.
|
||||
* If this config is set to false and no keys are explicitly configured, the TLS server will issue
|
||||
* TLS session tickets and encrypt/decrypt them using an internally-generated and managed key, with the
|
||||
* implication that sessions cannot be resumed across hot restarts or on different hosts.
|
||||
*/
|
||||
'disable_stateless_session_resumption'?: (boolean);
|
||||
'session_ticket_keys_type'?: "session_ticket_keys"|"session_ticket_keys_sds_secret_config"|"disable_stateless_session_resumption";
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 8]
|
||||
*/
|
||||
export interface DownstreamTlsContext__Output {
|
||||
/**
|
||||
* Common TLS context settings.
|
||||
*/
|
||||
'common_tls_context'?: (_envoy_api_v2_auth_CommonTlsContext__Output);
|
||||
/**
|
||||
* If specified, Envoy will reject connections without a valid client
|
||||
* certificate.
|
||||
*/
|
||||
'require_client_certificate'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* If specified, Envoy will reject connections without a valid and matching SNI.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'require_sni'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* TLS session ticket key settings.
|
||||
*/
|
||||
'session_ticket_keys'?: (_envoy_api_v2_auth_TlsSessionTicketKeys__Output);
|
||||
/**
|
||||
* Config for fetching TLS session ticket keys via SDS API.
|
||||
*/
|
||||
'session_ticket_keys_sds_secret_config'?: (_envoy_api_v2_auth_SdsSecretConfig__Output);
|
||||
/**
|
||||
* If specified, session_timeout will change maximum lifetime (in seconds) of TLS session
|
||||
* Currently this value is used as a hint to `TLS session ticket lifetime (for TLSv1.2)
|
||||
* <https://tools.ietf.org/html/rfc5077#section-5.6>`
|
||||
* only seconds could be specified (fractional seconds are going to be ignored).
|
||||
*/
|
||||
'session_timeout'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Config for controlling stateless TLS session resumption: setting this to true will cause the TLS
|
||||
* server to not issue TLS session tickets for the purposes of stateless TLS session resumption.
|
||||
* If set to false, the TLS server will issue TLS session tickets and encrypt/decrypt them using
|
||||
* the keys specified through either :ref:`session_ticket_keys <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys>`
|
||||
* or :ref:`session_ticket_keys_sds_secret_config <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys_sds_secret_config>`.
|
||||
* If this config is set to false and no keys are explicitly configured, the TLS server will issue
|
||||
* TLS session tickets and encrypt/decrypt them using an internally-generated and managed key, with the
|
||||
* implication that sessions cannot be resumed across hot restarts or on different hosts.
|
||||
*/
|
||||
'disable_stateless_session_resumption'?: (boolean);
|
||||
'session_ticket_keys_type': "session_ticket_keys"|"session_ticket_keys_sds_secret_config"|"disable_stateless_session_resumption";
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/secret.proto
|
||||
|
||||
import { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
|
||||
|
||||
export interface GenericSecret {
|
||||
/**
|
||||
* Secret of generic type and is available to filters.
|
||||
*/
|
||||
'secret'?: (_envoy_api_v2_core_DataSource);
|
||||
}
|
||||
|
||||
export interface GenericSecret__Output {
|
||||
/**
|
||||
* Secret of generic type and is available to filters.
|
||||
*/
|
||||
'secret'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
|
||||
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
|
||||
|
||||
/**
|
||||
* BoringSSL private key method configuration. The private key methods are used for external
|
||||
* (potentially asynchronous) signing and decryption operations. Some use cases for private key
|
||||
* methods would be TPM support and TLS acceleration.
|
||||
*/
|
||||
export interface PrivateKeyProvider {
|
||||
/**
|
||||
* Private key method provider name. The name must match a
|
||||
* supported private key method provider type.
|
||||
*/
|
||||
'provider_name'?: (string);
|
||||
'config'?: (_google_protobuf_Struct);
|
||||
'typed_config'?: (_google_protobuf_Any);
|
||||
/**
|
||||
* Private key method provider specific configuration.
|
||||
*/
|
||||
'config_type'?: "config"|"typed_config";
|
||||
}
|
||||
|
||||
/**
|
||||
* BoringSSL private key method configuration. The private key methods are used for external
|
||||
* (potentially asynchronous) signing and decryption operations. Some use cases for private key
|
||||
* methods would be TPM support and TLS acceleration.
|
||||
*/
|
||||
export interface PrivateKeyProvider__Output {
|
||||
/**
|
||||
* Private key method provider name. The name must match a
|
||||
* supported private key method provider type.
|
||||
*/
|
||||
'provider_name': (string);
|
||||
'config'?: (_google_protobuf_Struct__Output);
|
||||
'typed_config'?: (_google_protobuf_Any__Output);
|
||||
/**
|
||||
* Private key method provider specific configuration.
|
||||
*/
|
||||
'config_type': "config"|"typed_config";
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/secret.proto
|
||||
|
||||
import { ConfigSource as _envoy_api_v2_core_ConfigSource, ConfigSource__Output as _envoy_api_v2_core_ConfigSource__Output } from '../../../../envoy/api/v2/core/ConfigSource';
|
||||
|
||||
export interface SdsSecretConfig {
|
||||
/**
|
||||
* Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
|
||||
* When both name and config are specified, then secret can be fetched and/or reloaded via
|
||||
* SDS. When only name is specified, then secret will be loaded from static resources.
|
||||
*/
|
||||
'name'?: (string);
|
||||
'sds_config'?: (_envoy_api_v2_core_ConfigSource);
|
||||
}
|
||||
|
||||
export interface SdsSecretConfig__Output {
|
||||
/**
|
||||
* Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
|
||||
* When both name and config are specified, then secret can be fetched and/or reloaded via
|
||||
* SDS. When only name is specified, then secret will be loaded from static resources.
|
||||
*/
|
||||
'name': (string);
|
||||
'sds_config'?: (_envoy_api_v2_core_ConfigSource__Output);
|
||||
}
|
||||
36
packages/grpc-js/src/generated/envoy/api/v2/auth/Secret.ts
Normal file
36
packages/grpc-js/src/generated/envoy/api/v2/auth/Secret.ts
Normal file
@ -0,0 +1,36 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/secret.proto
|
||||
|
||||
import { TlsCertificate as _envoy_api_v2_auth_TlsCertificate, TlsCertificate__Output as _envoy_api_v2_auth_TlsCertificate__Output } from '../../../../envoy/api/v2/auth/TlsCertificate';
|
||||
import { TlsSessionTicketKeys as _envoy_api_v2_auth_TlsSessionTicketKeys, TlsSessionTicketKeys__Output as _envoy_api_v2_auth_TlsSessionTicketKeys__Output } from '../../../../envoy/api/v2/auth/TlsSessionTicketKeys';
|
||||
import { CertificateValidationContext as _envoy_api_v2_auth_CertificateValidationContext, CertificateValidationContext__Output as _envoy_api_v2_auth_CertificateValidationContext__Output } from '../../../../envoy/api/v2/auth/CertificateValidationContext';
|
||||
import { GenericSecret as _envoy_api_v2_auth_GenericSecret, GenericSecret__Output as _envoy_api_v2_auth_GenericSecret__Output } from '../../../../envoy/api/v2/auth/GenericSecret';
|
||||
|
||||
/**
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface Secret {
|
||||
/**
|
||||
* Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
|
||||
*/
|
||||
'name'?: (string);
|
||||
'tls_certificate'?: (_envoy_api_v2_auth_TlsCertificate);
|
||||
'session_ticket_keys'?: (_envoy_api_v2_auth_TlsSessionTicketKeys);
|
||||
'validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext);
|
||||
'generic_secret'?: (_envoy_api_v2_auth_GenericSecret);
|
||||
'type'?: "tls_certificate"|"session_ticket_keys"|"validation_context"|"generic_secret";
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface Secret__Output {
|
||||
/**
|
||||
* Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
|
||||
*/
|
||||
'name': (string);
|
||||
'tls_certificate'?: (_envoy_api_v2_auth_TlsCertificate__Output);
|
||||
'session_ticket_keys'?: (_envoy_api_v2_auth_TlsSessionTicketKeys__Output);
|
||||
'validation_context'?: (_envoy_api_v2_auth_CertificateValidationContext__Output);
|
||||
'generic_secret'?: (_envoy_api_v2_auth_GenericSecret__Output);
|
||||
'type': "tls_certificate"|"session_ticket_keys"|"validation_context"|"generic_secret";
|
||||
}
|
||||
@ -0,0 +1,78 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
|
||||
|
||||
import { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
|
||||
import { PrivateKeyProvider as _envoy_api_v2_auth_PrivateKeyProvider, PrivateKeyProvider__Output as _envoy_api_v2_auth_PrivateKeyProvider__Output } from '../../../../envoy/api/v2/auth/PrivateKeyProvider';
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface TlsCertificate {
|
||||
/**
|
||||
* The TLS certificate chain.
|
||||
*/
|
||||
'certificate_chain'?: (_envoy_api_v2_core_DataSource);
|
||||
/**
|
||||
* The TLS private key.
|
||||
*/
|
||||
'private_key'?: (_envoy_api_v2_core_DataSource);
|
||||
/**
|
||||
* The password to decrypt the TLS private key. If this field is not set, it is assumed that the
|
||||
* TLS private key is not password encrypted.
|
||||
*/
|
||||
'password'?: (_envoy_api_v2_core_DataSource);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'ocsp_staple'?: (_envoy_api_v2_core_DataSource);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'signed_certificate_timestamp'?: (_envoy_api_v2_core_DataSource)[];
|
||||
/**
|
||||
* BoringSSL private key method provider. This is an alternative to :ref:`private_key
|
||||
* <envoy_api_field_auth.TlsCertificate.private_key>` field. This can't be
|
||||
* marked as ``oneof`` due to API compatibility reasons. Setting both :ref:`private_key
|
||||
* <envoy_api_field_auth.TlsCertificate.private_key>` and
|
||||
* :ref:`private_key_provider
|
||||
* <envoy_api_field_auth.TlsCertificate.private_key_provider>` fields will result in an
|
||||
* error.
|
||||
*/
|
||||
'private_key_provider'?: (_envoy_api_v2_auth_PrivateKeyProvider);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface TlsCertificate__Output {
|
||||
/**
|
||||
* The TLS certificate chain.
|
||||
*/
|
||||
'certificate_chain'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
/**
|
||||
* The TLS private key.
|
||||
*/
|
||||
'private_key'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
/**
|
||||
* The password to decrypt the TLS private key. If this field is not set, it is assumed that the
|
||||
* TLS private key is not password encrypted.
|
||||
*/
|
||||
'password'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'ocsp_staple'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'signed_certificate_timestamp': (_envoy_api_v2_core_DataSource__Output)[];
|
||||
/**
|
||||
* BoringSSL private key method provider. This is an alternative to :ref:`private_key
|
||||
* <envoy_api_field_auth.TlsCertificate.private_key>` field. This can't be
|
||||
* marked as ``oneof`` due to API compatibility reasons. Setting both :ref:`private_key
|
||||
* <envoy_api_field_auth.TlsCertificate.private_key>` and
|
||||
* :ref:`private_key_provider
|
||||
* <envoy_api_field_auth.TlsCertificate.private_key_provider>` fields will result in an
|
||||
* error.
|
||||
*/
|
||||
'private_key_provider'?: (_envoy_api_v2_auth_PrivateKeyProvider__Output);
|
||||
}
|
||||
@ -0,0 +1,171 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
|
||||
|
||||
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
|
||||
|
||||
export enum _envoy_api_v2_auth_TlsParameters_TlsProtocol {
|
||||
/**
|
||||
* Envoy will choose the optimal TLS version.
|
||||
*/
|
||||
TLS_AUTO = 0,
|
||||
/**
|
||||
* TLS 1.0
|
||||
*/
|
||||
TLSv1_0 = 1,
|
||||
/**
|
||||
* TLS 1.1
|
||||
*/
|
||||
TLSv1_1 = 2,
|
||||
/**
|
||||
* TLS 1.2
|
||||
*/
|
||||
TLSv1_2 = 3,
|
||||
/**
|
||||
* TLS 1.3
|
||||
*/
|
||||
TLSv1_3 = 4,
|
||||
}
|
||||
|
||||
export interface TlsParameters {
|
||||
/**
|
||||
* Minimum TLS protocol version. By default, it's ``TLSv1_2`` for clients and ``TLSv1_0`` for
|
||||
* servers.
|
||||
*/
|
||||
'tls_minimum_protocol_version'?: (_envoy_api_v2_auth_TlsParameters_TlsProtocol | keyof typeof _envoy_api_v2_auth_TlsParameters_TlsProtocol);
|
||||
/**
|
||||
* Maximum TLS protocol version. By default, it's ``TLSv1_3`` for servers in non-FIPS builds, and
|
||||
* ``TLSv1_2`` for clients and for servers using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`.
|
||||
*/
|
||||
'tls_maximum_protocol_version'?: (_envoy_api_v2_auth_TlsParameters_TlsProtocol | keyof typeof _envoy_api_v2_auth_TlsParameters_TlsProtocol);
|
||||
/**
|
||||
* If specified, the TLS listener will only support the specified `cipher list
|
||||
* <https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration>`_
|
||||
* when negotiating TLS 1.0-1.2 (this setting has no effect when negotiating TLS 1.3). If not
|
||||
* specified, the default list will be used.
|
||||
*
|
||||
* In non-FIPS builds, the default cipher list is:
|
||||
*
|
||||
* .. code-block:: none
|
||||
*
|
||||
* [ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]
|
||||
* [ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]
|
||||
* ECDHE-ECDSA-AES128-SHA
|
||||
* ECDHE-RSA-AES128-SHA
|
||||
* AES128-GCM-SHA256
|
||||
* AES128-SHA
|
||||
* ECDHE-ECDSA-AES256-GCM-SHA384
|
||||
* ECDHE-RSA-AES256-GCM-SHA384
|
||||
* ECDHE-ECDSA-AES256-SHA
|
||||
* ECDHE-RSA-AES256-SHA
|
||||
* AES256-GCM-SHA384
|
||||
* AES256-SHA
|
||||
*
|
||||
* In builds using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`, the default cipher list is:
|
||||
*
|
||||
* .. code-block:: none
|
||||
*
|
||||
* ECDHE-ECDSA-AES128-GCM-SHA256
|
||||
* ECDHE-RSA-AES128-GCM-SHA256
|
||||
* ECDHE-ECDSA-AES128-SHA
|
||||
* ECDHE-RSA-AES128-SHA
|
||||
* AES128-GCM-SHA256
|
||||
* AES128-SHA
|
||||
* ECDHE-ECDSA-AES256-GCM-SHA384
|
||||
* ECDHE-RSA-AES256-GCM-SHA384
|
||||
* ECDHE-ECDSA-AES256-SHA
|
||||
* ECDHE-RSA-AES256-SHA
|
||||
* AES256-GCM-SHA384
|
||||
* AES256-SHA
|
||||
*/
|
||||
'cipher_suites'?: (string)[];
|
||||
/**
|
||||
* If specified, the TLS connection will only support the specified ECDH
|
||||
* curves. If not specified, the default curves will be used.
|
||||
*
|
||||
* In non-FIPS builds, the default curves are:
|
||||
*
|
||||
* .. code-block:: none
|
||||
*
|
||||
* X25519
|
||||
* P-256
|
||||
*
|
||||
* In builds using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`, the default curve is:
|
||||
*
|
||||
* .. code-block:: none
|
||||
*
|
||||
* P-256
|
||||
*/
|
||||
'ecdh_curves'?: (string)[];
|
||||
}
|
||||
|
||||
export interface TlsParameters__Output {
|
||||
/**
|
||||
* Minimum TLS protocol version. By default, it's ``TLSv1_2`` for clients and ``TLSv1_0`` for
|
||||
* servers.
|
||||
*/
|
||||
'tls_minimum_protocol_version': (keyof typeof _envoy_api_v2_auth_TlsParameters_TlsProtocol);
|
||||
/**
|
||||
* Maximum TLS protocol version. By default, it's ``TLSv1_3`` for servers in non-FIPS builds, and
|
||||
* ``TLSv1_2`` for clients and for servers using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`.
|
||||
*/
|
||||
'tls_maximum_protocol_version': (keyof typeof _envoy_api_v2_auth_TlsParameters_TlsProtocol);
|
||||
/**
|
||||
* If specified, the TLS listener will only support the specified `cipher list
|
||||
* <https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration>`_
|
||||
* when negotiating TLS 1.0-1.2 (this setting has no effect when negotiating TLS 1.3). If not
|
||||
* specified, the default list will be used.
|
||||
*
|
||||
* In non-FIPS builds, the default cipher list is:
|
||||
*
|
||||
* .. code-block:: none
|
||||
*
|
||||
* [ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]
|
||||
* [ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]
|
||||
* ECDHE-ECDSA-AES128-SHA
|
||||
* ECDHE-RSA-AES128-SHA
|
||||
* AES128-GCM-SHA256
|
||||
* AES128-SHA
|
||||
* ECDHE-ECDSA-AES256-GCM-SHA384
|
||||
* ECDHE-RSA-AES256-GCM-SHA384
|
||||
* ECDHE-ECDSA-AES256-SHA
|
||||
* ECDHE-RSA-AES256-SHA
|
||||
* AES256-GCM-SHA384
|
||||
* AES256-SHA
|
||||
*
|
||||
* In builds using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`, the default cipher list is:
|
||||
*
|
||||
* .. code-block:: none
|
||||
*
|
||||
* ECDHE-ECDSA-AES128-GCM-SHA256
|
||||
* ECDHE-RSA-AES128-GCM-SHA256
|
||||
* ECDHE-ECDSA-AES128-SHA
|
||||
* ECDHE-RSA-AES128-SHA
|
||||
* AES128-GCM-SHA256
|
||||
* AES128-SHA
|
||||
* ECDHE-ECDSA-AES256-GCM-SHA384
|
||||
* ECDHE-RSA-AES256-GCM-SHA384
|
||||
* ECDHE-ECDSA-AES256-SHA
|
||||
* ECDHE-RSA-AES256-SHA
|
||||
* AES256-GCM-SHA384
|
||||
* AES256-SHA
|
||||
*/
|
||||
'cipher_suites': (string)[];
|
||||
/**
|
||||
* If specified, the TLS connection will only support the specified ECDH
|
||||
* curves. If not specified, the default curves will be used.
|
||||
*
|
||||
* In non-FIPS builds, the default curves are:
|
||||
*
|
||||
* .. code-block:: none
|
||||
*
|
||||
* X25519
|
||||
* P-256
|
||||
*
|
||||
* In builds using :ref:`BoringSSL FIPS <arch_overview_ssl_fips>`, the default curve is:
|
||||
*
|
||||
* .. code-block:: none
|
||||
*
|
||||
* P-256
|
||||
*/
|
||||
'ecdh_curves': (string)[];
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/common.proto
|
||||
|
||||
import { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
|
||||
|
||||
export interface TlsSessionTicketKeys {
|
||||
/**
|
||||
* Keys for encrypting and decrypting TLS session tickets. The
|
||||
* first key in the array contains the key to encrypt all new sessions created by this context.
|
||||
* All keys are candidates for decrypting received tickets. This allows for easy rotation of keys
|
||||
* by, for example, putting the new key first, and the previous key second.
|
||||
*
|
||||
* If :ref:`session_ticket_keys <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys>`
|
||||
* is not specified, the TLS library will still support resuming sessions via tickets, but it will
|
||||
* use an internally-generated and managed key, so sessions cannot be resumed across hot restarts
|
||||
* or on different hosts.
|
||||
*
|
||||
* Each key must contain exactly 80 bytes of cryptographically-secure random data. For
|
||||
* example, the output of ``openssl rand 80``.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Using this feature has serious security considerations and risks. Improper handling of keys
|
||||
* may result in loss of secrecy in connections, even if ciphers supporting perfect forward
|
||||
* secrecy are used. See https://www.imperialviolet.org/2013/06/27/botchingpfs.html for some
|
||||
* discussion. To minimize the risk, you must:
|
||||
*
|
||||
* * Keep the session ticket keys at least as secure as your TLS certificate private keys
|
||||
* * Rotate session ticket keys at least daily, and preferably hourly
|
||||
* * Always generate keys using a cryptographically-secure random data source
|
||||
*/
|
||||
'keys'?: (_envoy_api_v2_core_DataSource)[];
|
||||
}
|
||||
|
||||
export interface TlsSessionTicketKeys__Output {
|
||||
/**
|
||||
* Keys for encrypting and decrypting TLS session tickets. The
|
||||
* first key in the array contains the key to encrypt all new sessions created by this context.
|
||||
* All keys are candidates for decrypting received tickets. This allows for easy rotation of keys
|
||||
* by, for example, putting the new key first, and the previous key second.
|
||||
*
|
||||
* If :ref:`session_ticket_keys <envoy_api_field_auth.DownstreamTlsContext.session_ticket_keys>`
|
||||
* is not specified, the TLS library will still support resuming sessions via tickets, but it will
|
||||
* use an internally-generated and managed key, so sessions cannot be resumed across hot restarts
|
||||
* or on different hosts.
|
||||
*
|
||||
* Each key must contain exactly 80 bytes of cryptographically-secure random data. For
|
||||
* example, the output of ``openssl rand 80``.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Using this feature has serious security considerations and risks. Improper handling of keys
|
||||
* may result in loss of secrecy in connections, even if ciphers supporting perfect forward
|
||||
* secrecy are used. See https://www.imperialviolet.org/2013/06/27/botchingpfs.html for some
|
||||
* discussion. To minimize the risk, you must:
|
||||
*
|
||||
* * Keep the session ticket keys at least as secure as your TLS certificate private keys
|
||||
* * Rotate session ticket keys at least daily, and preferably hourly
|
||||
* * Always generate keys using a cryptographically-secure random data source
|
||||
*/
|
||||
'keys': (_envoy_api_v2_core_DataSource__Output)[];
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/auth/tls.proto
|
||||
|
||||
import { CommonTlsContext as _envoy_api_v2_auth_CommonTlsContext, CommonTlsContext__Output as _envoy_api_v2_auth_CommonTlsContext__Output } from '../../../../envoy/api/v2/auth/CommonTlsContext';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
|
||||
export interface UpstreamTlsContext {
|
||||
/**
|
||||
* Common TLS context settings.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Server certificate verification is not enabled by default. Configure
|
||||
* :ref:`trusted_ca<envoy_api_field_auth.CertificateValidationContext.trusted_ca>` to enable
|
||||
* verification.
|
||||
*/
|
||||
'common_tls_context'?: (_envoy_api_v2_auth_CommonTlsContext);
|
||||
/**
|
||||
* SNI string to use when creating TLS backend connections.
|
||||
*/
|
||||
'sni'?: (string);
|
||||
/**
|
||||
* If true, server-initiated TLS renegotiation will be allowed.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* TLS renegotiation is considered insecure and shouldn't be used unless absolutely necessary.
|
||||
*/
|
||||
'allow_renegotiation'?: (boolean);
|
||||
/**
|
||||
* Maximum number of session keys (Pre-Shared Keys for TLSv1.3+, Session IDs and Session Tickets
|
||||
* for TLSv1.2 and older) to store for the purpose of session resumption.
|
||||
*
|
||||
* Defaults to 1, setting this to 0 disables session resumption.
|
||||
*/
|
||||
'max_session_keys'?: (_google_protobuf_UInt32Value);
|
||||
}
|
||||
|
||||
export interface UpstreamTlsContext__Output {
|
||||
/**
|
||||
* Common TLS context settings.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Server certificate verification is not enabled by default. Configure
|
||||
* :ref:`trusted_ca<envoy_api_field_auth.CertificateValidationContext.trusted_ca>` to enable
|
||||
* verification.
|
||||
*/
|
||||
'common_tls_context'?: (_envoy_api_v2_auth_CommonTlsContext__Output);
|
||||
/**
|
||||
* SNI string to use when creating TLS backend connections.
|
||||
*/
|
||||
'sni': (string);
|
||||
/**
|
||||
* If true, server-initiated TLS renegotiation will be allowed.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* TLS renegotiation is considered insecure and shouldn't be used unless absolutely necessary.
|
||||
*/
|
||||
'allow_renegotiation': (boolean);
|
||||
/**
|
||||
* Maximum number of session keys (Pre-Shared Keys for TLSv1.3+, Session IDs and Session Tickets
|
||||
* for TLSv1.2 and older) to store for the purpose of session resumption.
|
||||
*
|
||||
* Defaults to 1, setting this to 0 disables session resumption.
|
||||
*/
|
||||
'max_session_keys'?: (_google_protobuf_UInt32Value__Output);
|
||||
}
|
||||
@ -0,0 +1,195 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/cluster/circuit_breaker.proto
|
||||
|
||||
import { RoutingPriority as _envoy_api_v2_core_RoutingPriority } from '../../../../envoy/api/v2/core/RoutingPriority';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
import { Percent as _envoy_type_Percent, Percent__Output as _envoy_type_Percent__Output } from '../../../../envoy/type/Percent';
|
||||
|
||||
export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget {
|
||||
/**
|
||||
* Specifies the limit on concurrent retries as a percentage of the sum of active requests and
|
||||
* active pending requests. For example, if there are 100 active requests and the
|
||||
* budget_percent is set to 25, there may be 25 active retries.
|
||||
*
|
||||
* This parameter is optional. Defaults to 20%.
|
||||
*/
|
||||
'budget_percent'?: (_envoy_type_Percent);
|
||||
/**
|
||||
* Specifies the minimum retry concurrency allowed for the retry budget. The limit on the
|
||||
* number of active retries may never go below this number.
|
||||
*
|
||||
* This parameter is optional. Defaults to 3.
|
||||
*/
|
||||
'min_retry_concurrency'?: (_google_protobuf_UInt32Value);
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget__Output {
|
||||
/**
|
||||
* Specifies the limit on concurrent retries as a percentage of the sum of active requests and
|
||||
* active pending requests. For example, if there are 100 active requests and the
|
||||
* budget_percent is set to 25, there may be 25 active retries.
|
||||
*
|
||||
* This parameter is optional. Defaults to 20%.
|
||||
*/
|
||||
'budget_percent'?: (_envoy_type_Percent__Output);
|
||||
/**
|
||||
* Specifies the minimum retry concurrency allowed for the retry budget. The limit on the
|
||||
* number of active retries may never go below this number.
|
||||
*
|
||||
* This parameter is optional. Defaults to 3.
|
||||
*/
|
||||
'min_retry_concurrency'?: (_google_protobuf_UInt32Value__Output);
|
||||
}
|
||||
|
||||
/**
|
||||
* A Thresholds defines CircuitBreaker settings for a
|
||||
* :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`.
|
||||
* [#next-free-field: 9]
|
||||
*/
|
||||
export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds {
|
||||
/**
|
||||
* The :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`
|
||||
* the specified CircuitBreaker settings apply to.
|
||||
*/
|
||||
'priority'?: (_envoy_api_v2_core_RoutingPriority | keyof typeof _envoy_api_v2_core_RoutingPriority);
|
||||
/**
|
||||
* The maximum number of connections that Envoy will make to the upstream
|
||||
* cluster. If not specified, the default is 1024.
|
||||
*/
|
||||
'max_connections'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The maximum number of pending requests that Envoy will allow to the
|
||||
* upstream cluster. If not specified, the default is 1024.
|
||||
*/
|
||||
'max_pending_requests'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The maximum number of parallel requests that Envoy will make to the
|
||||
* upstream cluster. If not specified, the default is 1024.
|
||||
*/
|
||||
'max_requests'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The maximum number of parallel retries that Envoy will allow to the
|
||||
* upstream cluster. If not specified, the default is 3.
|
||||
*/
|
||||
'max_retries'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Specifies a limit on concurrent retries in relation to the number of active requests. This
|
||||
* parameter is optional.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* If this field is set, the retry budget will override any configured retry circuit
|
||||
* breaker.
|
||||
*/
|
||||
'retry_budget'?: (_envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget);
|
||||
/**
|
||||
* If track_remaining is true, then stats will be published that expose
|
||||
* the number of resources remaining until the circuit breakers open. If
|
||||
* not specified, the default is false.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* If a retry budget is used in lieu of the max_retries circuit breaker,
|
||||
* the remaining retry resources remaining will not be tracked.
|
||||
*/
|
||||
'track_remaining'?: (boolean);
|
||||
/**
|
||||
* The maximum number of connection pools per cluster that Envoy will concurrently support at
|
||||
* once. If not specified, the default is unlimited. Set this for clusters which create a
|
||||
* large number of connection pools. See
|
||||
* :ref:`Circuit Breaking <arch_overview_circuit_break_cluster_maximum_connection_pools>` for
|
||||
* more details.
|
||||
*/
|
||||
'max_connection_pools'?: (_google_protobuf_UInt32Value);
|
||||
}
|
||||
|
||||
/**
|
||||
* A Thresholds defines CircuitBreaker settings for a
|
||||
* :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`.
|
||||
* [#next-free-field: 9]
|
||||
*/
|
||||
export interface _envoy_api_v2_cluster_CircuitBreakers_Thresholds__Output {
|
||||
/**
|
||||
* The :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`
|
||||
* the specified CircuitBreaker settings apply to.
|
||||
*/
|
||||
'priority': (keyof typeof _envoy_api_v2_core_RoutingPriority);
|
||||
/**
|
||||
* The maximum number of connections that Envoy will make to the upstream
|
||||
* cluster. If not specified, the default is 1024.
|
||||
*/
|
||||
'max_connections'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The maximum number of pending requests that Envoy will allow to the
|
||||
* upstream cluster. If not specified, the default is 1024.
|
||||
*/
|
||||
'max_pending_requests'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The maximum number of parallel requests that Envoy will make to the
|
||||
* upstream cluster. If not specified, the default is 1024.
|
||||
*/
|
||||
'max_requests'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The maximum number of parallel retries that Envoy will allow to the
|
||||
* upstream cluster. If not specified, the default is 3.
|
||||
*/
|
||||
'max_retries'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Specifies a limit on concurrent retries in relation to the number of active requests. This
|
||||
* parameter is optional.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* If this field is set, the retry budget will override any configured retry circuit
|
||||
* breaker.
|
||||
*/
|
||||
'retry_budget'?: (_envoy_api_v2_cluster_CircuitBreakers_Thresholds_RetryBudget__Output);
|
||||
/**
|
||||
* If track_remaining is true, then stats will be published that expose
|
||||
* the number of resources remaining until the circuit breakers open. If
|
||||
* not specified, the default is false.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* If a retry budget is used in lieu of the max_retries circuit breaker,
|
||||
* the remaining retry resources remaining will not be tracked.
|
||||
*/
|
||||
'track_remaining': (boolean);
|
||||
/**
|
||||
* The maximum number of connection pools per cluster that Envoy will concurrently support at
|
||||
* once. If not specified, the default is unlimited. Set this for clusters which create a
|
||||
* large number of connection pools. See
|
||||
* :ref:`Circuit Breaking <arch_overview_circuit_break_cluster_maximum_connection_pools>` for
|
||||
* more details.
|
||||
*/
|
||||
'max_connection_pools'?: (_google_protobuf_UInt32Value__Output);
|
||||
}
|
||||
|
||||
/**
|
||||
* :ref:`Circuit breaking<arch_overview_circuit_break>` settings can be
|
||||
* specified individually for each defined priority.
|
||||
*/
|
||||
export interface CircuitBreakers {
|
||||
/**
|
||||
* If multiple :ref:`Thresholds<envoy_api_msg_cluster.CircuitBreakers.Thresholds>`
|
||||
* are defined with the same :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`,
|
||||
* the first one in the list is used. If no Thresholds is defined for a given
|
||||
* :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`, the default values
|
||||
* are used.
|
||||
*/
|
||||
'thresholds'?: (_envoy_api_v2_cluster_CircuitBreakers_Thresholds)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* :ref:`Circuit breaking<arch_overview_circuit_break>` settings can be
|
||||
* specified individually for each defined priority.
|
||||
*/
|
||||
export interface CircuitBreakers__Output {
|
||||
/**
|
||||
* If multiple :ref:`Thresholds<envoy_api_msg_cluster.CircuitBreakers.Thresholds>`
|
||||
* are defined with the same :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`,
|
||||
* the first one in the list is used. If no Thresholds is defined for a given
|
||||
* :ref:`RoutingPriority<envoy_api_enum_core.RoutingPriority>`, the default values
|
||||
* are used.
|
||||
*/
|
||||
'thresholds': (_envoy_api_v2_cluster_CircuitBreakers_Thresholds__Output)[];
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/cluster/filter.proto
|
||||
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
|
||||
|
||||
export interface Filter {
|
||||
/**
|
||||
* The name of the filter to instantiate. The name must match a
|
||||
* :ref:`supported filter <config_network_filters>`.
|
||||
*/
|
||||
'name'?: (string);
|
||||
/**
|
||||
* Filter specific configuration which depends on the filter being
|
||||
* instantiated. See the supported filters for further documentation.
|
||||
*/
|
||||
'typed_config'?: (_google_protobuf_Any);
|
||||
}
|
||||
|
||||
export interface Filter__Output {
|
||||
/**
|
||||
* The name of the filter to instantiate. The name must match a
|
||||
* :ref:`supported filter <config_network_filters>`.
|
||||
*/
|
||||
'name': (string);
|
||||
/**
|
||||
* Filter specific configuration which depends on the filter being
|
||||
* instantiated. See the supported filters for further documentation.
|
||||
*/
|
||||
'typed_config'?: (_google_protobuf_Any__Output);
|
||||
}
|
||||
@ -0,0 +1,300 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/cluster/outlier_detection.proto
|
||||
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
|
||||
|
||||
/**
|
||||
* See the :ref:`architecture overview <arch_overview_outlier_detection>` for
|
||||
* more information on outlier detection.
|
||||
* [#next-free-field: 21]
|
||||
*/
|
||||
export interface OutlierDetection {
|
||||
/**
|
||||
* The number of consecutive 5xx responses or local origin errors that are mapped
|
||||
* to 5xx error codes before a consecutive 5xx ejection
|
||||
* occurs. Defaults to 5.
|
||||
*/
|
||||
'consecutive_5xx'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The time interval between ejection analysis sweeps. This can result in
|
||||
* both new ejections as well as hosts being returned to service. Defaults
|
||||
* to 10000ms or 10s.
|
||||
*/
|
||||
'interval'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* The base time that a host is ejected for. The real time is equal to the
|
||||
* base time multiplied by the number of times the host has been ejected.
|
||||
* Defaults to 30000ms or 30s.
|
||||
*/
|
||||
'base_ejection_time'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* The maximum % of an upstream cluster that can be ejected due to outlier
|
||||
* detection. Defaults to 10% but will eject at least one host regardless of the value.
|
||||
*/
|
||||
'max_ejection_percent'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through consecutive 5xx. This setting can be used to disable
|
||||
* ejection or to ramp it up slowly. Defaults to 100.
|
||||
*/
|
||||
'enforcing_consecutive_5xx'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through success rate statistics. This setting can be used to
|
||||
* disable ejection or to ramp it up slowly. Defaults to 100.
|
||||
*/
|
||||
'enforcing_success_rate'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The number of hosts in a cluster that must have enough request volume to
|
||||
* detect success rate outliers. If the number of hosts is less than this
|
||||
* setting, outlier detection via success rate statistics is not performed
|
||||
* for any host in the cluster. Defaults to 5.
|
||||
*/
|
||||
'success_rate_minimum_hosts'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The minimum number of total requests that must be collected in one
|
||||
* interval (as defined by the interval duration above) to include this host
|
||||
* in success rate based outlier detection. If the volume is lower than this
|
||||
* setting, outlier detection via success rate statistics is not performed
|
||||
* for that host. Defaults to 100.
|
||||
*/
|
||||
'success_rate_request_volume'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* This factor is used to determine the ejection threshold for success rate
|
||||
* outlier ejection. The ejection threshold is the difference between the
|
||||
* mean success rate, and the product of this factor and the standard
|
||||
* deviation of the mean success rate: mean - (stdev *
|
||||
* success_rate_stdev_factor). This factor is divided by a thousand to get a
|
||||
* double. That is, if the desired factor is 1.9, the runtime value should
|
||||
* be 1900. Defaults to 1900.
|
||||
*/
|
||||
'success_rate_stdev_factor'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The number of consecutive gateway failures (502, 503, 504 status codes)
|
||||
* before a consecutive gateway failure ejection occurs. Defaults to 5.
|
||||
*/
|
||||
'consecutive_gateway_failure'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through consecutive gateway failures. This setting can be
|
||||
* used to disable ejection or to ramp it up slowly. Defaults to 0.
|
||||
*/
|
||||
'enforcing_consecutive_gateway_failure'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Determines whether to distinguish local origin failures from external errors. If set to true
|
||||
* the following configuration parameters are taken into account:
|
||||
* :ref:`consecutive_local_origin_failure<envoy_api_field_cluster.OutlierDetection.consecutive_local_origin_failure>`,
|
||||
* :ref:`enforcing_consecutive_local_origin_failure<envoy_api_field_cluster.OutlierDetection.enforcing_consecutive_local_origin_failure>`
|
||||
* and
|
||||
* :ref:`enforcing_local_origin_success_rate<envoy_api_field_cluster.OutlierDetection.enforcing_local_origin_success_rate>`.
|
||||
* Defaults to false.
|
||||
*/
|
||||
'split_external_local_origin_errors'?: (boolean);
|
||||
/**
|
||||
* The number of consecutive locally originated failures before ejection
|
||||
* occurs. Defaults to 5. Parameter takes effect only when
|
||||
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
|
||||
* is set to true.
|
||||
*/
|
||||
'consecutive_local_origin_failure'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through consecutive locally originated failures. This setting can be
|
||||
* used to disable ejection or to ramp it up slowly. Defaults to 100.
|
||||
* Parameter takes effect only when
|
||||
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
|
||||
* is set to true.
|
||||
*/
|
||||
'enforcing_consecutive_local_origin_failure'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through success rate statistics for locally originated errors.
|
||||
* This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
|
||||
* Parameter takes effect only when
|
||||
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
|
||||
* is set to true.
|
||||
*/
|
||||
'enforcing_local_origin_success_rate'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The failure percentage to use when determining failure percentage-based outlier detection. If
|
||||
* the failure percentage of a given host is greater than or equal to this value, it will be
|
||||
* ejected. Defaults to 85.
|
||||
*/
|
||||
'failure_percentage_threshold'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status is detected through
|
||||
* failure percentage statistics. This setting can be used to disable ejection or to ramp it up
|
||||
* slowly. Defaults to 0.
|
||||
*
|
||||
* [#next-major-version: setting this without setting failure_percentage_threshold should be
|
||||
* invalid in v4.]
|
||||
*/
|
||||
'enforcing_failure_percentage'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status is detected through
|
||||
* local-origin failure percentage statistics. This setting can be used to disable ejection or to
|
||||
* ramp it up slowly. Defaults to 0.
|
||||
*/
|
||||
'enforcing_failure_percentage_local_origin'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The minimum number of hosts in a cluster in order to perform failure percentage-based ejection.
|
||||
* If the total number of hosts in the cluster is less than this value, failure percentage-based
|
||||
* ejection will not be performed. Defaults to 5.
|
||||
*/
|
||||
'failure_percentage_minimum_hosts'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The minimum number of total requests that must be collected in one interval (as defined by the
|
||||
* interval duration above) to perform failure percentage-based ejection for this host. If the
|
||||
* volume is lower than this setting, failure percentage-based ejection will not be performed for
|
||||
* this host. Defaults to 50.
|
||||
*/
|
||||
'failure_percentage_request_volume'?: (_google_protobuf_UInt32Value);
|
||||
}
|
||||
|
||||
/**
|
||||
* See the :ref:`architecture overview <arch_overview_outlier_detection>` for
|
||||
* more information on outlier detection.
|
||||
* [#next-free-field: 21]
|
||||
*/
|
||||
export interface OutlierDetection__Output {
|
||||
/**
|
||||
* The number of consecutive 5xx responses or local origin errors that are mapped
|
||||
* to 5xx error codes before a consecutive 5xx ejection
|
||||
* occurs. Defaults to 5.
|
||||
*/
|
||||
'consecutive_5xx'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The time interval between ejection analysis sweeps. This can result in
|
||||
* both new ejections as well as hosts being returned to service. Defaults
|
||||
* to 10000ms or 10s.
|
||||
*/
|
||||
'interval'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* The base time that a host is ejected for. The real time is equal to the
|
||||
* base time multiplied by the number of times the host has been ejected.
|
||||
* Defaults to 30000ms or 30s.
|
||||
*/
|
||||
'base_ejection_time'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* The maximum % of an upstream cluster that can be ejected due to outlier
|
||||
* detection. Defaults to 10% but will eject at least one host regardless of the value.
|
||||
*/
|
||||
'max_ejection_percent'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through consecutive 5xx. This setting can be used to disable
|
||||
* ejection or to ramp it up slowly. Defaults to 100.
|
||||
*/
|
||||
'enforcing_consecutive_5xx'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through success rate statistics. This setting can be used to
|
||||
* disable ejection or to ramp it up slowly. Defaults to 100.
|
||||
*/
|
||||
'enforcing_success_rate'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The number of hosts in a cluster that must have enough request volume to
|
||||
* detect success rate outliers. If the number of hosts is less than this
|
||||
* setting, outlier detection via success rate statistics is not performed
|
||||
* for any host in the cluster. Defaults to 5.
|
||||
*/
|
||||
'success_rate_minimum_hosts'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The minimum number of total requests that must be collected in one
|
||||
* interval (as defined by the interval duration above) to include this host
|
||||
* in success rate based outlier detection. If the volume is lower than this
|
||||
* setting, outlier detection via success rate statistics is not performed
|
||||
* for that host. Defaults to 100.
|
||||
*/
|
||||
'success_rate_request_volume'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* This factor is used to determine the ejection threshold for success rate
|
||||
* outlier ejection. The ejection threshold is the difference between the
|
||||
* mean success rate, and the product of this factor and the standard
|
||||
* deviation of the mean success rate: mean - (stdev *
|
||||
* success_rate_stdev_factor). This factor is divided by a thousand to get a
|
||||
* double. That is, if the desired factor is 1.9, the runtime value should
|
||||
* be 1900. Defaults to 1900.
|
||||
*/
|
||||
'success_rate_stdev_factor'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The number of consecutive gateway failures (502, 503, 504 status codes)
|
||||
* before a consecutive gateway failure ejection occurs. Defaults to 5.
|
||||
*/
|
||||
'consecutive_gateway_failure'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through consecutive gateway failures. This setting can be
|
||||
* used to disable ejection or to ramp it up slowly. Defaults to 0.
|
||||
*/
|
||||
'enforcing_consecutive_gateway_failure'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Determines whether to distinguish local origin failures from external errors. If set to true
|
||||
* the following configuration parameters are taken into account:
|
||||
* :ref:`consecutive_local_origin_failure<envoy_api_field_cluster.OutlierDetection.consecutive_local_origin_failure>`,
|
||||
* :ref:`enforcing_consecutive_local_origin_failure<envoy_api_field_cluster.OutlierDetection.enforcing_consecutive_local_origin_failure>`
|
||||
* and
|
||||
* :ref:`enforcing_local_origin_success_rate<envoy_api_field_cluster.OutlierDetection.enforcing_local_origin_success_rate>`.
|
||||
* Defaults to false.
|
||||
*/
|
||||
'split_external_local_origin_errors': (boolean);
|
||||
/**
|
||||
* The number of consecutive locally originated failures before ejection
|
||||
* occurs. Defaults to 5. Parameter takes effect only when
|
||||
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
|
||||
* is set to true.
|
||||
*/
|
||||
'consecutive_local_origin_failure'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through consecutive locally originated failures. This setting can be
|
||||
* used to disable ejection or to ramp it up slowly. Defaults to 100.
|
||||
* Parameter takes effect only when
|
||||
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
|
||||
* is set to true.
|
||||
*/
|
||||
'enforcing_consecutive_local_origin_failure'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status
|
||||
* is detected through success rate statistics for locally originated errors.
|
||||
* This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.
|
||||
* Parameter takes effect only when
|
||||
* :ref:`split_external_local_origin_errors<envoy_api_field_cluster.OutlierDetection.split_external_local_origin_errors>`
|
||||
* is set to true.
|
||||
*/
|
||||
'enforcing_local_origin_success_rate'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The failure percentage to use when determining failure percentage-based outlier detection. If
|
||||
* the failure percentage of a given host is greater than or equal to this value, it will be
|
||||
* ejected. Defaults to 85.
|
||||
*/
|
||||
'failure_percentage_threshold'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status is detected through
|
||||
* failure percentage statistics. This setting can be used to disable ejection or to ramp it up
|
||||
* slowly. Defaults to 0.
|
||||
*
|
||||
* [#next-major-version: setting this without setting failure_percentage_threshold should be
|
||||
* invalid in v4.]
|
||||
*/
|
||||
'enforcing_failure_percentage'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The % chance that a host will be actually ejected when an outlier status is detected through
|
||||
* local-origin failure percentage statistics. This setting can be used to disable ejection or to
|
||||
* ramp it up slowly. Defaults to 0.
|
||||
*/
|
||||
'enforcing_failure_percentage_local_origin'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The minimum number of hosts in a cluster in order to perform failure percentage-based ejection.
|
||||
* If the total number of hosts in the cluster is less than this value, failure percentage-based
|
||||
* ejection will not be performed. Defaults to 5.
|
||||
*/
|
||||
'failure_percentage_minimum_hosts'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The minimum number of total requests that must be collected in one interval (as defined by the
|
||||
* interval duration above) to perform failure percentage-based ejection for this host. If the
|
||||
* volume is lower than this setting, failure percentage-based ejection will not be performed for
|
||||
* this host. Defaults to 50.
|
||||
*/
|
||||
'failure_percentage_request_volume'?: (_google_protobuf_UInt32Value__Output);
|
||||
}
|
||||
26
packages/grpc-js/src/generated/envoy/api/v2/core/Address.ts
Normal file
26
packages/grpc-js/src/generated/envoy/api/v2/core/Address.ts
Normal file
@ -0,0 +1,26 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/address.proto
|
||||
|
||||
import { SocketAddress as _envoy_api_v2_core_SocketAddress, SocketAddress__Output as _envoy_api_v2_core_SocketAddress__Output } from '../../../../envoy/api/v2/core/SocketAddress';
|
||||
import { Pipe as _envoy_api_v2_core_Pipe, Pipe__Output as _envoy_api_v2_core_Pipe__Output } from '../../../../envoy/api/v2/core/Pipe';
|
||||
|
||||
/**
|
||||
* Addresses specify either a logical or physical address and port, which are
|
||||
* used to tell Envoy where to bind/listen, connect to upstream and find
|
||||
* management servers.
|
||||
*/
|
||||
export interface Address {
|
||||
'socket_address'?: (_envoy_api_v2_core_SocketAddress);
|
||||
'pipe'?: (_envoy_api_v2_core_Pipe);
|
||||
'address'?: "socket_address"|"pipe";
|
||||
}
|
||||
|
||||
/**
|
||||
* Addresses specify either a logical or physical address and port, which are
|
||||
* used to tell Envoy where to bind/listen, connect to upstream and find
|
||||
* management servers.
|
||||
*/
|
||||
export interface Address__Output {
|
||||
'socket_address'?: (_envoy_api_v2_core_SocketAddress__Output);
|
||||
'pipe'?: (_envoy_api_v2_core_Pipe__Output);
|
||||
'address': "socket_address"|"pipe";
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
|
||||
|
||||
|
||||
/**
|
||||
* Aggregated Discovery Service (ADS) options. This is currently empty, but when
|
||||
* set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
|
||||
* specify that ADS is to be used.
|
||||
*/
|
||||
export interface AggregatedConfigSource {
|
||||
}
|
||||
|
||||
/**
|
||||
* Aggregated Discovery Service (ADS) options. This is currently empty, but when
|
||||
* set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
|
||||
* specify that ADS is to be used.
|
||||
*/
|
||||
export interface AggregatedConfigSource__Output {
|
||||
}
|
||||
@ -0,0 +1,135 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
|
||||
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
|
||||
import { GrpcService as _envoy_api_v2_core_GrpcService, GrpcService__Output as _envoy_api_v2_core_GrpcService__Output } from '../../../../envoy/api/v2/core/GrpcService';
|
||||
import { RateLimitSettings as _envoy_api_v2_core_RateLimitSettings, RateLimitSettings__Output as _envoy_api_v2_core_RateLimitSettings__Output } from '../../../../envoy/api/v2/core/RateLimitSettings';
|
||||
import { ApiVersion as _envoy_api_v2_core_ApiVersion } from '../../../../envoy/api/v2/core/ApiVersion';
|
||||
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
|
||||
|
||||
/**
|
||||
* APIs may be fetched via either REST or gRPC.
|
||||
*/
|
||||
export enum _envoy_api_v2_core_ApiConfigSource_ApiType {
|
||||
/**
|
||||
* Ideally this would be 'reserved 0' but one can't reserve the default
|
||||
* value. Instead we throw an exception if this is ever used.
|
||||
*/
|
||||
UNSUPPORTED_REST_LEGACY = 0,
|
||||
/**
|
||||
* 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,
|
||||
/**
|
||||
* gRPC v2 API.
|
||||
*/
|
||||
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,
|
||||
}
|
||||
|
||||
/**
|
||||
* API configuration source. This identifies the API type and cluster that Envoy
|
||||
* will use to fetch an xDS API.
|
||||
* [#next-free-field: 9]
|
||||
*/
|
||||
export interface ApiConfigSource {
|
||||
/**
|
||||
* API type (gRPC, REST, delta gRPC)
|
||||
*/
|
||||
'api_type'?: (_envoy_api_v2_core_ApiConfigSource_ApiType | keyof typeof _envoy_api_v2_core_ApiConfigSource_ApiType);
|
||||
/**
|
||||
* Cluster names should be used only with REST. If > 1
|
||||
* cluster is defined, clusters will be cycled through if any kind of failure
|
||||
* occurs.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* The cluster with name ``cluster_name`` must be statically defined and its
|
||||
* type must not be ``EDS``.
|
||||
*/
|
||||
'cluster_names'?: (string)[];
|
||||
/**
|
||||
* For REST APIs, the delay between successive polls.
|
||||
*/
|
||||
'refresh_delay'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Multiple gRPC services be provided for GRPC. If > 1 cluster is defined,
|
||||
* services will be cycled through if any kind of failure occurs.
|
||||
*/
|
||||
'grpc_services'?: (_envoy_api_v2_core_GrpcService)[];
|
||||
/**
|
||||
* For REST APIs, the request timeout. If not set, a default value of 1s will be used.
|
||||
*/
|
||||
'request_timeout'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* For GRPC APIs, the rate limit settings. If present, discovery requests made by Envoy will be
|
||||
* rate limited.
|
||||
*/
|
||||
'rate_limit_settings'?: (_envoy_api_v2_core_RateLimitSettings);
|
||||
/**
|
||||
* Skip the node identifier in subsequent discovery requests for streaming gRPC config types.
|
||||
*/
|
||||
'set_node_on_first_message_only'?: (boolean);
|
||||
/**
|
||||
* API version for xDS transport protocol. This describes the xDS gRPC/REST
|
||||
* endpoint and version of [Delta]DiscoveryRequest/Response used on the wire.
|
||||
*/
|
||||
'transport_api_version'?: (_envoy_api_v2_core_ApiVersion | keyof typeof _envoy_api_v2_core_ApiVersion);
|
||||
}
|
||||
|
||||
/**
|
||||
* API configuration source. This identifies the API type and cluster that Envoy
|
||||
* will use to fetch an xDS API.
|
||||
* [#next-free-field: 9]
|
||||
*/
|
||||
export interface ApiConfigSource__Output {
|
||||
/**
|
||||
* API type (gRPC, REST, delta gRPC)
|
||||
*/
|
||||
'api_type': (keyof typeof _envoy_api_v2_core_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
|
||||
* occurs.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* The cluster with name ``cluster_name`` must be statically defined and its
|
||||
* type must not be ``EDS``.
|
||||
*/
|
||||
'cluster_names': (string)[];
|
||||
/**
|
||||
* For REST APIs, the delay between successive polls.
|
||||
*/
|
||||
'refresh_delay'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Multiple gRPC services be provided for GRPC. If > 1 cluster is defined,
|
||||
* services will be cycled through if any kind of failure occurs.
|
||||
*/
|
||||
'grpc_services': (_envoy_api_v2_core_GrpcService__Output)[];
|
||||
/**
|
||||
* For REST APIs, the request timeout. If not set, a default value of 1s will be used.
|
||||
*/
|
||||
'request_timeout'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* For GRPC APIs, the rate limit settings. If present, discovery requests made by Envoy will be
|
||||
* rate limited.
|
||||
*/
|
||||
'rate_limit_settings'?: (_envoy_api_v2_core_RateLimitSettings__Output);
|
||||
/**
|
||||
* Skip the node identifier in subsequent discovery requests for streaming gRPC config types.
|
||||
*/
|
||||
'set_node_on_first_message_only': (boolean);
|
||||
/**
|
||||
* API version for xDS transport protocol. This describes the xDS gRPC/REST
|
||||
* endpoint and version of [Delta]DiscoveryRequest/Response used on the wire.
|
||||
*/
|
||||
'transport_api_version': (keyof typeof _envoy_api_v2_core_ApiVersion);
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
|
||||
|
||||
/**
|
||||
* xDS API version. This is used to describe both resource and transport
|
||||
* protocol versions (in distinct configuration fields).
|
||||
*/
|
||||
export enum 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,
|
||||
/**
|
||||
* Use xDS v2 API.
|
||||
*/
|
||||
V2 = 1,
|
||||
/**
|
||||
* Use xDS v3 API.
|
||||
*/
|
||||
V3 = 2,
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
|
||||
import { RemoteDataSource as _envoy_api_v2_core_RemoteDataSource, RemoteDataSource__Output as _envoy_api_v2_core_RemoteDataSource__Output } from '../../../../envoy/api/v2/core/RemoteDataSource';
|
||||
|
||||
/**
|
||||
* Async data source which support async data fetch.
|
||||
*/
|
||||
export interface AsyncDataSource {
|
||||
/**
|
||||
* Local async data source.
|
||||
*/
|
||||
'local'?: (_envoy_api_v2_core_DataSource);
|
||||
/**
|
||||
* Remote async data source.
|
||||
*/
|
||||
'remote'?: (_envoy_api_v2_core_RemoteDataSource);
|
||||
'specifier'?: "local"|"remote";
|
||||
}
|
||||
|
||||
/**
|
||||
* Async data source which support async data fetch.
|
||||
*/
|
||||
export interface AsyncDataSource__Output {
|
||||
/**
|
||||
* Local async data source.
|
||||
*/
|
||||
'local'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
/**
|
||||
* Remote async data source.
|
||||
*/
|
||||
'remote'?: (_envoy_api_v2_core_RemoteDataSource__Output);
|
||||
'specifier': "local"|"remote";
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/backoff.proto
|
||||
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
|
||||
|
||||
/**
|
||||
* Configuration defining a jittered exponential back off strategy.
|
||||
*/
|
||||
export interface BackoffStrategy {
|
||||
/**
|
||||
* The base interval to be used for the next back off computation. It should
|
||||
* be greater than zero and less than or equal to :ref:`max_interval
|
||||
* <envoy_api_field_core.BackoffStrategy.max_interval>`.
|
||||
*/
|
||||
'base_interval'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Specifies the maximum interval between retries. This parameter is optional,
|
||||
* but must be greater than or equal to the :ref:`base_interval
|
||||
* <envoy_api_field_core.BackoffStrategy.base_interval>` if set. The default
|
||||
* is 10 times the :ref:`base_interval
|
||||
* <envoy_api_field_core.BackoffStrategy.base_interval>`.
|
||||
*/
|
||||
'max_interval'?: (_google_protobuf_Duration);
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration defining a jittered exponential back off strategy.
|
||||
*/
|
||||
export interface BackoffStrategy__Output {
|
||||
/**
|
||||
* The base interval to be used for the next back off computation. It should
|
||||
* be greater than zero and less than or equal to :ref:`max_interval
|
||||
* <envoy_api_field_core.BackoffStrategy.max_interval>`.
|
||||
*/
|
||||
'base_interval'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Specifies the maximum interval between retries. This parameter is optional,
|
||||
* but must be greater than or equal to the :ref:`base_interval
|
||||
* <envoy_api_field_core.BackoffStrategy.base_interval>` if set. The default
|
||||
* is 10 times the :ref:`base_interval
|
||||
* <envoy_api_field_core.BackoffStrategy.base_interval>`.
|
||||
*/
|
||||
'max_interval'?: (_google_protobuf_Duration__Output);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/address.proto
|
||||
|
||||
import { SocketAddress as _envoy_api_v2_core_SocketAddress, SocketAddress__Output as _envoy_api_v2_core_SocketAddress__Output } from '../../../../envoy/api/v2/core/SocketAddress';
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
import { SocketOption as _envoy_api_v2_core_SocketOption, SocketOption__Output as _envoy_api_v2_core_SocketOption__Output } from '../../../../envoy/api/v2/core/SocketOption';
|
||||
|
||||
export interface BindConfig {
|
||||
/**
|
||||
* The address to bind to when creating a socket.
|
||||
*/
|
||||
'source_address'?: (_envoy_api_v2_core_SocketAddress);
|
||||
/**
|
||||
* Whether to set the *IP_FREEBIND* option when creating the socket. When this
|
||||
* flag is set to true, allows the :ref:`source_address
|
||||
* <envoy_api_field_UpstreamBindConfig.source_address>` to be an IP address
|
||||
* that is not configured on the system running Envoy. When this flag is set
|
||||
* to false, the option *IP_FREEBIND* is disabled on the socket. When this
|
||||
* flag is not set (default), the socket is not modified, i.e. the option is
|
||||
* neither enabled nor disabled.
|
||||
*/
|
||||
'freebind'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Additional socket options that may not be present in Envoy source code or
|
||||
* precompiled binaries.
|
||||
*/
|
||||
'socket_options'?: (_envoy_api_v2_core_SocketOption)[];
|
||||
}
|
||||
|
||||
export interface BindConfig__Output {
|
||||
/**
|
||||
* The address to bind to when creating a socket.
|
||||
*/
|
||||
'source_address'?: (_envoy_api_v2_core_SocketAddress__Output);
|
||||
/**
|
||||
* Whether to set the *IP_FREEBIND* option when creating the socket. When this
|
||||
* flag is set to true, allows the :ref:`source_address
|
||||
* <envoy_api_field_UpstreamBindConfig.source_address>` to be an IP address
|
||||
* that is not configured on the system running Envoy. When this flag is set
|
||||
* to false, the option *IP_FREEBIND* is disabled on the socket. When this
|
||||
* flag is not set (default), the socket is not modified, i.e. the option is
|
||||
* neither enabled nor disabled.
|
||||
*/
|
||||
'freebind'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Additional socket options that may not be present in Envoy source code or
|
||||
* precompiled binaries.
|
||||
*/
|
||||
'socket_options': (_envoy_api_v2_core_SocketOption__Output)[];
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { SemanticVersion as _envoy_type_SemanticVersion, SemanticVersion__Output as _envoy_type_SemanticVersion__Output } from '../../../../envoy/type/SemanticVersion';
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
|
||||
/**
|
||||
* BuildVersion combines SemVer version of extension with free-form build information
|
||||
* (i.e. 'alpha', 'private-build') as a set of strings.
|
||||
*/
|
||||
export interface BuildVersion {
|
||||
/**
|
||||
* SemVer version of extension.
|
||||
*/
|
||||
'version'?: (_envoy_type_SemanticVersion);
|
||||
/**
|
||||
* Free-form build information.
|
||||
* Envoy defines several well known keys in the source/common/common/version.h file
|
||||
*/
|
||||
'metadata'?: (_google_protobuf_Struct);
|
||||
}
|
||||
|
||||
/**
|
||||
* BuildVersion combines SemVer version of extension with free-form build information
|
||||
* (i.e. 'alpha', 'private-build') as a set of strings.
|
||||
*/
|
||||
export interface BuildVersion__Output {
|
||||
/**
|
||||
* SemVer version of extension.
|
||||
*/
|
||||
'version'?: (_envoy_type_SemanticVersion__Output);
|
||||
/**
|
||||
* Free-form build information.
|
||||
* Envoy defines several well known keys in the source/common/common/version.h file
|
||||
*/
|
||||
'metadata'?: (_google_protobuf_Struct__Output);
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/address.proto
|
||||
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
|
||||
/**
|
||||
* CidrRange specifies an IP Address and a prefix length to construct
|
||||
* the subnet mask for a `CIDR <https://tools.ietf.org/html/rfc4632>`_ range.
|
||||
*/
|
||||
export interface CidrRange {
|
||||
/**
|
||||
* IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
|
||||
*/
|
||||
'address_prefix'?: (string);
|
||||
/**
|
||||
* Length of prefix, e.g. 0, 32.
|
||||
*/
|
||||
'prefix_len'?: (_google_protobuf_UInt32Value);
|
||||
}
|
||||
|
||||
/**
|
||||
* CidrRange specifies an IP Address and a prefix length to construct
|
||||
* the subnet mask for a `CIDR <https://tools.ietf.org/html/rfc4632>`_ range.
|
||||
*/
|
||||
export interface CidrRange__Output {
|
||||
/**
|
||||
* IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``.
|
||||
*/
|
||||
'address_prefix': (string);
|
||||
/**
|
||||
* Length of prefix, e.g. 0, 32.
|
||||
*/
|
||||
'prefix_len'?: (_google_protobuf_UInt32Value__Output);
|
||||
}
|
||||
143
packages/grpc-js/src/generated/envoy/api/v2/core/ConfigSource.ts
Normal file
143
packages/grpc-js/src/generated/envoy/api/v2/core/ConfigSource.ts
Normal file
@ -0,0 +1,143 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
|
||||
|
||||
import { ApiConfigSource as _envoy_api_v2_core_ApiConfigSource, ApiConfigSource__Output as _envoy_api_v2_core_ApiConfigSource__Output } from '../../../../envoy/api/v2/core/ApiConfigSource';
|
||||
import { AggregatedConfigSource as _envoy_api_v2_core_AggregatedConfigSource, AggregatedConfigSource__Output as _envoy_api_v2_core_AggregatedConfigSource__Output } from '../../../../envoy/api/v2/core/AggregatedConfigSource';
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
|
||||
import { SelfConfigSource as _envoy_api_v2_core_SelfConfigSource, SelfConfigSource__Output as _envoy_api_v2_core_SelfConfigSource__Output } from '../../../../envoy/api/v2/core/SelfConfigSource';
|
||||
import { ApiVersion as _envoy_api_v2_core_ApiVersion } from '../../../../envoy/api/v2/core/ApiVersion';
|
||||
|
||||
/**
|
||||
* Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
|
||||
* <config_cluster_manager>`, :ref:`routes
|
||||
* <envoy_api_msg_RouteConfiguration>`, :ref:`endpoints
|
||||
* <arch_overview_service_discovery>` etc. may either be sourced from the
|
||||
* filesystem or from an xDS API source. Filesystem configs are watched with
|
||||
* inotify for updates.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface ConfigSource {
|
||||
/**
|
||||
* Path on the filesystem to source and watch for configuration updates.
|
||||
* When sourcing configuration for :ref:`secret <envoy_api_msg_auth.Secret>`,
|
||||
* the certificate and key files are also watched for updates.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* The path to the source must exist at config load time.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* Envoy will only watch the file path for *moves.* This is because in general only moves
|
||||
* are atomic. The same method of swapping files as is demonstrated in the
|
||||
* :ref:`runtime documentation <config_runtime_symbolic_link_swap>` can be used here also.
|
||||
*/
|
||||
'path'?: (string);
|
||||
/**
|
||||
* API configuration source.
|
||||
*/
|
||||
'api_config_source'?: (_envoy_api_v2_core_ApiConfigSource);
|
||||
/**
|
||||
* When set, ADS will be used to fetch resources. The ADS API configuration
|
||||
* source in the bootstrap configuration is used.
|
||||
*/
|
||||
'ads'?: (_envoy_api_v2_core_AggregatedConfigSource);
|
||||
/**
|
||||
* When this timeout is specified, Envoy will wait no longer than the specified time for first
|
||||
* config response on this xDS subscription during the :ref:`initialization process
|
||||
* <arch_overview_initialization>`. After reaching the timeout, Envoy will move to the next
|
||||
* initialization phase, even if the first config is not delivered yet. The timer is activated
|
||||
* when the xDS API subscription starts, and is disarmed on first config update or on error. 0
|
||||
* means no timeout - Envoy will wait indefinitely for the first xDS config (unless another
|
||||
* timeout applies). The default is 15s.
|
||||
*/
|
||||
'initial_fetch_timeout'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* When set, the client will access the resources from the same server it got the
|
||||
* ConfigSource from, although not necessarily from the same stream. This is similar to the
|
||||
* :ref:`ads<envoy_api_field.ConfigSource.ads>` field, except that the client may use a
|
||||
* different stream to the same server. As a result, this field can be used for things
|
||||
* like LRS that cannot be sent on an ADS stream. It can also be used to link from (e.g.)
|
||||
* LDS to RDS on the same server without requiring the management server to know its name
|
||||
* or required credentials.
|
||||
* [#next-major-version: In xDS v3, consider replacing the ads field with this one, since
|
||||
* this field can implicitly mean to use the same stream in the case where the ConfigSource
|
||||
* is provided via ADS and the specified data can also be obtained via ADS.]
|
||||
*/
|
||||
'self'?: (_envoy_api_v2_core_SelfConfigSource);
|
||||
/**
|
||||
* API version for xDS resources. This implies the type URLs that the client
|
||||
* will request for resources and the resource type that the client will in
|
||||
* turn expect to be delivered.
|
||||
*/
|
||||
'resource_api_version'?: (_envoy_api_v2_core_ApiVersion | keyof typeof _envoy_api_v2_core_ApiVersion);
|
||||
'config_source_specifier'?: "path"|"api_config_source"|"ads"|"self";
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
|
||||
* <config_cluster_manager>`, :ref:`routes
|
||||
* <envoy_api_msg_RouteConfiguration>`, :ref:`endpoints
|
||||
* <arch_overview_service_discovery>` etc. may either be sourced from the
|
||||
* filesystem or from an xDS API source. Filesystem configs are watched with
|
||||
* inotify for updates.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface ConfigSource__Output {
|
||||
/**
|
||||
* Path on the filesystem to source and watch for configuration updates.
|
||||
* When sourcing configuration for :ref:`secret <envoy_api_msg_auth.Secret>`,
|
||||
* the certificate and key files are also watched for updates.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* The path to the source must exist at config load time.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* Envoy will only watch the file path for *moves.* This is because in general only moves
|
||||
* are atomic. The same method of swapping files as is demonstrated in the
|
||||
* :ref:`runtime documentation <config_runtime_symbolic_link_swap>` can be used here also.
|
||||
*/
|
||||
'path'?: (string);
|
||||
/**
|
||||
* API configuration source.
|
||||
*/
|
||||
'api_config_source'?: (_envoy_api_v2_core_ApiConfigSource__Output);
|
||||
/**
|
||||
* When set, ADS will be used to fetch resources. The ADS API configuration
|
||||
* source in the bootstrap configuration is used.
|
||||
*/
|
||||
'ads'?: (_envoy_api_v2_core_AggregatedConfigSource__Output);
|
||||
/**
|
||||
* When this timeout is specified, Envoy will wait no longer than the specified time for first
|
||||
* config response on this xDS subscription during the :ref:`initialization process
|
||||
* <arch_overview_initialization>`. After reaching the timeout, Envoy will move to the next
|
||||
* initialization phase, even if the first config is not delivered yet. The timer is activated
|
||||
* when the xDS API subscription starts, and is disarmed on first config update or on error. 0
|
||||
* means no timeout - Envoy will wait indefinitely for the first xDS config (unless another
|
||||
* timeout applies). The default is 15s.
|
||||
*/
|
||||
'initial_fetch_timeout'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* When set, the client will access the resources from the same server it got the
|
||||
* ConfigSource from, although not necessarily from the same stream. This is similar to the
|
||||
* :ref:`ads<envoy_api_field.ConfigSource.ads>` field, except that the client may use a
|
||||
* different stream to the same server. As a result, this field can be used for things
|
||||
* like LRS that cannot be sent on an ADS stream. It can also be used to link from (e.g.)
|
||||
* LDS to RDS on the same server without requiring the management server to know its name
|
||||
* or required credentials.
|
||||
* [#next-major-version: In xDS v3, consider replacing the ads field with this one, since
|
||||
* this field can implicitly mean to use the same stream in the case where the ConfigSource
|
||||
* is provided via ADS and the specified data can also be obtained via ADS.]
|
||||
*/
|
||||
'self'?: (_envoy_api_v2_core_SelfConfigSource__Output);
|
||||
/**
|
||||
* API version for xDS resources. This implies the type URLs that the client
|
||||
* will request for resources and the resource type that the client will in
|
||||
* turn expect to be delivered.
|
||||
*/
|
||||
'resource_api_version': (keyof typeof _envoy_api_v2_core_ApiVersion);
|
||||
'config_source_specifier': "path"|"api_config_source"|"ads"|"self";
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
|
||||
/**
|
||||
* Identifies a specific ControlPlane instance that Envoy is connected to.
|
||||
*/
|
||||
export interface ControlPlane {
|
||||
/**
|
||||
* An opaque control plane identifier that uniquely identifies an instance
|
||||
* of control plane. This can be used to identify which control plane instance,
|
||||
* the Envoy is connected to.
|
||||
*/
|
||||
'identifier'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Identifies a specific ControlPlane instance that Envoy is connected to.
|
||||
*/
|
||||
export interface ControlPlane__Output {
|
||||
/**
|
||||
* An opaque control plane identifier that uniquely identifies an instance
|
||||
* of control plane. This can be used to identify which control plane instance,
|
||||
* the Envoy is connected to.
|
||||
*/
|
||||
'identifier': (string);
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
|
||||
/**
|
||||
* Data source consisting of either a file or an inline value.
|
||||
*/
|
||||
export interface DataSource {
|
||||
/**
|
||||
* Local filesystem data source.
|
||||
*/
|
||||
'filename'?: (string);
|
||||
/**
|
||||
* Bytes inlined in the configuration.
|
||||
*/
|
||||
'inline_bytes'?: (Buffer | Uint8Array | string);
|
||||
/**
|
||||
* String inlined in the configuration.
|
||||
*/
|
||||
'inline_string'?: (string);
|
||||
'specifier'?: "filename"|"inline_bytes"|"inline_string";
|
||||
}
|
||||
|
||||
/**
|
||||
* Data source consisting of either a file or an inline value.
|
||||
*/
|
||||
export interface DataSource__Output {
|
||||
/**
|
||||
* Local filesystem data source.
|
||||
*/
|
||||
'filename'?: (string);
|
||||
/**
|
||||
* Bytes inlined in the configuration.
|
||||
*/
|
||||
'inline_bytes'?: (Buffer);
|
||||
/**
|
||||
* String inlined in the configuration.
|
||||
*/
|
||||
'inline_string'?: (string);
|
||||
'specifier': "filename"|"inline_bytes"|"inline_string";
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/event_service_config.proto
|
||||
|
||||
import { GrpcService as _envoy_api_v2_core_GrpcService, GrpcService__Output as _envoy_api_v2_core_GrpcService__Output } from '../../../../envoy/api/v2/core/GrpcService';
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* Configuration of the event reporting service endpoint.
|
||||
*/
|
||||
export interface EventServiceConfig {
|
||||
/**
|
||||
* Specifies the gRPC service that hosts the event reporting service.
|
||||
*/
|
||||
'grpc_service'?: (_envoy_api_v2_core_GrpcService);
|
||||
'config_source_specifier'?: "grpc_service";
|
||||
}
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* Configuration of the event reporting service endpoint.
|
||||
*/
|
||||
export interface EventServiceConfig__Output {
|
||||
/**
|
||||
* Specifies the gRPC service that hosts the event reporting service.
|
||||
*/
|
||||
'grpc_service'?: (_envoy_api_v2_core_GrpcService__Output);
|
||||
'config_source_specifier': "grpc_service";
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { BuildVersion as _envoy_api_v2_core_BuildVersion, BuildVersion__Output as _envoy_api_v2_core_BuildVersion__Output } from '../../../../envoy/api/v2/core/BuildVersion';
|
||||
|
||||
/**
|
||||
* Version and identification for an Envoy extension.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface Extension {
|
||||
/**
|
||||
* This is the name of the Envoy filter as specified in the Envoy
|
||||
* configuration, e.g. envoy.filters.http.router, com.acme.widget.
|
||||
*/
|
||||
'name'?: (string);
|
||||
/**
|
||||
* Category of the extension.
|
||||
* Extension category names use reverse DNS notation. For instance "envoy.filters.listener"
|
||||
* for Envoy's built-in listener filters or "com.acme.filters.http" for HTTP filters from
|
||||
* acme.com vendor.
|
||||
* [#comment:TODO(yanavlasov): Link to the doc with existing envoy category names.]
|
||||
*/
|
||||
'category'?: (string);
|
||||
/**
|
||||
* [#not-implemented-hide:] Type descriptor of extension configuration proto.
|
||||
* [#comment:TODO(yanavlasov): Link to the doc with existing configuration protos.]
|
||||
* [#comment:TODO(yanavlasov): Add tests when PR #9391 lands.]
|
||||
*/
|
||||
'type_descriptor'?: (string);
|
||||
/**
|
||||
* The version is a property of the extension and maintained independently
|
||||
* of other extensions and the Envoy API.
|
||||
* This field is not set when extension did not provide version information.
|
||||
*/
|
||||
'version'?: (_envoy_api_v2_core_BuildVersion);
|
||||
/**
|
||||
* Indicates that the extension is present but was disabled via dynamic configuration.
|
||||
*/
|
||||
'disabled'?: (boolean);
|
||||
}
|
||||
|
||||
/**
|
||||
* Version and identification for an Envoy extension.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface Extension__Output {
|
||||
/**
|
||||
* This is the name of the Envoy filter as specified in the Envoy
|
||||
* configuration, e.g. envoy.filters.http.router, com.acme.widget.
|
||||
*/
|
||||
'name': (string);
|
||||
/**
|
||||
* Category of the extension.
|
||||
* Extension category names use reverse DNS notation. For instance "envoy.filters.listener"
|
||||
* for Envoy's built-in listener filters or "com.acme.filters.http" for HTTP filters from
|
||||
* acme.com vendor.
|
||||
* [#comment:TODO(yanavlasov): Link to the doc with existing envoy category names.]
|
||||
*/
|
||||
'category': (string);
|
||||
/**
|
||||
* [#not-implemented-hide:] Type descriptor of extension configuration proto.
|
||||
* [#comment:TODO(yanavlasov): Link to the doc with existing configuration protos.]
|
||||
* [#comment:TODO(yanavlasov): Add tests when PR #9391 lands.]
|
||||
*/
|
||||
'type_descriptor': (string);
|
||||
/**
|
||||
* The version is a property of the extension and maintained independently
|
||||
* of other extensions and the Envoy API.
|
||||
* This field is not set when extension did not provide version information.
|
||||
*/
|
||||
'version'?: (_envoy_api_v2_core_BuildVersion__Output);
|
||||
/**
|
||||
* Indicates that the extension is present but was disabled via dynamic configuration.
|
||||
*/
|
||||
'disabled': (boolean);
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
|
||||
|
||||
import { Http2ProtocolOptions as _envoy_api_v2_core_Http2ProtocolOptions, Http2ProtocolOptions__Output as _envoy_api_v2_core_Http2ProtocolOptions__Output } from '../../../../envoy/api/v2/core/Http2ProtocolOptions';
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
export interface GrpcProtocolOptions {
|
||||
'http2_protocol_options'?: (_envoy_api_v2_core_Http2ProtocolOptions);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
export interface GrpcProtocolOptions__Output {
|
||||
'http2_protocol_options'?: (_envoy_api_v2_core_Http2ProtocolOptions__Output);
|
||||
}
|
||||
481
packages/grpc-js/src/generated/envoy/api/v2/core/GrpcService.ts
Normal file
481
packages/grpc-js/src/generated/envoy/api/v2/core/GrpcService.ts
Normal file
@ -0,0 +1,481 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/grpc_service.proto
|
||||
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
|
||||
import { HeaderValue as _envoy_api_v2_core_HeaderValue, HeaderValue__Output as _envoy_api_v2_core_HeaderValue__Output } from '../../../../envoy/api/v2/core/HeaderValue';
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
import { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
|
||||
import { Empty as _google_protobuf_Empty, Empty__Output as _google_protobuf_Empty__Output } from '../../../../google/protobuf/Empty';
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
|
||||
import { Long } from '@grpc/proto-loader';
|
||||
|
||||
/**
|
||||
* [#next-free-field: 8]
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials {
|
||||
/**
|
||||
* Access token credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#ad3a80da696ffdaea943f0f858d7a360d.
|
||||
*/
|
||||
'access_token'?: (string);
|
||||
/**
|
||||
* Google Compute Engine credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61
|
||||
*/
|
||||
'google_compute_engine'?: (_google_protobuf_Empty);
|
||||
/**
|
||||
* Google refresh token credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a96901c997b91bc6513b08491e0dca37c.
|
||||
*/
|
||||
'google_refresh_token'?: (string);
|
||||
/**
|
||||
* Service Account JWT Access credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a92a9f959d6102461f66ee973d8e9d3aa.
|
||||
*/
|
||||
'service_account_jwt_access'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials);
|
||||
/**
|
||||
* Google IAM credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a9fc1fc101b41e680d47028166e76f9d0.
|
||||
*/
|
||||
'google_iam'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials);
|
||||
/**
|
||||
* Custom authenticator credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a823c6a4b19ffc71fb33e90154ee2ad07.
|
||||
* https://grpc.io/docs/guides/auth.html#extending-grpc-to-support-other-authentication-mechanisms.
|
||||
*/
|
||||
'from_plugin'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin);
|
||||
/**
|
||||
* Custom security token service which implements OAuth 2.0 token exchange.
|
||||
* https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16
|
||||
* See https://github.com/grpc/grpc/pull/19587.
|
||||
*/
|
||||
'sts_service'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsService);
|
||||
'credential_specifier'?: "access_token"|"google_compute_engine"|"google_refresh_token"|"service_account_jwt_access"|"google_iam"|"from_plugin"|"sts_service";
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 8]
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials__Output {
|
||||
/**
|
||||
* Access token credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#ad3a80da696ffdaea943f0f858d7a360d.
|
||||
*/
|
||||
'access_token'?: (string);
|
||||
/**
|
||||
* Google Compute Engine credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61
|
||||
*/
|
||||
'google_compute_engine'?: (_google_protobuf_Empty__Output);
|
||||
/**
|
||||
* Google refresh token credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a96901c997b91bc6513b08491e0dca37c.
|
||||
*/
|
||||
'google_refresh_token'?: (string);
|
||||
/**
|
||||
* Service Account JWT Access credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a92a9f959d6102461f66ee973d8e9d3aa.
|
||||
*/
|
||||
'service_account_jwt_access'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials__Output);
|
||||
/**
|
||||
* Google IAM credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a9fc1fc101b41e680d47028166e76f9d0.
|
||||
*/
|
||||
'google_iam'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials__Output);
|
||||
/**
|
||||
* Custom authenticator credentials.
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a823c6a4b19ffc71fb33e90154ee2ad07.
|
||||
* https://grpc.io/docs/guides/auth.html#extending-grpc-to-support-other-authentication-mechanisms.
|
||||
*/
|
||||
'from_plugin'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin__Output);
|
||||
/**
|
||||
* Custom security token service which implements OAuth 2.0 token exchange.
|
||||
* https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16
|
||||
* See https://github.com/grpc/grpc/pull/19587.
|
||||
*/
|
||||
'sts_service'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsService__Output);
|
||||
'credential_specifier': "access_token"|"google_compute_engine"|"google_refresh_token"|"service_account_jwt_access"|"google_iam"|"from_plugin"|"sts_service";
|
||||
}
|
||||
|
||||
/**
|
||||
* See https://grpc.io/docs/guides/auth.html#credential-types to understand Channel and Call
|
||||
* credential types.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_ChannelCredentials {
|
||||
'ssl_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_SslCredentials);
|
||||
/**
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61
|
||||
*/
|
||||
'google_default'?: (_google_protobuf_Empty);
|
||||
'local_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_GoogleLocalCredentials);
|
||||
'credential_specifier'?: "ssl_credentials"|"google_default"|"local_credentials";
|
||||
}
|
||||
|
||||
/**
|
||||
* See https://grpc.io/docs/guides/auth.html#credential-types to understand Channel and Call
|
||||
* credential types.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_ChannelCredentials__Output {
|
||||
'ssl_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_SslCredentials__Output);
|
||||
/**
|
||||
* https://grpc.io/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61
|
||||
*/
|
||||
'google_default'?: (_google_protobuf_Empty__Output);
|
||||
'local_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_GoogleLocalCredentials__Output);
|
||||
'credential_specifier': "ssl_credentials"|"google_default"|"local_credentials";
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_GrpcService_EnvoyGrpc {
|
||||
/**
|
||||
* The name of the upstream gRPC cluster. SSL credentials will be supplied
|
||||
* in the :ref:`Cluster <envoy_api_msg_Cluster>` :ref:`transport_socket
|
||||
* <envoy_api_field_Cluster.transport_socket>`.
|
||||
*/
|
||||
'cluster_name'?: (string);
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_GrpcService_EnvoyGrpc__Output {
|
||||
/**
|
||||
* The name of the upstream gRPC cluster. SSL credentials will be supplied
|
||||
* in the :ref:`Cluster <envoy_api_msg_Cluster>` :ref:`transport_socket
|
||||
* <envoy_api_field_Cluster.transport_socket>`.
|
||||
*/
|
||||
'cluster_name': (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc {
|
||||
/**
|
||||
* The target URI when using the `Google C++ gRPC client
|
||||
* <https://github.com/grpc/grpc>`_. SSL credentials will be supplied in
|
||||
* :ref:`channel_credentials <envoy_api_field_core.GrpcService.GoogleGrpc.channel_credentials>`.
|
||||
*/
|
||||
'target_uri'?: (string);
|
||||
'channel_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_ChannelCredentials);
|
||||
/**
|
||||
* A set of call credentials that can be composed with `channel credentials
|
||||
* <https://grpc.io/docs/guides/auth.html#credential-types>`_.
|
||||
*/
|
||||
'call_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials)[];
|
||||
/**
|
||||
* The human readable prefix to use when emitting statistics for the gRPC
|
||||
* service.
|
||||
*
|
||||
* .. csv-table::
|
||||
* :header: Name, Type, Description
|
||||
* :widths: 1, 1, 2
|
||||
*
|
||||
* streams_total, Counter, Total number of streams opened
|
||||
* streams_closed_<gRPC status code>, Counter, Total streams closed with <gRPC status code>
|
||||
*/
|
||||
'stat_prefix'?: (string);
|
||||
/**
|
||||
* The name of the Google gRPC credentials factory to use. This must have been registered with
|
||||
* Envoy. If this is empty, a default credentials factory will be used that sets up channel
|
||||
* credentials based on other configuration parameters.
|
||||
*/
|
||||
'credentials_factory_name'?: (string);
|
||||
/**
|
||||
* Additional configuration for site-specific customizations of the Google
|
||||
* gRPC library.
|
||||
*/
|
||||
'config'?: (_google_protobuf_Struct);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc__Output {
|
||||
/**
|
||||
* The target URI when using the `Google C++ gRPC client
|
||||
* <https://github.com/grpc/grpc>`_. SSL credentials will be supplied in
|
||||
* :ref:`channel_credentials <envoy_api_field_core.GrpcService.GoogleGrpc.channel_credentials>`.
|
||||
*/
|
||||
'target_uri': (string);
|
||||
'channel_credentials'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc_ChannelCredentials__Output);
|
||||
/**
|
||||
* A set of call credentials that can be composed with `channel credentials
|
||||
* <https://grpc.io/docs/guides/auth.html#credential-types>`_.
|
||||
*/
|
||||
'call_credentials': (_envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials__Output)[];
|
||||
/**
|
||||
* The human readable prefix to use when emitting statistics for the gRPC
|
||||
* service.
|
||||
*
|
||||
* .. csv-table::
|
||||
* :header: Name, Type, Description
|
||||
* :widths: 1, 1, 2
|
||||
*
|
||||
* streams_total, Counter, Total number of streams opened
|
||||
* streams_closed_<gRPC status code>, Counter, Total streams closed with <gRPC status code>
|
||||
*/
|
||||
'stat_prefix': (string);
|
||||
/**
|
||||
* The name of the Google gRPC credentials factory to use. This must have been registered with
|
||||
* Envoy. If this is empty, a default credentials factory will be used that sets up channel
|
||||
* credentials based on other configuration parameters.
|
||||
*/
|
||||
'credentials_factory_name': (string);
|
||||
/**
|
||||
* Additional configuration for site-specific customizations of the Google
|
||||
* gRPC library.
|
||||
*/
|
||||
'config'?: (_google_protobuf_Struct__Output);
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials {
|
||||
'authorization_token'?: (string);
|
||||
'authority_selector'?: (string);
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials__Output {
|
||||
'authorization_token': (string);
|
||||
'authority_selector': (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Local channel credentials. Only UDS is supported for now.
|
||||
* See https://github.com/grpc/grpc/pull/15909.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_GoogleLocalCredentials {
|
||||
}
|
||||
|
||||
/**
|
||||
* Local channel credentials. Only UDS is supported for now.
|
||||
* See https://github.com/grpc/grpc/pull/15909.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_GoogleLocalCredentials__Output {
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin {
|
||||
'name'?: (string);
|
||||
'config'?: (_google_protobuf_Struct);
|
||||
'typed_config'?: (_google_protobuf_Any);
|
||||
'config_type'?: "config"|"typed_config";
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin__Output {
|
||||
'name': (string);
|
||||
'config'?: (_google_protobuf_Struct__Output);
|
||||
'typed_config'?: (_google_protobuf_Any__Output);
|
||||
'config_type': "config"|"typed_config";
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials {
|
||||
'json_key'?: (string);
|
||||
'token_lifetime_seconds'?: (number | string | Long);
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials__Output {
|
||||
'json_key': (string);
|
||||
'token_lifetime_seconds': (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* See https://grpc.io/grpc/cpp/structgrpc_1_1_ssl_credentials_options.html.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_SslCredentials {
|
||||
/**
|
||||
* PEM encoded server root certificates.
|
||||
*/
|
||||
'root_certs'?: (_envoy_api_v2_core_DataSource);
|
||||
/**
|
||||
* PEM encoded client private key.
|
||||
*/
|
||||
'private_key'?: (_envoy_api_v2_core_DataSource);
|
||||
/**
|
||||
* PEM encoded client certificate chain.
|
||||
*/
|
||||
'cert_chain'?: (_envoy_api_v2_core_DataSource);
|
||||
}
|
||||
|
||||
/**
|
||||
* See https://grpc.io/grpc/cpp/structgrpc_1_1_ssl_credentials_options.html.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_SslCredentials__Output {
|
||||
/**
|
||||
* PEM encoded server root certificates.
|
||||
*/
|
||||
'root_certs'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
/**
|
||||
* PEM encoded client private key.
|
||||
*/
|
||||
'private_key'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
/**
|
||||
* PEM encoded client certificate chain.
|
||||
*/
|
||||
'cert_chain'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Security token service configuration that allows Google gRPC to
|
||||
* fetch security token from an OAuth 2.0 authorization server.
|
||||
* See https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16 and
|
||||
* https://github.com/grpc/grpc/pull/19587.
|
||||
* [#next-free-field: 10]
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsService {
|
||||
/**
|
||||
* URI of the token exchange service that handles token exchange requests.
|
||||
* [#comment:TODO(asraa): Add URI validation when implemented. Tracked by
|
||||
* https://github.com/envoyproxy/protoc-gen-validate/issues/303]
|
||||
*/
|
||||
'token_exchange_service_uri'?: (string);
|
||||
/**
|
||||
* Location of the target service or resource where the client
|
||||
* intends to use the requested security token.
|
||||
*/
|
||||
'resource'?: (string);
|
||||
/**
|
||||
* Logical name of the target service where the client intends to
|
||||
* use the requested security token.
|
||||
*/
|
||||
'audience'?: (string);
|
||||
/**
|
||||
* The desired scope of the requested security token in the
|
||||
* context of the service or resource where the token will be used.
|
||||
*/
|
||||
'scope'?: (string);
|
||||
/**
|
||||
* Type of the requested security token.
|
||||
*/
|
||||
'requested_token_type'?: (string);
|
||||
/**
|
||||
* The path of subject token, a security token that represents the
|
||||
* identity of the party on behalf of whom the request is being made.
|
||||
*/
|
||||
'subject_token_path'?: (string);
|
||||
/**
|
||||
* Type of the subject token.
|
||||
*/
|
||||
'subject_token_type'?: (string);
|
||||
/**
|
||||
* The path of actor token, a security token that represents the identity
|
||||
* of the acting party. The acting party is authorized to use the
|
||||
* requested security token and act on behalf of the subject.
|
||||
*/
|
||||
'actor_token_path'?: (string);
|
||||
/**
|
||||
* Type of the actor token.
|
||||
*/
|
||||
'actor_token_type'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Security token service configuration that allows Google gRPC to
|
||||
* fetch security token from an OAuth 2.0 authorization server.
|
||||
* See https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16 and
|
||||
* https://github.com/grpc/grpc/pull/19587.
|
||||
* [#next-free-field: 10]
|
||||
*/
|
||||
export interface _envoy_api_v2_core_GrpcService_GoogleGrpc_CallCredentials_StsService__Output {
|
||||
/**
|
||||
* URI of the token exchange service that handles token exchange requests.
|
||||
* [#comment:TODO(asraa): Add URI validation when implemented. Tracked by
|
||||
* https://github.com/envoyproxy/protoc-gen-validate/issues/303]
|
||||
*/
|
||||
'token_exchange_service_uri': (string);
|
||||
/**
|
||||
* Location of the target service or resource where the client
|
||||
* intends to use the requested security token.
|
||||
*/
|
||||
'resource': (string);
|
||||
/**
|
||||
* Logical name of the target service where the client intends to
|
||||
* use the requested security token.
|
||||
*/
|
||||
'audience': (string);
|
||||
/**
|
||||
* The desired scope of the requested security token in the
|
||||
* context of the service or resource where the token will be used.
|
||||
*/
|
||||
'scope': (string);
|
||||
/**
|
||||
* Type of the requested security token.
|
||||
*/
|
||||
'requested_token_type': (string);
|
||||
/**
|
||||
* The path of subject token, a security token that represents the
|
||||
* identity of the party on behalf of whom the request is being made.
|
||||
*/
|
||||
'subject_token_path': (string);
|
||||
/**
|
||||
* Type of the subject token.
|
||||
*/
|
||||
'subject_token_type': (string);
|
||||
/**
|
||||
* The path of actor token, a security token that represents the identity
|
||||
* of the acting party. The acting party is authorized to use the
|
||||
* requested security token and act on behalf of the subject.
|
||||
*/
|
||||
'actor_token_path': (string);
|
||||
/**
|
||||
* Type of the actor token.
|
||||
*/
|
||||
'actor_token_type': (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* gRPC service configuration. This is used by :ref:`ApiConfigSource
|
||||
* <envoy_api_msg_core.ApiConfigSource>` and filter configurations.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface GrpcService {
|
||||
/**
|
||||
* Envoy's in-built gRPC client.
|
||||
* See the :ref:`gRPC services overview <arch_overview_grpc_services>`
|
||||
* documentation for discussion on gRPC client selection.
|
||||
*/
|
||||
'envoy_grpc'?: (_envoy_api_v2_core_GrpcService_EnvoyGrpc);
|
||||
/**
|
||||
* `Google C++ gRPC client <https://github.com/grpc/grpc>`_
|
||||
* See the :ref:`gRPC services overview <arch_overview_grpc_services>`
|
||||
* documentation for discussion on gRPC client selection.
|
||||
*/
|
||||
'google_grpc'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc);
|
||||
/**
|
||||
* The timeout for the gRPC request. This is the timeout for a specific
|
||||
* request.
|
||||
*/
|
||||
'timeout'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Additional metadata to include in streams initiated to the GrpcService.
|
||||
* This can be used for scenarios in which additional ad hoc authorization
|
||||
* headers (e.g. ``x-foo-bar: baz-key``) are to be injected.
|
||||
*/
|
||||
'initial_metadata'?: (_envoy_api_v2_core_HeaderValue)[];
|
||||
'target_specifier'?: "envoy_grpc"|"google_grpc";
|
||||
}
|
||||
|
||||
/**
|
||||
* gRPC service configuration. This is used by :ref:`ApiConfigSource
|
||||
* <envoy_api_msg_core.ApiConfigSource>` and filter configurations.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface GrpcService__Output {
|
||||
/**
|
||||
* Envoy's in-built gRPC client.
|
||||
* See the :ref:`gRPC services overview <arch_overview_grpc_services>`
|
||||
* documentation for discussion on gRPC client selection.
|
||||
*/
|
||||
'envoy_grpc'?: (_envoy_api_v2_core_GrpcService_EnvoyGrpc__Output);
|
||||
/**
|
||||
* `Google C++ gRPC client <https://github.com/grpc/grpc>`_
|
||||
* See the :ref:`gRPC services overview <arch_overview_grpc_services>`
|
||||
* documentation for discussion on gRPC client selection.
|
||||
*/
|
||||
'google_grpc'?: (_envoy_api_v2_core_GrpcService_GoogleGrpc__Output);
|
||||
/**
|
||||
* The timeout for the gRPC request. This is the timeout for a specific
|
||||
* request.
|
||||
*/
|
||||
'timeout'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Additional metadata to include in streams initiated to the GrpcService.
|
||||
* This can be used for scenarios in which additional ad hoc authorization
|
||||
* headers (e.g. ``x-foo-bar: baz-key``) are to be injected.
|
||||
*/
|
||||
'initial_metadata': (_envoy_api_v2_core_HeaderValue__Output)[];
|
||||
'target_specifier': "envoy_grpc"|"google_grpc";
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { HeaderValue as _envoy_api_v2_core_HeaderValue, HeaderValue__Output as _envoy_api_v2_core_HeaderValue__Output } from '../../../../envoy/api/v2/core/HeaderValue';
|
||||
|
||||
/**
|
||||
* Wrapper for a set of headers.
|
||||
*/
|
||||
export interface HeaderMap {
|
||||
'headers'?: (_envoy_api_v2_core_HeaderValue)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for a set of headers.
|
||||
*/
|
||||
export interface HeaderMap__Output {
|
||||
'headers': (_envoy_api_v2_core_HeaderValue__Output)[];
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
|
||||
/**
|
||||
* Header name/value pair.
|
||||
*/
|
||||
export interface HeaderValue {
|
||||
/**
|
||||
* Header name.
|
||||
*/
|
||||
'key'?: (string);
|
||||
/**
|
||||
* Header value.
|
||||
*
|
||||
* The same :ref:`format specifier <config_access_log_format>` as used for
|
||||
* :ref:`HTTP access logging <config_access_log>` applies here, however
|
||||
* unknown header values are replaced with the empty string instead of `-`.
|
||||
*/
|
||||
'value'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Header name/value pair.
|
||||
*/
|
||||
export interface HeaderValue__Output {
|
||||
/**
|
||||
* Header name.
|
||||
*/
|
||||
'key': (string);
|
||||
/**
|
||||
* Header value.
|
||||
*
|
||||
* The same :ref:`format specifier <config_access_log_format>` as used for
|
||||
* :ref:`HTTP access logging <config_access_log>` applies here, however
|
||||
* unknown header values are replaced with the empty string instead of `-`.
|
||||
*/
|
||||
'value': (string);
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { HeaderValue as _envoy_api_v2_core_HeaderValue, HeaderValue__Output as _envoy_api_v2_core_HeaderValue__Output } from '../../../../envoy/api/v2/core/HeaderValue';
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
|
||||
/**
|
||||
* Header name/value pair plus option to control append behavior.
|
||||
*/
|
||||
export interface HeaderValueOption {
|
||||
/**
|
||||
* Header name/value pair that this option applies to.
|
||||
*/
|
||||
'header'?: (_envoy_api_v2_core_HeaderValue);
|
||||
/**
|
||||
* Should the value be appended? If true (default), the value is appended to
|
||||
* existing values.
|
||||
*/
|
||||
'append'?: (_google_protobuf_BoolValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Header name/value pair plus option to control append behavior.
|
||||
*/
|
||||
export interface HeaderValueOption__Output {
|
||||
/**
|
||||
* Header name/value pair that this option applies to.
|
||||
*/
|
||||
'header'?: (_envoy_api_v2_core_HeaderValue__Output);
|
||||
/**
|
||||
* Should the value be appended? If true (default), the value is appended to
|
||||
* existing values.
|
||||
*/
|
||||
'append'?: (_google_protobuf_BoolValue__Output);
|
||||
}
|
||||
607
packages/grpc-js/src/generated/envoy/api/v2/core/HealthCheck.ts
Normal file
607
packages/grpc-js/src/generated/envoy/api/v2/core/HealthCheck.ts
Normal file
@ -0,0 +1,607 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/health_check.proto
|
||||
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
import { EventServiceConfig as _envoy_api_v2_core_EventServiceConfig, EventServiceConfig__Output as _envoy_api_v2_core_EventServiceConfig__Output } from '../../../../envoy/api/v2/core/EventServiceConfig';
|
||||
import { HeaderValueOption as _envoy_api_v2_core_HeaderValueOption, HeaderValueOption__Output as _envoy_api_v2_core_HeaderValueOption__Output } from '../../../../envoy/api/v2/core/HeaderValueOption';
|
||||
import { Int64Range as _envoy_type_Int64Range, Int64Range__Output as _envoy_type_Int64Range__Output } from '../../../../envoy/type/Int64Range';
|
||||
import { CodecClientType as _envoy_type_CodecClientType } from '../../../../envoy/type/CodecClientType';
|
||||
import { StringMatcher as _envoy_type_matcher_StringMatcher, StringMatcher__Output as _envoy_type_matcher_StringMatcher__Output } from '../../../../envoy/type/matcher/StringMatcher';
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
|
||||
import { Long } from '@grpc/proto-loader';
|
||||
|
||||
/**
|
||||
* Custom health check.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_CustomHealthCheck {
|
||||
/**
|
||||
* The registered name of the custom health checker.
|
||||
*/
|
||||
'name'?: (string);
|
||||
'config'?: (_google_protobuf_Struct);
|
||||
'typed_config'?: (_google_protobuf_Any);
|
||||
/**
|
||||
* A custom health checker specific configuration which depends on the custom health checker
|
||||
* being instantiated. See :api:`envoy/config/health_checker` for reference.
|
||||
*/
|
||||
'config_type'?: "config"|"typed_config";
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom health check.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_CustomHealthCheck__Output {
|
||||
/**
|
||||
* The registered name of the custom health checker.
|
||||
*/
|
||||
'name': (string);
|
||||
'config'?: (_google_protobuf_Struct__Output);
|
||||
'typed_config'?: (_google_protobuf_Any__Output);
|
||||
/**
|
||||
* A custom health checker specific configuration which depends on the custom health checker
|
||||
* being instantiated. See :api:`envoy/config/health_checker` for reference.
|
||||
*/
|
||||
'config_type': "config"|"typed_config";
|
||||
}
|
||||
|
||||
/**
|
||||
* `grpc.health.v1.Health
|
||||
* <https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto>`_-based
|
||||
* healthcheck. See `gRPC doc <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_
|
||||
* for details.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_GrpcHealthCheck {
|
||||
/**
|
||||
* An optional service name parameter which will be sent to gRPC service in
|
||||
* `grpc.health.v1.HealthCheckRequest
|
||||
* <https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto#L20>`_.
|
||||
* message. See `gRPC health-checking overview
|
||||
* <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_ for more information.
|
||||
*/
|
||||
'service_name'?: (string);
|
||||
/**
|
||||
* The value of the :authority header in the gRPC health check request. If
|
||||
* left empty (default value), the name of the cluster this health check is associated
|
||||
* with will be used. The authority header can be customized for a specific endpoint by setting
|
||||
* the :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
|
||||
*/
|
||||
'authority'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* `grpc.health.v1.Health
|
||||
* <https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto>`_-based
|
||||
* healthcheck. See `gRPC doc <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_
|
||||
* for details.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_GrpcHealthCheck__Output {
|
||||
/**
|
||||
* An optional service name parameter which will be sent to gRPC service in
|
||||
* `grpc.health.v1.HealthCheckRequest
|
||||
* <https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto#L20>`_.
|
||||
* message. See `gRPC health-checking overview
|
||||
* <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_ for more information.
|
||||
*/
|
||||
'service_name': (string);
|
||||
/**
|
||||
* The value of the :authority header in the gRPC health check request. If
|
||||
* left empty (default value), the name of the cluster this health check is associated
|
||||
* with will be used. The authority header can be customized for a specific endpoint by setting
|
||||
* the :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
|
||||
*/
|
||||
'authority': (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 12]
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_HttpHealthCheck {
|
||||
/**
|
||||
* The value of the host header in the HTTP health check request. If
|
||||
* left empty (default value), the name of the cluster this health check is associated
|
||||
* with will be used. The host header can be customized for a specific endpoint by setting the
|
||||
* :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
|
||||
*/
|
||||
'host'?: (string);
|
||||
/**
|
||||
* Specifies the HTTP path that will be requested during health checking. For example
|
||||
* * /healthcheck*.
|
||||
*/
|
||||
'path'?: (string);
|
||||
/**
|
||||
* [#not-implemented-hide:] HTTP specific payload.
|
||||
*/
|
||||
'send'?: (_envoy_api_v2_core_HealthCheck_Payload);
|
||||
/**
|
||||
* [#not-implemented-hide:] HTTP specific response.
|
||||
*/
|
||||
'receive'?: (_envoy_api_v2_core_HealthCheck_Payload);
|
||||
/**
|
||||
* An optional service name parameter which is used to validate the identity of
|
||||
* the health checked cluster. See the :ref:`architecture overview
|
||||
* <arch_overview_health_checking_identity>` for more information.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* This field has been deprecated in favor of `service_name_matcher` for better flexibility
|
||||
* over matching with service-cluster name.
|
||||
*/
|
||||
'service_name'?: (string);
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be added to each request that is sent to the
|
||||
* health checked cluster. For more information, including details on header value syntax, see
|
||||
* the documentation on :ref:`custom request headers
|
||||
* <config_http_conn_man_headers_custom_request_headers>`.
|
||||
*/
|
||||
'request_headers_to_add'?: (_envoy_api_v2_core_HeaderValueOption)[];
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be removed from each request that is sent to the
|
||||
* health checked cluster.
|
||||
*/
|
||||
'request_headers_to_remove'?: (string)[];
|
||||
/**
|
||||
* If set, health checks will be made using http/2.
|
||||
* Deprecated, use :ref:`codec_client_type
|
||||
* <envoy_api_field_core.HealthCheck.HttpHealthCheck.codec_client_type>` instead.
|
||||
*/
|
||||
'use_http2'?: (boolean);
|
||||
/**
|
||||
* Specifies a list of HTTP response statuses considered healthy. If provided, replaces default
|
||||
* 200-only policy - 200 must be included explicitly as needed. Ranges follow half-open
|
||||
* semantics of :ref:`Int64Range <envoy_api_msg_type.Int64Range>`. The start and end of each
|
||||
* range are required. Only statuses in the range [100, 600) are allowed.
|
||||
*/
|
||||
'expected_statuses'?: (_envoy_type_Int64Range)[];
|
||||
/**
|
||||
* Use specified application protocol for health checks.
|
||||
*/
|
||||
'codec_client_type'?: (_envoy_type_CodecClientType | keyof typeof _envoy_type_CodecClientType);
|
||||
/**
|
||||
* An optional service name parameter which is used to validate the identity of
|
||||
* the health checked cluster using a :ref:`StringMatcher
|
||||
* <envoy_api_msg_type.matcher.StringMatcher>`. See the :ref:`architecture overview
|
||||
* <arch_overview_health_checking_identity>` for more information.
|
||||
*/
|
||||
'service_name_matcher'?: (_envoy_type_matcher_StringMatcher);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 12]
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_HttpHealthCheck__Output {
|
||||
/**
|
||||
* The value of the host header in the HTTP health check request. If
|
||||
* left empty (default value), the name of the cluster this health check is associated
|
||||
* with will be used. The host header can be customized for a specific endpoint by setting the
|
||||
* :ref:`hostname <envoy_api_field_endpoint.Endpoint.HealthCheckConfig.hostname>` field.
|
||||
*/
|
||||
'host': (string);
|
||||
/**
|
||||
* Specifies the HTTP path that will be requested during health checking. For example
|
||||
* * /healthcheck*.
|
||||
*/
|
||||
'path': (string);
|
||||
/**
|
||||
* [#not-implemented-hide:] HTTP specific payload.
|
||||
*/
|
||||
'send'?: (_envoy_api_v2_core_HealthCheck_Payload__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:] HTTP specific response.
|
||||
*/
|
||||
'receive'?: (_envoy_api_v2_core_HealthCheck_Payload__Output);
|
||||
/**
|
||||
* An optional service name parameter which is used to validate the identity of
|
||||
* the health checked cluster. See the :ref:`architecture overview
|
||||
* <arch_overview_health_checking_identity>` for more information.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* This field has been deprecated in favor of `service_name_matcher` for better flexibility
|
||||
* over matching with service-cluster name.
|
||||
*/
|
||||
'service_name': (string);
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be added to each request that is sent to the
|
||||
* health checked cluster. For more information, including details on header value syntax, see
|
||||
* the documentation on :ref:`custom request headers
|
||||
* <config_http_conn_man_headers_custom_request_headers>`.
|
||||
*/
|
||||
'request_headers_to_add': (_envoy_api_v2_core_HeaderValueOption__Output)[];
|
||||
/**
|
||||
* Specifies a list of HTTP headers that should be removed from each request that is sent to the
|
||||
* health checked cluster.
|
||||
*/
|
||||
'request_headers_to_remove': (string)[];
|
||||
/**
|
||||
* If set, health checks will be made using http/2.
|
||||
* Deprecated, use :ref:`codec_client_type
|
||||
* <envoy_api_field_core.HealthCheck.HttpHealthCheck.codec_client_type>` instead.
|
||||
*/
|
||||
'use_http2': (boolean);
|
||||
/**
|
||||
* Specifies a list of HTTP response statuses considered healthy. If provided, replaces default
|
||||
* 200-only policy - 200 must be included explicitly as needed. Ranges follow half-open
|
||||
* semantics of :ref:`Int64Range <envoy_api_msg_type.Int64Range>`. The start and end of each
|
||||
* range are required. Only statuses in the range [100, 600) are allowed.
|
||||
*/
|
||||
'expected_statuses': (_envoy_type_Int64Range__Output)[];
|
||||
/**
|
||||
* Use specified application protocol for health checks.
|
||||
*/
|
||||
'codec_client_type': (keyof typeof _envoy_type_CodecClientType);
|
||||
/**
|
||||
* An optional service name parameter which is used to validate the identity of
|
||||
* the health checked cluster using a :ref:`StringMatcher
|
||||
* <envoy_api_msg_type.matcher.StringMatcher>`. See the :ref:`architecture overview
|
||||
* <arch_overview_health_checking_identity>` for more information.
|
||||
*/
|
||||
'service_name_matcher'?: (_envoy_type_matcher_StringMatcher__Output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the encoding of the payload bytes in the payload.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_Payload {
|
||||
/**
|
||||
* Hex encoded payload. E.g., "000000FF".
|
||||
*/
|
||||
'text'?: (string);
|
||||
/**
|
||||
* [#not-implemented-hide:] Binary payload.
|
||||
*/
|
||||
'binary'?: (Buffer | Uint8Array | string);
|
||||
'payload'?: "text"|"binary";
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the encoding of the payload bytes in the payload.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_Payload__Output {
|
||||
/**
|
||||
* Hex encoded payload. E.g., "000000FF".
|
||||
*/
|
||||
'text'?: (string);
|
||||
/**
|
||||
* [#not-implemented-hide:] Binary payload.
|
||||
*/
|
||||
'binary'?: (Buffer);
|
||||
'payload': "text"|"binary";
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_HealthCheck_RedisHealthCheck {
|
||||
/**
|
||||
* If set, optionally perform ``EXISTS <key>`` instead of ``PING``. A return value
|
||||
* from Redis of 0 (does not exist) is considered a passing healthcheck. A return value other
|
||||
* than 0 is considered a failure. This allows the user to mark a Redis instance for maintenance
|
||||
* by setting the specified key to any value and waiting for traffic to drain.
|
||||
*/
|
||||
'key'?: (string);
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_HealthCheck_RedisHealthCheck__Output {
|
||||
/**
|
||||
* If set, optionally perform ``EXISTS <key>`` instead of ``PING``. A return value
|
||||
* from Redis of 0 (does not exist) is considered a passing healthcheck. A return value other
|
||||
* than 0 is considered a failure. This allows the user to mark a Redis instance for maintenance
|
||||
* by setting the specified key to any value and waiting for traffic to drain.
|
||||
*/
|
||||
'key': (string);
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_HealthCheck_TcpHealthCheck {
|
||||
/**
|
||||
* Empty payloads imply a connect-only health check.
|
||||
*/
|
||||
'send'?: (_envoy_api_v2_core_HealthCheck_Payload);
|
||||
/**
|
||||
* When checking the response, “fuzzy” matching is performed such that each
|
||||
* binary block must be found, and in the order specified, but not
|
||||
* necessarily contiguous.
|
||||
*/
|
||||
'receive'?: (_envoy_api_v2_core_HealthCheck_Payload)[];
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_HealthCheck_TcpHealthCheck__Output {
|
||||
/**
|
||||
* Empty payloads imply a connect-only health check.
|
||||
*/
|
||||
'send'?: (_envoy_api_v2_core_HealthCheck_Payload__Output);
|
||||
/**
|
||||
* When checking the response, “fuzzy” matching is performed such that each
|
||||
* binary block must be found, and in the order specified, but not
|
||||
* necessarily contiguous.
|
||||
*/
|
||||
'receive': (_envoy_api_v2_core_HealthCheck_Payload__Output)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Health checks occur over the transport socket specified for the cluster. This implies that if a
|
||||
* cluster is using a TLS-enabled transport socket, the health check will also occur over TLS.
|
||||
*
|
||||
* This allows overriding the cluster TLS settings, just for health check connections.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_TlsOptions {
|
||||
/**
|
||||
* Specifies the ALPN protocols for health check connections. This is useful if the
|
||||
* corresponding upstream is using ALPN-based :ref:`FilterChainMatch
|
||||
* <envoy_api_msg_listener.FilterChainMatch>` along with different protocols for health checks
|
||||
* versus data connections. If empty, no ALPN protocols will be set on health check connections.
|
||||
*/
|
||||
'alpn_protocols'?: (string)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Health checks occur over the transport socket specified for the cluster. This implies that if a
|
||||
* cluster is using a TLS-enabled transport socket, the health check will also occur over TLS.
|
||||
*
|
||||
* This allows overriding the cluster TLS settings, just for health check connections.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_HealthCheck_TlsOptions__Output {
|
||||
/**
|
||||
* Specifies the ALPN protocols for health check connections. This is useful if the
|
||||
* corresponding upstream is using ALPN-based :ref:`FilterChainMatch
|
||||
* <envoy_api_msg_listener.FilterChainMatch>` along with different protocols for health checks
|
||||
* versus data connections. If empty, no ALPN protocols will be set on health check connections.
|
||||
*/
|
||||
'alpn_protocols': (string)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 23]
|
||||
*/
|
||||
export interface HealthCheck {
|
||||
/**
|
||||
* The time to wait for a health check response. If the timeout is reached the
|
||||
* health check attempt will be considered a failure.
|
||||
*/
|
||||
'timeout'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* The interval between health checks.
|
||||
*/
|
||||
'interval'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* An optional jitter amount in milliseconds. If specified, during every
|
||||
* interval Envoy will add interval_jitter to the wait time.
|
||||
*/
|
||||
'interval_jitter'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* The number of unhealthy health checks required before a host is marked
|
||||
* unhealthy. Note that for *http* health checking if a host responds with 503
|
||||
* this threshold is ignored and the host is considered unhealthy immediately.
|
||||
*/
|
||||
'unhealthy_threshold'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The number of healthy health checks required before a host is marked
|
||||
* healthy. Note that during startup, only a single successful health check is
|
||||
* required to mark a host healthy.
|
||||
*/
|
||||
'healthy_threshold'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* [#not-implemented-hide:] Non-serving port for health checking.
|
||||
*/
|
||||
'alt_port'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Reuse health check connection between health checks. Default is true.
|
||||
*/
|
||||
'reuse_connection'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* HTTP health check.
|
||||
*/
|
||||
'http_health_check'?: (_envoy_api_v2_core_HealthCheck_HttpHealthCheck);
|
||||
/**
|
||||
* TCP health check.
|
||||
*/
|
||||
'tcp_health_check'?: (_envoy_api_v2_core_HealthCheck_TcpHealthCheck);
|
||||
/**
|
||||
* gRPC health check.
|
||||
*/
|
||||
'grpc_health_check'?: (_envoy_api_v2_core_HealthCheck_GrpcHealthCheck);
|
||||
/**
|
||||
* The "no traffic interval" is a special health check interval that is used when a cluster has
|
||||
* never had traffic routed to it. This lower interval allows cluster information to be kept up to
|
||||
* date, without sending a potentially large amount of active health checking traffic for no
|
||||
* reason. Once a cluster has been used for traffic routing, Envoy will shift back to using the
|
||||
* standard health check interval that is defined. Note that this interval takes precedence over
|
||||
* any other.
|
||||
*
|
||||
* The default value for "no traffic interval" is 60 seconds.
|
||||
*/
|
||||
'no_traffic_interval'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Custom health check.
|
||||
*/
|
||||
'custom_health_check'?: (_envoy_api_v2_core_HealthCheck_CustomHealthCheck);
|
||||
/**
|
||||
* The "unhealthy interval" is a health check interval that is used for hosts that are marked as
|
||||
* unhealthy. As soon as the host is marked as healthy, Envoy will shift back to using the
|
||||
* standard health check interval that is defined.
|
||||
*
|
||||
* The default value for "unhealthy interval" is the same as "interval".
|
||||
*/
|
||||
'unhealthy_interval'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* The "unhealthy edge interval" is a special health check interval that is used for the first
|
||||
* health check right after a host is marked as unhealthy. For subsequent health checks
|
||||
* Envoy will shift back to using either "unhealthy interval" if present or the standard health
|
||||
* check interval that is defined.
|
||||
*
|
||||
* The default value for "unhealthy edge interval" is the same as "unhealthy interval".
|
||||
*/
|
||||
'unhealthy_edge_interval'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* The "healthy edge interval" is a special health check interval that is used for the first
|
||||
* health check right after a host is marked as healthy. For subsequent health checks
|
||||
* Envoy will shift back to using the standard health check interval that is defined.
|
||||
*
|
||||
* The default value for "healthy edge interval" is the same as the default interval.
|
||||
*/
|
||||
'healthy_edge_interval'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Specifies the path to the :ref:`health check event log <arch_overview_health_check_logging>`.
|
||||
* If empty, no event log will be written.
|
||||
*/
|
||||
'event_log_path'?: (string);
|
||||
/**
|
||||
* An optional jitter amount as a percentage of interval_ms. If specified,
|
||||
* during every interval Envoy will add interval_ms *
|
||||
* interval_jitter_percent / 100 to the wait time.
|
||||
*
|
||||
* If interval_jitter_ms and interval_jitter_percent are both set, both of
|
||||
* them will be used to increase the wait time.
|
||||
*/
|
||||
'interval_jitter_percent'?: (number);
|
||||
/**
|
||||
* If set to true, health check failure events will always be logged. If set to false, only the
|
||||
* initial health check failure event will be logged.
|
||||
* The default value is false.
|
||||
*/
|
||||
'always_log_health_check_failures'?: (boolean);
|
||||
/**
|
||||
* An optional jitter amount in milliseconds. If specified, Envoy will start health
|
||||
* checking after for a random time in ms between 0 and initial_jitter. This only
|
||||
* applies to the first health check.
|
||||
*/
|
||||
'initial_jitter'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* This allows overriding the cluster TLS settings, just for health check connections.
|
||||
*/
|
||||
'tls_options'?: (_envoy_api_v2_core_HealthCheck_TlsOptions);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* The gRPC service for the health check event service.
|
||||
* If empty, health check events won't be sent to a remote endpoint.
|
||||
*/
|
||||
'event_service'?: (_envoy_api_v2_core_EventServiceConfig);
|
||||
'health_checker'?: "http_health_check"|"tcp_health_check"|"grpc_health_check"|"custom_health_check";
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 23]
|
||||
*/
|
||||
export interface HealthCheck__Output {
|
||||
/**
|
||||
* The time to wait for a health check response. If the timeout is reached the
|
||||
* health check attempt will be considered a failure.
|
||||
*/
|
||||
'timeout'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* The interval between health checks.
|
||||
*/
|
||||
'interval'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* An optional jitter amount in milliseconds. If specified, during every
|
||||
* interval Envoy will add interval_jitter to the wait time.
|
||||
*/
|
||||
'interval_jitter'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* The number of unhealthy health checks required before a host is marked
|
||||
* unhealthy. Note that for *http* health checking if a host responds with 503
|
||||
* this threshold is ignored and the host is considered unhealthy immediately.
|
||||
*/
|
||||
'unhealthy_threshold'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The number of healthy health checks required before a host is marked
|
||||
* healthy. Note that during startup, only a single successful health check is
|
||||
* required to mark a host healthy.
|
||||
*/
|
||||
'healthy_threshold'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:] Non-serving port for health checking.
|
||||
*/
|
||||
'alt_port'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Reuse health check connection between health checks. Default is true.
|
||||
*/
|
||||
'reuse_connection'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* HTTP health check.
|
||||
*/
|
||||
'http_health_check'?: (_envoy_api_v2_core_HealthCheck_HttpHealthCheck__Output);
|
||||
/**
|
||||
* TCP health check.
|
||||
*/
|
||||
'tcp_health_check'?: (_envoy_api_v2_core_HealthCheck_TcpHealthCheck__Output);
|
||||
/**
|
||||
* gRPC health check.
|
||||
*/
|
||||
'grpc_health_check'?: (_envoy_api_v2_core_HealthCheck_GrpcHealthCheck__Output);
|
||||
/**
|
||||
* The "no traffic interval" is a special health check interval that is used when a cluster has
|
||||
* never had traffic routed to it. This lower interval allows cluster information to be kept up to
|
||||
* date, without sending a potentially large amount of active health checking traffic for no
|
||||
* reason. Once a cluster has been used for traffic routing, Envoy will shift back to using the
|
||||
* standard health check interval that is defined. Note that this interval takes precedence over
|
||||
* any other.
|
||||
*
|
||||
* The default value for "no traffic interval" is 60 seconds.
|
||||
*/
|
||||
'no_traffic_interval'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Custom health check.
|
||||
*/
|
||||
'custom_health_check'?: (_envoy_api_v2_core_HealthCheck_CustomHealthCheck__Output);
|
||||
/**
|
||||
* The "unhealthy interval" is a health check interval that is used for hosts that are marked as
|
||||
* unhealthy. As soon as the host is marked as healthy, Envoy will shift back to using the
|
||||
* standard health check interval that is defined.
|
||||
*
|
||||
* The default value for "unhealthy interval" is the same as "interval".
|
||||
*/
|
||||
'unhealthy_interval'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* The "unhealthy edge interval" is a special health check interval that is used for the first
|
||||
* health check right after a host is marked as unhealthy. For subsequent health checks
|
||||
* Envoy will shift back to using either "unhealthy interval" if present or the standard health
|
||||
* check interval that is defined.
|
||||
*
|
||||
* The default value for "unhealthy edge interval" is the same as "unhealthy interval".
|
||||
*/
|
||||
'unhealthy_edge_interval'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* The "healthy edge interval" is a special health check interval that is used for the first
|
||||
* health check right after a host is marked as healthy. For subsequent health checks
|
||||
* Envoy will shift back to using the standard health check interval that is defined.
|
||||
*
|
||||
* The default value for "healthy edge interval" is the same as the default interval.
|
||||
*/
|
||||
'healthy_edge_interval'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Specifies the path to the :ref:`health check event log <arch_overview_health_check_logging>`.
|
||||
* If empty, no event log will be written.
|
||||
*/
|
||||
'event_log_path': (string);
|
||||
/**
|
||||
* An optional jitter amount as a percentage of interval_ms. If specified,
|
||||
* during every interval Envoy will add interval_ms *
|
||||
* interval_jitter_percent / 100 to the wait time.
|
||||
*
|
||||
* If interval_jitter_ms and interval_jitter_percent are both set, both of
|
||||
* them will be used to increase the wait time.
|
||||
*/
|
||||
'interval_jitter_percent': (number);
|
||||
/**
|
||||
* If set to true, health check failure events will always be logged. If set to false, only the
|
||||
* initial health check failure event will be logged.
|
||||
* The default value is false.
|
||||
*/
|
||||
'always_log_health_check_failures': (boolean);
|
||||
/**
|
||||
* An optional jitter amount in milliseconds. If specified, Envoy will start health
|
||||
* checking after for a random time in ms between 0 and initial_jitter. This only
|
||||
* applies to the first health check.
|
||||
*/
|
||||
'initial_jitter'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* This allows overriding the cluster TLS settings, just for health check connections.
|
||||
*/
|
||||
'tls_options'?: (_envoy_api_v2_core_HealthCheck_TlsOptions__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* The gRPC service for the health check event service.
|
||||
* If empty, health check events won't be sent to a remote endpoint.
|
||||
*/
|
||||
'event_service'?: (_envoy_api_v2_core_EventServiceConfig__Output);
|
||||
'health_checker': "http_health_check"|"tcp_health_check"|"grpc_health_check"|"custom_health_check";
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/health_check.proto
|
||||
|
||||
/**
|
||||
* Endpoint health status.
|
||||
*/
|
||||
export enum 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,
|
||||
}
|
||||
@ -0,0 +1,119 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
|
||||
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
|
||||
export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat {
|
||||
/**
|
||||
* Formats the header by proper casing words: the first character and any character following
|
||||
* a special character will be capitalized if it's an alpha character. For example,
|
||||
* "content-type" becomes "Content-Type", and "foo$b#$are" becomes "Foo$B#$Are".
|
||||
* Note that while this results in most headers following conventional casing, certain headers
|
||||
* are not covered. For example, the "TE" header will be formatted as "Te".
|
||||
*/
|
||||
'proper_case_words'?: (_envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords);
|
||||
'header_format'?: "proper_case_words";
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat__Output {
|
||||
/**
|
||||
* Formats the header by proper casing words: the first character and any character following
|
||||
* a special character will be capitalized if it's an alpha character. For example,
|
||||
* "content-type" becomes "Content-Type", and "foo$b#$are" becomes "Foo$B#$Are".
|
||||
* Note that while this results in most headers following conventional casing, certain headers
|
||||
* are not covered. For example, the "TE" header will be formatted as "Te".
|
||||
*/
|
||||
'proper_case_words'?: (_envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords__Output);
|
||||
'header_format': "proper_case_words";
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords {
|
||||
}
|
||||
|
||||
export interface _envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords__Output {
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface Http1ProtocolOptions {
|
||||
/**
|
||||
* Handle HTTP requests with absolute URLs in the requests. These requests
|
||||
* are generally sent by clients to forward/explicit proxies. This allows clients to configure
|
||||
* envoy as their HTTP proxy. In Unix, for example, this is typically done by setting the
|
||||
* *http_proxy* environment variable.
|
||||
*/
|
||||
'allow_absolute_url'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Handle incoming HTTP/1.0 and HTTP 0.9 requests.
|
||||
* This is off by default, and not fully standards compliant. There is support for pre-HTTP/1.1
|
||||
* style connect logic, dechunking, and handling lack of client host iff
|
||||
* *default_host_for_http_10* is configured.
|
||||
*/
|
||||
'accept_http_10'?: (boolean);
|
||||
/**
|
||||
* A default host for HTTP/1.0 requests. This is highly suggested if *accept_http_10* is true as
|
||||
* Envoy does not otherwise support HTTP/1.0 without a Host header.
|
||||
* This is a no-op if *accept_http_10* is not true.
|
||||
*/
|
||||
'default_host_for_http_10'?: (string);
|
||||
/**
|
||||
* Describes how the keys for response headers should be formatted. By default, all header keys
|
||||
* are lower cased.
|
||||
*/
|
||||
'header_key_format'?: (_envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat);
|
||||
/**
|
||||
* Enables trailers for HTTP/1. By default the HTTP/1 codec drops proxied trailers.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Note that this only happens when Envoy is chunk encoding which occurs when:
|
||||
* - The request is HTTP/1.1.
|
||||
* - Is neither a HEAD only request nor a HTTP Upgrade.
|
||||
* - Not a response to a HEAD request.
|
||||
* - The content length header is not present.
|
||||
*/
|
||||
'enable_trailers'?: (boolean);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface Http1ProtocolOptions__Output {
|
||||
/**
|
||||
* Handle HTTP requests with absolute URLs in the requests. These requests
|
||||
* are generally sent by clients to forward/explicit proxies. This allows clients to configure
|
||||
* envoy as their HTTP proxy. In Unix, for example, this is typically done by setting the
|
||||
* *http_proxy* environment variable.
|
||||
*/
|
||||
'allow_absolute_url'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Handle incoming HTTP/1.0 and HTTP 0.9 requests.
|
||||
* This is off by default, and not fully standards compliant. There is support for pre-HTTP/1.1
|
||||
* style connect logic, dechunking, and handling lack of client host iff
|
||||
* *default_host_for_http_10* is configured.
|
||||
*/
|
||||
'accept_http_10': (boolean);
|
||||
/**
|
||||
* A default host for HTTP/1.0 requests. This is highly suggested if *accept_http_10* is true as
|
||||
* Envoy does not otherwise support HTTP/1.0 without a Host header.
|
||||
* This is a no-op if *accept_http_10* is not true.
|
||||
*/
|
||||
'default_host_for_http_10': (string);
|
||||
/**
|
||||
* Describes how the keys for response headers should be formatted. By default, all header keys
|
||||
* are lower cased.
|
||||
*/
|
||||
'header_key_format'?: (_envoy_api_v2_core_Http1ProtocolOptions_HeaderKeyFormat__Output);
|
||||
/**
|
||||
* Enables trailers for HTTP/1. By default the HTTP/1 codec drops proxied trailers.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Note that this only happens when Envoy is chunk encoding which occurs when:
|
||||
* - The request is HTTP/1.1.
|
||||
* - Is neither a HEAD only request nor a HTTP Upgrade.
|
||||
* - Not a response to a HEAD request.
|
||||
* - The content length header is not present.
|
||||
*/
|
||||
'enable_trailers': (boolean);
|
||||
}
|
||||
@ -0,0 +1,325 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
|
||||
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
|
||||
/**
|
||||
* Defines a parameter to be sent in the SETTINGS frame.
|
||||
* See `RFC7540, sec. 6.5.1 <https://tools.ietf.org/html/rfc7540#section-6.5.1>`_ for details.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter {
|
||||
/**
|
||||
* The 16 bit parameter identifier.
|
||||
*/
|
||||
'identifier'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The 32 bit parameter value.
|
||||
*/
|
||||
'value'?: (_google_protobuf_UInt32Value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines a parameter to be sent in the SETTINGS frame.
|
||||
* See `RFC7540, sec. 6.5.1 <https://tools.ietf.org/html/rfc7540#section-6.5.1>`_ for details.
|
||||
*/
|
||||
export interface _envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter__Output {
|
||||
/**
|
||||
* The 16 bit parameter identifier.
|
||||
*/
|
||||
'identifier'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The 32 bit parameter value.
|
||||
*/
|
||||
'value'?: (_google_protobuf_UInt32Value__Output);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 14]
|
||||
*/
|
||||
export interface Http2ProtocolOptions {
|
||||
/**
|
||||
* `Maximum table size <https://httpwg.org/specs/rfc7541.html#rfc.section.4.2>`_
|
||||
* (in octets) that the encoder is permitted to use for the dynamic HPACK table. Valid values
|
||||
* range from 0 to 4294967295 (2^32 - 1) and defaults to 4096. 0 effectively disables header
|
||||
* compression.
|
||||
*/
|
||||
'hpack_table_size'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* `Maximum concurrent streams <https://httpwg.org/specs/rfc7540.html#rfc.section.5.1.2>`_
|
||||
* allowed for peer on one HTTP/2 connection. Valid values range from 1 to 2147483647 (2^31 - 1)
|
||||
* and defaults to 2147483647.
|
||||
*
|
||||
* For upstream connections, this also limits how many streams Envoy will initiate concurrently
|
||||
* on a single connection. If the limit is reached, Envoy may queue requests or establish
|
||||
* additional connections (as allowed per circuit breaker limits).
|
||||
*/
|
||||
'max_concurrent_streams'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* `Initial stream-level flow-control window
|
||||
* <https://httpwg.org/specs/rfc7540.html#rfc.section.6.9.2>`_ size. Valid values range from 65535
|
||||
* (2^16 - 1, HTTP/2 default) to 2147483647 (2^31 - 1, HTTP/2 maximum) and defaults to 268435456
|
||||
* (256 * 1024 * 1024).
|
||||
*
|
||||
* NOTE: 65535 is the initial window size from HTTP/2 spec. We only support increasing the default
|
||||
* window size now, so it's also the minimum.
|
||||
*
|
||||
* This field also acts as a soft limit on the number of bytes Envoy will buffer per-stream in the
|
||||
* HTTP/2 codec buffers. Once the buffer reaches this pointer, watermark callbacks will fire to
|
||||
* stop the flow of data to the codec buffers.
|
||||
*/
|
||||
'initial_stream_window_size'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Similar to *initial_stream_window_size*, but for connection-level flow-control
|
||||
* window. Currently, this has the same minimum/maximum/default as *initial_stream_window_size*.
|
||||
*/
|
||||
'initial_connection_window_size'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Allows proxying Websocket and other upgrades over H2 connect.
|
||||
*/
|
||||
'allow_connect'?: (boolean);
|
||||
/**
|
||||
* [#not-implemented-hide:] Hiding until envoy has full metadata support.
|
||||
* Still under implementation. DO NOT USE.
|
||||
*
|
||||
* Allows metadata. See [metadata
|
||||
* docs](https://github.com/envoyproxy/envoy/blob/master/source/docs/h2_metadata.md) for more
|
||||
* information.
|
||||
*/
|
||||
'allow_metadata'?: (boolean);
|
||||
/**
|
||||
* Limit the number of pending outbound downstream frames of all types (frames that are waiting to
|
||||
* be written into the socket). Exceeding this limit triggers flood mitigation and connection is
|
||||
* terminated. The ``http2.outbound_flood`` stat tracks the number of terminated connections due
|
||||
* to flood mitigation. The default limit is 10000.
|
||||
* [#comment:TODO: implement same limits for upstream outbound frames as well.]
|
||||
*/
|
||||
'max_outbound_frames'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Limit the number of pending outbound downstream frames of types PING, SETTINGS and RST_STREAM,
|
||||
* preventing high memory utilization when receiving continuous stream of these frames. Exceeding
|
||||
* this limit triggers flood mitigation and connection is terminated. The
|
||||
* ``http2.outbound_control_flood`` stat tracks the number of terminated connections due to flood
|
||||
* mitigation. The default limit is 1000.
|
||||
* [#comment:TODO: implement same limits for upstream outbound frames as well.]
|
||||
*/
|
||||
'max_outbound_control_frames'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Limit the number of consecutive inbound frames of types HEADERS, CONTINUATION and DATA with an
|
||||
* empty payload and no end stream flag. Those frames have no legitimate use and are abusive, but
|
||||
* might be a result of a broken HTTP/2 implementation. The `http2.inbound_empty_frames_flood``
|
||||
* stat tracks the number of connections terminated due to flood mitigation.
|
||||
* Setting this to 0 will terminate connection upon receiving first frame with an empty payload
|
||||
* and no end stream flag. The default limit is 1.
|
||||
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
|
||||
*/
|
||||
'max_consecutive_inbound_frames_with_empty_payload'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Limit the number of inbound PRIORITY frames allowed per each opened stream. If the number
|
||||
* of PRIORITY frames received over the lifetime of connection exceeds the value calculated
|
||||
* using this formula::
|
||||
*
|
||||
* max_inbound_priority_frames_per_stream * (1 + inbound_streams)
|
||||
*
|
||||
* the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
|
||||
* the number of connections terminated due to flood mitigation. The default limit is 100.
|
||||
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
|
||||
*/
|
||||
'max_inbound_priority_frames_per_stream'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Limit the number of inbound WINDOW_UPDATE frames allowed per DATA frame sent. If the number
|
||||
* of WINDOW_UPDATE frames received over the lifetime of connection exceeds the value calculated
|
||||
* using this formula::
|
||||
*
|
||||
* 1 + 2 * (inbound_streams +
|
||||
* max_inbound_window_update_frames_per_data_frame_sent * outbound_data_frames)
|
||||
*
|
||||
* the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
|
||||
* the number of connections terminated due to flood mitigation. The default limit is 10.
|
||||
* Setting this to 1 should be enough to support HTTP/2 implementations with basic flow control,
|
||||
* but more complex implementations that try to estimate available bandwidth require at least 2.
|
||||
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
|
||||
*/
|
||||
'max_inbound_window_update_frames_per_data_frame_sent'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Allows invalid HTTP messaging and headers. When this option is disabled (default), then
|
||||
* the whole HTTP/2 connection is terminated upon receiving invalid HEADERS frame. However,
|
||||
* when this option is enabled, only the offending stream is terminated.
|
||||
*
|
||||
* See `RFC7540, sec. 8.1 <https://tools.ietf.org/html/rfc7540#section-8.1>`_ for details.
|
||||
*/
|
||||
'stream_error_on_invalid_http_messaging'?: (boolean);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* Specifies SETTINGS frame parameters to be sent to the peer, with two exceptions:
|
||||
*
|
||||
* 1. SETTINGS_ENABLE_PUSH (0x2) is not configurable as HTTP/2 server push is not supported by
|
||||
* Envoy.
|
||||
*
|
||||
* 2. SETTINGS_ENABLE_CONNECT_PROTOCOL (0x8) is only configurable through the named field
|
||||
* 'allow_connect'.
|
||||
*
|
||||
* Note that custom parameters specified through this field can not also be set in the
|
||||
* corresponding named parameters:
|
||||
*
|
||||
* .. code-block:: text
|
||||
*
|
||||
* ID Field Name
|
||||
* ----------------
|
||||
* 0x1 hpack_table_size
|
||||
* 0x3 max_concurrent_streams
|
||||
* 0x4 initial_stream_window_size
|
||||
*
|
||||
* Collisions will trigger config validation failure on load/update. Likewise, inconsistencies
|
||||
* between custom parameters with the same identifier will trigger a failure.
|
||||
*
|
||||
* See `IANA HTTP/2 Settings
|
||||
* <https://www.iana.org/assignments/http2-parameters/http2-parameters.xhtml#settings>`_ for
|
||||
* standardized identifiers.
|
||||
*/
|
||||
'custom_settings_parameters'?: (_envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 14]
|
||||
*/
|
||||
export interface Http2ProtocolOptions__Output {
|
||||
/**
|
||||
* `Maximum table size <https://httpwg.org/specs/rfc7541.html#rfc.section.4.2>`_
|
||||
* (in octets) that the encoder is permitted to use for the dynamic HPACK table. Valid values
|
||||
* range from 0 to 4294967295 (2^32 - 1) and defaults to 4096. 0 effectively disables header
|
||||
* compression.
|
||||
*/
|
||||
'hpack_table_size'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* `Maximum concurrent streams <https://httpwg.org/specs/rfc7540.html#rfc.section.5.1.2>`_
|
||||
* allowed for peer on one HTTP/2 connection. Valid values range from 1 to 2147483647 (2^31 - 1)
|
||||
* and defaults to 2147483647.
|
||||
*
|
||||
* For upstream connections, this also limits how many streams Envoy will initiate concurrently
|
||||
* on a single connection. If the limit is reached, Envoy may queue requests or establish
|
||||
* additional connections (as allowed per circuit breaker limits).
|
||||
*/
|
||||
'max_concurrent_streams'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* `Initial stream-level flow-control window
|
||||
* <https://httpwg.org/specs/rfc7540.html#rfc.section.6.9.2>`_ size. Valid values range from 65535
|
||||
* (2^16 - 1, HTTP/2 default) to 2147483647 (2^31 - 1, HTTP/2 maximum) and defaults to 268435456
|
||||
* (256 * 1024 * 1024).
|
||||
*
|
||||
* NOTE: 65535 is the initial window size from HTTP/2 spec. We only support increasing the default
|
||||
* window size now, so it's also the minimum.
|
||||
*
|
||||
* This field also acts as a soft limit on the number of bytes Envoy will buffer per-stream in the
|
||||
* HTTP/2 codec buffers. Once the buffer reaches this pointer, watermark callbacks will fire to
|
||||
* stop the flow of data to the codec buffers.
|
||||
*/
|
||||
'initial_stream_window_size'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Similar to *initial_stream_window_size*, but for connection-level flow-control
|
||||
* window. Currently, this has the same minimum/maximum/default as *initial_stream_window_size*.
|
||||
*/
|
||||
'initial_connection_window_size'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Allows proxying Websocket and other upgrades over H2 connect.
|
||||
*/
|
||||
'allow_connect': (boolean);
|
||||
/**
|
||||
* [#not-implemented-hide:] Hiding until envoy has full metadata support.
|
||||
* Still under implementation. DO NOT USE.
|
||||
*
|
||||
* Allows metadata. See [metadata
|
||||
* docs](https://github.com/envoyproxy/envoy/blob/master/source/docs/h2_metadata.md) for more
|
||||
* information.
|
||||
*/
|
||||
'allow_metadata': (boolean);
|
||||
/**
|
||||
* Limit the number of pending outbound downstream frames of all types (frames that are waiting to
|
||||
* be written into the socket). Exceeding this limit triggers flood mitigation and connection is
|
||||
* terminated. The ``http2.outbound_flood`` stat tracks the number of terminated connections due
|
||||
* to flood mitigation. The default limit is 10000.
|
||||
* [#comment:TODO: implement same limits for upstream outbound frames as well.]
|
||||
*/
|
||||
'max_outbound_frames'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Limit the number of pending outbound downstream frames of types PING, SETTINGS and RST_STREAM,
|
||||
* preventing high memory utilization when receiving continuous stream of these frames. Exceeding
|
||||
* this limit triggers flood mitigation and connection is terminated. The
|
||||
* ``http2.outbound_control_flood`` stat tracks the number of terminated connections due to flood
|
||||
* mitigation. The default limit is 1000.
|
||||
* [#comment:TODO: implement same limits for upstream outbound frames as well.]
|
||||
*/
|
||||
'max_outbound_control_frames'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Limit the number of consecutive inbound frames of types HEADERS, CONTINUATION and DATA with an
|
||||
* empty payload and no end stream flag. Those frames have no legitimate use and are abusive, but
|
||||
* might be a result of a broken HTTP/2 implementation. The `http2.inbound_empty_frames_flood``
|
||||
* stat tracks the number of connections terminated due to flood mitigation.
|
||||
* Setting this to 0 will terminate connection upon receiving first frame with an empty payload
|
||||
* and no end stream flag. The default limit is 1.
|
||||
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
|
||||
*/
|
||||
'max_consecutive_inbound_frames_with_empty_payload'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Limit the number of inbound PRIORITY frames allowed per each opened stream. If the number
|
||||
* of PRIORITY frames received over the lifetime of connection exceeds the value calculated
|
||||
* using this formula::
|
||||
*
|
||||
* max_inbound_priority_frames_per_stream * (1 + inbound_streams)
|
||||
*
|
||||
* the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
|
||||
* the number of connections terminated due to flood mitigation. The default limit is 100.
|
||||
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
|
||||
*/
|
||||
'max_inbound_priority_frames_per_stream'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Limit the number of inbound WINDOW_UPDATE frames allowed per DATA frame sent. If the number
|
||||
* of WINDOW_UPDATE frames received over the lifetime of connection exceeds the value calculated
|
||||
* using this formula::
|
||||
*
|
||||
* 1 + 2 * (inbound_streams +
|
||||
* max_inbound_window_update_frames_per_data_frame_sent * outbound_data_frames)
|
||||
*
|
||||
* the connection is terminated. The ``http2.inbound_priority_frames_flood`` stat tracks
|
||||
* the number of connections terminated due to flood mitigation. The default limit is 10.
|
||||
* Setting this to 1 should be enough to support HTTP/2 implementations with basic flow control,
|
||||
* but more complex implementations that try to estimate available bandwidth require at least 2.
|
||||
* [#comment:TODO: implement same limits for upstream inbound frames as well.]
|
||||
*/
|
||||
'max_inbound_window_update_frames_per_data_frame_sent'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Allows invalid HTTP messaging and headers. When this option is disabled (default), then
|
||||
* the whole HTTP/2 connection is terminated upon receiving invalid HEADERS frame. However,
|
||||
* when this option is enabled, only the offending stream is terminated.
|
||||
*
|
||||
* See `RFC7540, sec. 8.1 <https://tools.ietf.org/html/rfc7540#section-8.1>`_ for details.
|
||||
*/
|
||||
'stream_error_on_invalid_http_messaging': (boolean);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* Specifies SETTINGS frame parameters to be sent to the peer, with two exceptions:
|
||||
*
|
||||
* 1. SETTINGS_ENABLE_PUSH (0x2) is not configurable as HTTP/2 server push is not supported by
|
||||
* Envoy.
|
||||
*
|
||||
* 2. SETTINGS_ENABLE_CONNECT_PROTOCOL (0x8) is only configurable through the named field
|
||||
* 'allow_connect'.
|
||||
*
|
||||
* Note that custom parameters specified through this field can not also be set in the
|
||||
* corresponding named parameters:
|
||||
*
|
||||
* .. code-block:: text
|
||||
*
|
||||
* ID Field Name
|
||||
* ----------------
|
||||
* 0x1 hpack_table_size
|
||||
* 0x3 max_concurrent_streams
|
||||
* 0x4 initial_stream_window_size
|
||||
*
|
||||
* Collisions will trigger config validation failure on load/update. Likewise, inconsistencies
|
||||
* between custom parameters with the same identifier will trigger a failure.
|
||||
*
|
||||
* See `IANA HTTP/2 Settings
|
||||
* <https://www.iana.org/assignments/http2-parameters/http2-parameters.xhtml#settings>`_ for
|
||||
* standardized identifiers.
|
||||
*/
|
||||
'custom_settings_parameters': (_envoy_api_v2_core_Http2ProtocolOptions_SettingsParameter__Output)[];
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
|
||||
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
|
||||
|
||||
/**
|
||||
* 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 enum _envoy_api_v2_core_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 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,
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface HttpProtocolOptions {
|
||||
/**
|
||||
* The idle timeout for connections. The idle timeout is defined as the
|
||||
* period in which there are no active requests. When the
|
||||
* idle timeout is reached the connection will be closed. If the connection is an HTTP/2
|
||||
* downstream connection a drain sequence will occur prior to closing the connection, see
|
||||
* :ref:`drain_timeout
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
|
||||
* Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.
|
||||
* If not specified, this defaults to 1 hour. To disable idle timeouts explicitly set this to 0.
|
||||
*
|
||||
* .. warning::
|
||||
* Disabling this timeout has a highly likelihood of yielding connection leaks due to lost TCP
|
||||
* FIN packets, etc.
|
||||
*/
|
||||
'idle_timeout'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* The maximum number of headers. If unconfigured, the default
|
||||
* maximum number of request headers allowed is 100. Requests that exceed this limit will receive
|
||||
* a 431 response for HTTP/1.x and cause a stream reset for HTTP/2.
|
||||
*/
|
||||
'max_headers_count'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The maximum duration of a connection. The duration is defined as a period since a connection
|
||||
* was established. If not set, there is no max duration. When max_connection_duration is reached
|
||||
* the connection will be closed. Drain sequence will occur prior to closing the connection if
|
||||
* if's applicable. See :ref:`drain_timeout
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
|
||||
* Note: not implemented for upstream connections.
|
||||
*/
|
||||
'max_connection_duration'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Total duration to keep alive an HTTP request/response stream. If the time limit is reached the stream will be
|
||||
* reset independent of any other timeouts. If not specified, this value is not set.
|
||||
*/
|
||||
'max_stream_duration'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Action to take when a client request with a header name containing underscore characters is received.
|
||||
* If this setting is not specified, the value defaults to ALLOW.
|
||||
* Note: upstream responses are not affected by this setting.
|
||||
*/
|
||||
'headers_with_underscores_action'?: (_envoy_api_v2_core_HttpProtocolOptions_HeadersWithUnderscoresAction | keyof typeof _envoy_api_v2_core_HttpProtocolOptions_HeadersWithUnderscoresAction);
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface HttpProtocolOptions__Output {
|
||||
/**
|
||||
* The idle timeout for connections. The idle timeout is defined as the
|
||||
* period in which there are no active requests. When the
|
||||
* idle timeout is reached the connection will be closed. If the connection is an HTTP/2
|
||||
* downstream connection a drain sequence will occur prior to closing the connection, see
|
||||
* :ref:`drain_timeout
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
|
||||
* Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.
|
||||
* If not specified, this defaults to 1 hour. To disable idle timeouts explicitly set this to 0.
|
||||
*
|
||||
* .. warning::
|
||||
* Disabling this timeout has a highly likelihood of yielding connection leaks due to lost TCP
|
||||
* FIN packets, etc.
|
||||
*/
|
||||
'idle_timeout'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* The maximum number of headers. If unconfigured, the default
|
||||
* maximum number of request headers allowed is 100. Requests that exceed this limit will receive
|
||||
* a 431 response for HTTP/1.x and cause a stream reset for HTTP/2.
|
||||
*/
|
||||
'max_headers_count'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The maximum duration of a connection. The duration is defined as a period since a connection
|
||||
* was established. If not set, there is no max duration. When max_connection_duration is reached
|
||||
* the connection will be closed. Drain sequence will occur prior to closing the connection if
|
||||
* if's applicable. See :ref:`drain_timeout
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.drain_timeout>`.
|
||||
* Note: not implemented for upstream connections.
|
||||
*/
|
||||
'max_connection_duration'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Total duration to keep alive an HTTP request/response stream. If the time limit is reached the stream will be
|
||||
* reset independent of any other timeouts. If not specified, this value is not set.
|
||||
*/
|
||||
'max_stream_duration'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Action to take when a client request with a header name containing underscore characters is received.
|
||||
* If this setting is not specified, the value defaults to ALLOW.
|
||||
* Note: upstream responses are not affected by this setting.
|
||||
*/
|
||||
'headers_with_underscores_action': (keyof typeof _envoy_api_v2_core_HttpProtocolOptions_HeadersWithUnderscoresAction);
|
||||
}
|
||||
79
packages/grpc-js/src/generated/envoy/api/v2/core/HttpUri.ts
Normal file
79
packages/grpc-js/src/generated/envoy/api/v2/core/HttpUri.ts
Normal file
@ -0,0 +1,79 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/http_uri.proto
|
||||
|
||||
import { Duration as _google_protobuf_Duration, Duration__Output as _google_protobuf_Duration__Output } from '../../../../google/protobuf/Duration';
|
||||
|
||||
/**
|
||||
* Envoy external URI descriptor
|
||||
*/
|
||||
export interface HttpUri {
|
||||
/**
|
||||
* The HTTP server URI. It should be a full FQDN with protocol, host and path.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* uri: https://www.googleapis.com/oauth2/v1/certs
|
||||
*/
|
||||
'uri'?: (string);
|
||||
/**
|
||||
* A cluster is created in the Envoy "cluster_manager" config
|
||||
* section. This field specifies the cluster name.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* cluster: jwks_cluster
|
||||
*/
|
||||
'cluster'?: (string);
|
||||
/**
|
||||
* Sets the maximum duration in milliseconds that a response can take to arrive upon request.
|
||||
*/
|
||||
'timeout'?: (_google_protobuf_Duration);
|
||||
/**
|
||||
* Specify how `uri` is to be fetched. Today, this requires an explicit
|
||||
* cluster, but in the future we may support dynamic cluster creation or
|
||||
* inline DNS resolution. See `issue
|
||||
* <https://github.com/envoyproxy/envoy/issues/1606>`_.
|
||||
*/
|
||||
'http_upstream_type'?: "cluster";
|
||||
}
|
||||
|
||||
/**
|
||||
* Envoy external URI descriptor
|
||||
*/
|
||||
export interface HttpUri__Output {
|
||||
/**
|
||||
* The HTTP server URI. It should be a full FQDN with protocol, host and path.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* uri: https://www.googleapis.com/oauth2/v1/certs
|
||||
*/
|
||||
'uri': (string);
|
||||
/**
|
||||
* A cluster is created in the Envoy "cluster_manager" config
|
||||
* section. This field specifies the cluster name.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* cluster: jwks_cluster
|
||||
*/
|
||||
'cluster'?: (string);
|
||||
/**
|
||||
* Sets the maximum duration in milliseconds that a response can take to arrive upon request.
|
||||
*/
|
||||
'timeout'?: (_google_protobuf_Duration__Output);
|
||||
/**
|
||||
* Specify how `uri` is to be fetched. Today, this requires an explicit
|
||||
* cluster, but in the future we may support dynamic cluster creation or
|
||||
* inline DNS resolution. See `issue
|
||||
* <https://github.com/envoyproxy/envoy/issues/1606>`_.
|
||||
*/
|
||||
'http_upstream_type': "cluster";
|
||||
}
|
||||
56
packages/grpc-js/src/generated/envoy/api/v2/core/Locality.ts
Normal file
56
packages/grpc-js/src/generated/envoy/api/v2/core/Locality.ts
Normal file
@ -0,0 +1,56 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
|
||||
/**
|
||||
* Identifies location of where either Envoy runs or where upstream hosts run.
|
||||
*/
|
||||
export interface Locality {
|
||||
/**
|
||||
* Region this :ref:`zone <envoy_api_field_core.Locality.zone>` belongs to.
|
||||
*/
|
||||
'region'?: (string);
|
||||
/**
|
||||
* Defines the local service zone where Envoy is running. Though optional, it
|
||||
* should be set if discovery service routing is used and the discovery
|
||||
* service exposes :ref:`zone data <envoy_api_field_endpoint.LocalityLbEndpoints.locality>`,
|
||||
* either in this message or via :option:`--service-zone`. The meaning of zone
|
||||
* is context dependent, e.g. `Availability Zone (AZ)
|
||||
* <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_
|
||||
* on AWS, `Zone <https://cloud.google.com/compute/docs/regions-zones/>`_ on
|
||||
* GCP, etc.
|
||||
*/
|
||||
'zone'?: (string);
|
||||
/**
|
||||
* When used for locality of upstream hosts, this field further splits zone
|
||||
* into smaller chunks of sub-zones so they can be load balanced
|
||||
* independently.
|
||||
*/
|
||||
'sub_zone'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Identifies location of where either Envoy runs or where upstream hosts run.
|
||||
*/
|
||||
export interface Locality__Output {
|
||||
/**
|
||||
* Region this :ref:`zone <envoy_api_field_core.Locality.zone>` belongs to.
|
||||
*/
|
||||
'region': (string);
|
||||
/**
|
||||
* Defines the local service zone where Envoy is running. Though optional, it
|
||||
* should be set if discovery service routing is used and the discovery
|
||||
* service exposes :ref:`zone data <envoy_api_field_endpoint.LocalityLbEndpoints.locality>`,
|
||||
* either in this message or via :option:`--service-zone`. The meaning of zone
|
||||
* is context dependent, e.g. `Availability Zone (AZ)
|
||||
* <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_
|
||||
* on AWS, `Zone <https://cloud.google.com/compute/docs/regions-zones/>`_ on
|
||||
* GCP, etc.
|
||||
*/
|
||||
'zone': (string);
|
||||
/**
|
||||
* When used for locality of upstream hosts, this field further splits zone
|
||||
* into smaller chunks of sub-zones so they can be load balanced
|
||||
* independently.
|
||||
*/
|
||||
'sub_zone': (string);
|
||||
}
|
||||
67
packages/grpc-js/src/generated/envoy/api/v2/core/Metadata.ts
Normal file
67
packages/grpc-js/src/generated/envoy/api/v2/core/Metadata.ts
Normal file
@ -0,0 +1,67 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
|
||||
/**
|
||||
* Metadata provides additional inputs to filters based on matched listeners,
|
||||
* filter chains, routes and endpoints. It is structured as a map, usually from
|
||||
* filter name (in reverse DNS format) to metadata specific to the filter. Metadata
|
||||
* key-values for a filter are merged as connection and request handling occurs,
|
||||
* with later values for the same key overriding earlier values.
|
||||
*
|
||||
* An example use of metadata is providing additional values to
|
||||
* http_connection_manager in the envoy.http_connection_manager.access_log
|
||||
* namespace.
|
||||
*
|
||||
* Another example use of metadata is to per service config info in cluster metadata, which may get
|
||||
* consumed by multiple filters.
|
||||
*
|
||||
* For load balancing, Metadata provides a means to subset cluster endpoints.
|
||||
* Endpoints have a Metadata object associated and routes contain a Metadata
|
||||
* object to match against. There are some well defined metadata used today for
|
||||
* this purpose:
|
||||
*
|
||||
* * ``{"envoy.lb": {"canary": <bool> }}`` This indicates the canary status of an
|
||||
* endpoint and is also used during header processing
|
||||
* (x-envoy-upstream-canary) and for stats purposes.
|
||||
* [#next-major-version: move to type/metadata/v2]
|
||||
*/
|
||||
export interface Metadata {
|
||||
/**
|
||||
* Key is the reverse DNS filter name, e.g. com.acme.widget. The envoy.*
|
||||
* namespace is reserved for Envoy's built-in filters.
|
||||
*/
|
||||
'filter_metadata'?: ({[key: string]: _google_protobuf_Struct});
|
||||
}
|
||||
|
||||
/**
|
||||
* Metadata provides additional inputs to filters based on matched listeners,
|
||||
* filter chains, routes and endpoints. It is structured as a map, usually from
|
||||
* filter name (in reverse DNS format) to metadata specific to the filter. Metadata
|
||||
* key-values for a filter are merged as connection and request handling occurs,
|
||||
* with later values for the same key overriding earlier values.
|
||||
*
|
||||
* An example use of metadata is providing additional values to
|
||||
* http_connection_manager in the envoy.http_connection_manager.access_log
|
||||
* namespace.
|
||||
*
|
||||
* Another example use of metadata is to per service config info in cluster metadata, which may get
|
||||
* consumed by multiple filters.
|
||||
*
|
||||
* For load balancing, Metadata provides a means to subset cluster endpoints.
|
||||
* Endpoints have a Metadata object associated and routes contain a Metadata
|
||||
* object to match against. There are some well defined metadata used today for
|
||||
* this purpose:
|
||||
*
|
||||
* * ``{"envoy.lb": {"canary": <bool> }}`` This indicates the canary status of an
|
||||
* endpoint and is also used during header processing
|
||||
* (x-envoy-upstream-canary) and for stats purposes.
|
||||
* [#next-major-version: move to type/metadata/v2]
|
||||
*/
|
||||
export interface Metadata__Output {
|
||||
/**
|
||||
* Key is the reverse DNS filter name, e.g. com.acme.widget. The envoy.*
|
||||
* namespace is reserved for Envoy's built-in filters.
|
||||
*/
|
||||
'filter_metadata'?: ({[key: string]: _google_protobuf_Struct__Output});
|
||||
}
|
||||
173
packages/grpc-js/src/generated/envoy/api/v2/core/Node.ts
Normal file
173
packages/grpc-js/src/generated/envoy/api/v2/core/Node.ts
Normal file
@ -0,0 +1,173 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
import { Locality as _envoy_api_v2_core_Locality, Locality__Output as _envoy_api_v2_core_Locality__Output } from '../../../../envoy/api/v2/core/Locality';
|
||||
import { BuildVersion as _envoy_api_v2_core_BuildVersion, BuildVersion__Output as _envoy_api_v2_core_BuildVersion__Output } from '../../../../envoy/api/v2/core/BuildVersion';
|
||||
import { Extension as _envoy_api_v2_core_Extension, Extension__Output as _envoy_api_v2_core_Extension__Output } from '../../../../envoy/api/v2/core/Extension';
|
||||
import { Address as _envoy_api_v2_core_Address, Address__Output as _envoy_api_v2_core_Address__Output } from '../../../../envoy/api/v2/core/Address';
|
||||
|
||||
/**
|
||||
* Identifies a specific Envoy instance. The node identifier is presented to the
|
||||
* management server, which may use this identifier to distinguish per Envoy
|
||||
* configuration for serving.
|
||||
* [#next-free-field: 12]
|
||||
*/
|
||||
export interface Node {
|
||||
/**
|
||||
* An opaque node identifier for the Envoy node. This also provides the local
|
||||
* service node name. It should be set if any of the following features are
|
||||
* used: :ref:`statsd <arch_overview_statistics>`, :ref:`CDS
|
||||
* <config_cluster_manager_cds>`, and :ref:`HTTP tracing
|
||||
* <arch_overview_tracing>`, either in this message or via
|
||||
* :option:`--service-node`.
|
||||
*/
|
||||
'id'?: (string);
|
||||
/**
|
||||
* Defines the local service cluster name where Envoy is running. Though
|
||||
* optional, it should be set if any of the following features are used:
|
||||
* :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
|
||||
* verification
|
||||
* <envoy_api_field_core.HealthCheck.HttpHealthCheck.service_name_matcher>`,
|
||||
* :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v2.Runtime>`,
|
||||
* :ref:`user agent addition
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.add_user_agent>`,
|
||||
* :ref:`HTTP global rate limiting <config_http_filters_rate_limit>`,
|
||||
* :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
|
||||
* <arch_overview_tracing>`, either in this message or via
|
||||
* :option:`--service-cluster`.
|
||||
*/
|
||||
'cluster'?: (string);
|
||||
/**
|
||||
* Opaque metadata extending the node identifier. Envoy will pass this
|
||||
* directly to the management server.
|
||||
*/
|
||||
'metadata'?: (_google_protobuf_Struct);
|
||||
/**
|
||||
* Locality specifying where the Envoy instance is running.
|
||||
*/
|
||||
'locality'?: (_envoy_api_v2_core_Locality);
|
||||
/**
|
||||
* This is motivated by informing a management server during canary which
|
||||
* version of Envoy is being tested in a heterogeneous fleet. This will be set
|
||||
* by Envoy in management server RPCs.
|
||||
* This field is deprecated in favor of the user_agent_name and user_agent_version values.
|
||||
*/
|
||||
'build_version'?: (string);
|
||||
/**
|
||||
* Free-form string that identifies the entity requesting config.
|
||||
* E.g. "envoy" or "grpc"
|
||||
*/
|
||||
'user_agent_name'?: (string);
|
||||
/**
|
||||
* Free-form string that identifies the version of the entity requesting config.
|
||||
* E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild"
|
||||
*/
|
||||
'user_agent_version'?: (string);
|
||||
/**
|
||||
* Structured version of the entity requesting config.
|
||||
*/
|
||||
'user_agent_build_version'?: (_envoy_api_v2_core_BuildVersion);
|
||||
/**
|
||||
* List of extensions and their versions supported by the node.
|
||||
*/
|
||||
'extensions'?: (_envoy_api_v2_core_Extension)[];
|
||||
/**
|
||||
* Client feature support list. These are well known features described
|
||||
* in the Envoy API repository for a given major version of an API. Client features
|
||||
* use reverse DNS naming scheme, for example `com.acme.feature`.
|
||||
* See :ref:`the list of features <client_features>` that xDS client may
|
||||
* support.
|
||||
*/
|
||||
'client_features'?: (string)[];
|
||||
/**
|
||||
* Known listening ports on the node as a generic hint to the management server
|
||||
* for filtering :ref:`listeners <config_listeners>` to be returned. For example,
|
||||
* if there is a listener bound to port 80, the list can optionally contain the
|
||||
* SocketAddress `(0.0.0.0,80)`. The field is optional and just a hint.
|
||||
*/
|
||||
'listening_addresses'?: (_envoy_api_v2_core_Address)[];
|
||||
'user_agent_version_type'?: "user_agent_version"|"user_agent_build_version";
|
||||
}
|
||||
|
||||
/**
|
||||
* Identifies a specific Envoy instance. The node identifier is presented to the
|
||||
* management server, which may use this identifier to distinguish per Envoy
|
||||
* configuration for serving.
|
||||
* [#next-free-field: 12]
|
||||
*/
|
||||
export interface Node__Output {
|
||||
/**
|
||||
* An opaque node identifier for the Envoy node. This also provides the local
|
||||
* service node name. It should be set if any of the following features are
|
||||
* used: :ref:`statsd <arch_overview_statistics>`, :ref:`CDS
|
||||
* <config_cluster_manager_cds>`, and :ref:`HTTP tracing
|
||||
* <arch_overview_tracing>`, either in this message or via
|
||||
* :option:`--service-node`.
|
||||
*/
|
||||
'id': (string);
|
||||
/**
|
||||
* Defines the local service cluster name where Envoy is running. Though
|
||||
* optional, it should be set if any of the following features are used:
|
||||
* :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
|
||||
* verification
|
||||
* <envoy_api_field_core.HealthCheck.HttpHealthCheck.service_name_matcher>`,
|
||||
* :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v2.Runtime>`,
|
||||
* :ref:`user agent addition
|
||||
* <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.add_user_agent>`,
|
||||
* :ref:`HTTP global rate limiting <config_http_filters_rate_limit>`,
|
||||
* :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
|
||||
* <arch_overview_tracing>`, either in this message or via
|
||||
* :option:`--service-cluster`.
|
||||
*/
|
||||
'cluster': (string);
|
||||
/**
|
||||
* Opaque metadata extending the node identifier. Envoy will pass this
|
||||
* directly to the management server.
|
||||
*/
|
||||
'metadata'?: (_google_protobuf_Struct__Output);
|
||||
/**
|
||||
* Locality specifying where the Envoy instance is running.
|
||||
*/
|
||||
'locality'?: (_envoy_api_v2_core_Locality__Output);
|
||||
/**
|
||||
* This is motivated by informing a management server during canary which
|
||||
* version of Envoy is being tested in a heterogeneous fleet. This will be set
|
||||
* by Envoy in management server RPCs.
|
||||
* This field is deprecated in favor of the user_agent_name and user_agent_version values.
|
||||
*/
|
||||
'build_version': (string);
|
||||
/**
|
||||
* Free-form string that identifies the entity requesting config.
|
||||
* E.g. "envoy" or "grpc"
|
||||
*/
|
||||
'user_agent_name': (string);
|
||||
/**
|
||||
* Free-form string that identifies the version of the entity requesting config.
|
||||
* E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild"
|
||||
*/
|
||||
'user_agent_version'?: (string);
|
||||
/**
|
||||
* Structured version of the entity requesting config.
|
||||
*/
|
||||
'user_agent_build_version'?: (_envoy_api_v2_core_BuildVersion__Output);
|
||||
/**
|
||||
* List of extensions and their versions supported by the node.
|
||||
*/
|
||||
'extensions': (_envoy_api_v2_core_Extension__Output)[];
|
||||
/**
|
||||
* Client feature support list. These are well known features described
|
||||
* in the Envoy API repository for a given major version of an API. Client features
|
||||
* use reverse DNS naming scheme, for example `com.acme.feature`.
|
||||
* See :ref:`the list of features <client_features>` that xDS client may
|
||||
* support.
|
||||
*/
|
||||
'client_features': (string)[];
|
||||
/**
|
||||
* Known listening ports on the node as a generic hint to the management server
|
||||
* for filtering :ref:`listeners <config_listeners>` to be returned. For example,
|
||||
* if there is a listener bound to port 80, the list can optionally contain the
|
||||
* SocketAddress `(0.0.0.0,80)`. The field is optional and just a hint.
|
||||
*/
|
||||
'listening_addresses': (_envoy_api_v2_core_Address__Output)[];
|
||||
'user_agent_version_type': "user_agent_version"|"user_agent_build_version";
|
||||
}
|
||||
30
packages/grpc-js/src/generated/envoy/api/v2/core/Pipe.ts
Normal file
30
packages/grpc-js/src/generated/envoy/api/v2/core/Pipe.ts
Normal file
@ -0,0 +1,30 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/address.proto
|
||||
|
||||
|
||||
export interface Pipe {
|
||||
/**
|
||||
* Unix Domain Socket path. On Linux, paths starting with '@' will use the
|
||||
* abstract namespace. The starting '@' is replaced by a null byte by Envoy.
|
||||
* Paths starting with '@' will result in an error in environments other than
|
||||
* Linux.
|
||||
*/
|
||||
'path'?: (string);
|
||||
/**
|
||||
* The mode for the Pipe. Not applicable for abstract sockets.
|
||||
*/
|
||||
'mode'?: (number);
|
||||
}
|
||||
|
||||
export interface Pipe__Output {
|
||||
/**
|
||||
* Unix Domain Socket path. On Linux, paths starting with '@' will use the
|
||||
* abstract namespace. The starting '@' is replaced by a null byte by Envoy.
|
||||
* Paths starting with '@' will result in an error in environments other than
|
||||
* Linux.
|
||||
*/
|
||||
'path': (string);
|
||||
/**
|
||||
* The mode for the Pipe. Not applicable for abstract sockets.
|
||||
*/
|
||||
'mode': (number);
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
|
||||
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
import { DoubleValue as _google_protobuf_DoubleValue, DoubleValue__Output as _google_protobuf_DoubleValue__Output } from '../../../../google/protobuf/DoubleValue';
|
||||
|
||||
/**
|
||||
* Rate Limit settings to be applied for discovery requests made by Envoy.
|
||||
*/
|
||||
export interface RateLimitSettings {
|
||||
/**
|
||||
* Maximum number of tokens to be used for rate limiting discovery request calls. If not set, a
|
||||
* default value of 100 will be used.
|
||||
*/
|
||||
'max_tokens'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Rate at which tokens will be filled per second. If not set, a default fill rate of 10 tokens
|
||||
* per second will be used.
|
||||
*/
|
||||
'fill_rate'?: (_google_protobuf_DoubleValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rate Limit settings to be applied for discovery requests made by Envoy.
|
||||
*/
|
||||
export interface RateLimitSettings__Output {
|
||||
/**
|
||||
* Maximum number of tokens to be used for rate limiting discovery request calls. If not set, a
|
||||
* default value of 100 will be used.
|
||||
*/
|
||||
'max_tokens'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Rate at which tokens will be filled per second. If not set, a default fill rate of 10 tokens
|
||||
* per second will be used.
|
||||
*/
|
||||
'fill_rate'?: (_google_protobuf_DoubleValue__Output);
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { HttpUri as _envoy_api_v2_core_HttpUri, HttpUri__Output as _envoy_api_v2_core_HttpUri__Output } from '../../../../envoy/api/v2/core/HttpUri';
|
||||
import { RetryPolicy as _envoy_api_v2_core_RetryPolicy, RetryPolicy__Output as _envoy_api_v2_core_RetryPolicy__Output } from '../../../../envoy/api/v2/core/RetryPolicy';
|
||||
|
||||
/**
|
||||
* The message specifies how to fetch data from remote and how to verify it.
|
||||
*/
|
||||
export interface RemoteDataSource {
|
||||
/**
|
||||
* The HTTP URI to fetch the remote data.
|
||||
*/
|
||||
'http_uri'?: (_envoy_api_v2_core_HttpUri);
|
||||
/**
|
||||
* SHA256 string for verifying data.
|
||||
*/
|
||||
'sha256'?: (string);
|
||||
/**
|
||||
* Retry policy for fetching remote data.
|
||||
*/
|
||||
'retry_policy'?: (_envoy_api_v2_core_RetryPolicy);
|
||||
}
|
||||
|
||||
/**
|
||||
* The message specifies how to fetch data from remote and how to verify it.
|
||||
*/
|
||||
export interface RemoteDataSource__Output {
|
||||
/**
|
||||
* The HTTP URI to fetch the remote data.
|
||||
*/
|
||||
'http_uri'?: (_envoy_api_v2_core_HttpUri__Output);
|
||||
/**
|
||||
* SHA256 string for verifying data.
|
||||
*/
|
||||
'sha256': (string);
|
||||
/**
|
||||
* Retry policy for fetching remote data.
|
||||
*/
|
||||
'retry_policy'?: (_envoy_api_v2_core_RetryPolicy__Output);
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
/**
|
||||
* HTTP request method.
|
||||
*/
|
||||
export enum RequestMethod {
|
||||
METHOD_UNSPECIFIED = 0,
|
||||
GET = 1,
|
||||
HEAD = 2,
|
||||
POST = 3,
|
||||
PUT = 4,
|
||||
DELETE = 5,
|
||||
CONNECT = 6,
|
||||
OPTIONS = 7,
|
||||
TRACE = 8,
|
||||
PATCH = 9,
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { BackoffStrategy as _envoy_api_v2_core_BackoffStrategy, BackoffStrategy__Output as _envoy_api_v2_core_BackoffStrategy__Output } from '../../../../envoy/api/v2/core/BackoffStrategy';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
|
||||
/**
|
||||
* The message specifies the retry policy of remote data source when fetching fails.
|
||||
*/
|
||||
export interface RetryPolicy {
|
||||
/**
|
||||
* Specifies parameters that control :ref:`retry backoff strategy <envoy_api_msg_core.BackoffStrategy>`.
|
||||
* This parameter is optional, in which case the default base interval is 1000 milliseconds. The
|
||||
* default maximum interval is 10 times the base interval.
|
||||
*/
|
||||
'retry_back_off'?: (_envoy_api_v2_core_BackoffStrategy);
|
||||
/**
|
||||
* Specifies the allowed number of retries. This parameter is optional and
|
||||
* defaults to 1.
|
||||
*/
|
||||
'num_retries'?: (_google_protobuf_UInt32Value);
|
||||
}
|
||||
|
||||
/**
|
||||
* The message specifies the retry policy of remote data source when fetching fails.
|
||||
*/
|
||||
export interface RetryPolicy__Output {
|
||||
/**
|
||||
* Specifies parameters that control :ref:`retry backoff strategy <envoy_api_msg_core.BackoffStrategy>`.
|
||||
* This parameter is optional, in which case the default base interval is 1000 milliseconds. The
|
||||
* default maximum interval is 10 times the base interval.
|
||||
*/
|
||||
'retry_back_off'?: (_envoy_api_v2_core_BackoffStrategy__Output);
|
||||
/**
|
||||
* Specifies the allowed number of retries. This parameter is optional and
|
||||
* defaults to 1.
|
||||
*/
|
||||
'num_retries'?: (_google_protobuf_UInt32Value__Output);
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
/**
|
||||
* Envoy supports :ref:`upstream priority routing
|
||||
* <arch_overview_http_routing_priority>` both at the route and the virtual
|
||||
* cluster level. The current priority implementation uses different connection
|
||||
* pool and circuit breaking settings for each priority level. This means that
|
||||
* even for HTTP/2 requests, two physical connections will be used to an
|
||||
* upstream host. In the future Envoy will likely support true HTTP/2 priority
|
||||
* over a single upstream connection.
|
||||
*/
|
||||
export enum RoutingPriority {
|
||||
DEFAULT = 0,
|
||||
HIGH = 1,
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
|
||||
/**
|
||||
* Runtime derived double with a default when not specified.
|
||||
*/
|
||||
export interface RuntimeDouble {
|
||||
/**
|
||||
* Default value if runtime value is not available.
|
||||
*/
|
||||
'default_value'?: (number | string);
|
||||
/**
|
||||
* Runtime key to get value for comparison. This value is used if defined.
|
||||
*/
|
||||
'runtime_key'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Runtime derived double with a default when not specified.
|
||||
*/
|
||||
export interface RuntimeDouble__Output {
|
||||
/**
|
||||
* Default value if runtime value is not available.
|
||||
*/
|
||||
'default_value': (number | string);
|
||||
/**
|
||||
* Runtime key to get value for comparison. This value is used if defined.
|
||||
*/
|
||||
'runtime_key': (string);
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
|
||||
/**
|
||||
* Runtime derived bool with a default when not specified.
|
||||
*/
|
||||
export interface RuntimeFeatureFlag {
|
||||
/**
|
||||
* Default value if runtime value is not available.
|
||||
*/
|
||||
'default_value'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Runtime key to get value for comparison. This value is used if defined. The boolean value must
|
||||
* be represented via its
|
||||
* `canonical JSON encoding <https://developers.google.com/protocol-buffers/docs/proto3#json>`_.
|
||||
*/
|
||||
'runtime_key'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Runtime derived bool with a default when not specified.
|
||||
*/
|
||||
export interface RuntimeFeatureFlag__Output {
|
||||
/**
|
||||
* Default value if runtime value is not available.
|
||||
*/
|
||||
'default_value'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Runtime key to get value for comparison. This value is used if defined. The boolean value must
|
||||
* be represented via its
|
||||
* `canonical JSON encoding <https://developers.google.com/protocol-buffers/docs/proto3#json>`_.
|
||||
*/
|
||||
'runtime_key': (string);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { FractionalPercent as _envoy_type_FractionalPercent, FractionalPercent__Output as _envoy_type_FractionalPercent__Output } from '../../../../envoy/type/FractionalPercent';
|
||||
|
||||
/**
|
||||
* Runtime derived FractionalPercent with defaults for when the numerator or denominator is not
|
||||
* specified via a runtime key.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* Parsing of the runtime key's data is implemented such that it may be represented as a
|
||||
* :ref:`FractionalPercent <envoy_api_msg_type.FractionalPercent>` proto represented as JSON/YAML
|
||||
* and may also be represented as an integer with the assumption that the value is an integral
|
||||
* percentage out of 100. For instance, a runtime key lookup returning the value "42" would parse
|
||||
* as a `FractionalPercent` whose numerator is 42 and denominator is HUNDRED.
|
||||
*/
|
||||
export interface RuntimeFractionalPercent {
|
||||
/**
|
||||
* Default value if the runtime value's for the numerator/denominator keys are not available.
|
||||
*/
|
||||
'default_value'?: (_envoy_type_FractionalPercent);
|
||||
/**
|
||||
* Runtime key for a YAML representation of a FractionalPercent.
|
||||
*/
|
||||
'runtime_key'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Runtime derived FractionalPercent with defaults for when the numerator or denominator is not
|
||||
* specified via a runtime key.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* Parsing of the runtime key's data is implemented such that it may be represented as a
|
||||
* :ref:`FractionalPercent <envoy_api_msg_type.FractionalPercent>` proto represented as JSON/YAML
|
||||
* and may also be represented as an integer with the assumption that the value is an integral
|
||||
* percentage out of 100. For instance, a runtime key lookup returning the value "42" would parse
|
||||
* as a `FractionalPercent` whose numerator is 42 and denominator is HUNDRED.
|
||||
*/
|
||||
export interface RuntimeFractionalPercent__Output {
|
||||
/**
|
||||
* Default value if the runtime value's for the numerator/denominator keys are not available.
|
||||
*/
|
||||
'default_value'?: (_envoy_type_FractionalPercent__Output);
|
||||
/**
|
||||
* Runtime key for a YAML representation of a FractionalPercent.
|
||||
*/
|
||||
'runtime_key': (string);
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
|
||||
/**
|
||||
* Runtime derived uint32 with a default when not specified.
|
||||
*/
|
||||
export interface RuntimeUInt32 {
|
||||
/**
|
||||
* Default value if runtime value is not available.
|
||||
*/
|
||||
'default_value'?: (number);
|
||||
/**
|
||||
* Runtime key to get value for comparison. This value is used if defined.
|
||||
*/
|
||||
'runtime_key'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Runtime derived uint32 with a default when not specified.
|
||||
*/
|
||||
export interface RuntimeUInt32__Output {
|
||||
/**
|
||||
* Default value if runtime value is not available.
|
||||
*/
|
||||
'default_value': (number);
|
||||
/**
|
||||
* Runtime key to get value for comparison. This value is used if defined.
|
||||
*/
|
||||
'runtime_key': (string);
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/config_source.proto
|
||||
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* Self-referencing config source options. This is currently empty, but when
|
||||
* set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
|
||||
* specify that other data can be obtained from the same server.
|
||||
*/
|
||||
export interface SelfConfigSource {
|
||||
}
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
* Self-referencing config source options. This is currently empty, but when
|
||||
* set in :ref:`ConfigSource <envoy_api_msg_core.ConfigSource>` can be used to
|
||||
* specify that other data can be obtained from the same server.
|
||||
*/
|
||||
export interface SelfConfigSource__Output {
|
||||
}
|
||||
@ -0,0 +1,97 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/address.proto
|
||||
|
||||
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/address.proto
|
||||
|
||||
export enum _envoy_api_v2_core_SocketAddress_Protocol {
|
||||
TCP = 0,
|
||||
UDP = 1,
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface SocketAddress {
|
||||
'protocol'?: (_envoy_api_v2_core_SocketAddress_Protocol | keyof typeof _envoy_api_v2_core_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 ``::``
|
||||
* to bind to any address. [#comment:TODO(zuercher) reinstate when implemented:
|
||||
* It is possible to distinguish a Listener address via the prefix/suffix matching
|
||||
* in :ref:`FilterChainMatch <envoy_api_msg_listener.FilterChainMatch>`.] When used
|
||||
* within an upstream :ref:`BindConfig <envoy_api_msg_core.BindConfig>`, the address
|
||||
* controls the source address of outbound connections. For :ref:`clusters
|
||||
* <envoy_api_msg_Cluster>`, the cluster type determines whether the
|
||||
* address must be an IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS
|
||||
* (*STRICT_DNS* or *LOGICAL_DNS* clusters). Address resolution can be customized
|
||||
* via :ref:`resolver_name <envoy_api_field_core.SocketAddress.resolver_name>`.
|
||||
*/
|
||||
'address'?: (string);
|
||||
'port_value'?: (number);
|
||||
/**
|
||||
* This is only valid if :ref:`resolver_name
|
||||
* <envoy_api_field_core.SocketAddress.resolver_name>` is specified below and the
|
||||
* named resolver is capable of named port resolution.
|
||||
*/
|
||||
'named_port'?: (string);
|
||||
/**
|
||||
* The name of the custom resolver. This must have been registered with Envoy. If
|
||||
* this is empty, a context dependent default applies. If the address is a concrete
|
||||
* IP address, no resolution will occur. If address is a hostname this
|
||||
* should be set for resolution other than DNS. Specifying a custom resolver with
|
||||
* *STRICT_DNS* or *LOGICAL_DNS* will generate an error at runtime.
|
||||
*/
|
||||
'resolver_name'?: (string);
|
||||
/**
|
||||
* When binding to an IPv6 address above, this enables `IPv4 compatibility
|
||||
* <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to ``::`` will
|
||||
* allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into
|
||||
* IPv6 space as ``::FFFF:<IPv4-address>``.
|
||||
*/
|
||||
'ipv4_compat'?: (boolean);
|
||||
'port_specifier'?: "port_value"|"named_port";
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface SocketAddress__Output {
|
||||
'protocol': (keyof typeof _envoy_api_v2_core_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 ``::``
|
||||
* to bind to any address. [#comment:TODO(zuercher) reinstate when implemented:
|
||||
* It is possible to distinguish a Listener address via the prefix/suffix matching
|
||||
* in :ref:`FilterChainMatch <envoy_api_msg_listener.FilterChainMatch>`.] When used
|
||||
* within an upstream :ref:`BindConfig <envoy_api_msg_core.BindConfig>`, the address
|
||||
* controls the source address of outbound connections. For :ref:`clusters
|
||||
* <envoy_api_msg_Cluster>`, the cluster type determines whether the
|
||||
* address must be an IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS
|
||||
* (*STRICT_DNS* or *LOGICAL_DNS* clusters). Address resolution can be customized
|
||||
* via :ref:`resolver_name <envoy_api_field_core.SocketAddress.resolver_name>`.
|
||||
*/
|
||||
'address': (string);
|
||||
'port_value'?: (number);
|
||||
/**
|
||||
* This is only valid if :ref:`resolver_name
|
||||
* <envoy_api_field_core.SocketAddress.resolver_name>` is specified below and the
|
||||
* named resolver is capable of named port resolution.
|
||||
*/
|
||||
'named_port'?: (string);
|
||||
/**
|
||||
* The name of the custom resolver. This must have been registered with Envoy. If
|
||||
* this is empty, a context dependent default applies. If the address is a concrete
|
||||
* IP address, no resolution will occur. If address is a hostname this
|
||||
* should be set for resolution other than DNS. Specifying a custom resolver with
|
||||
* *STRICT_DNS* or *LOGICAL_DNS* will generate an error at runtime.
|
||||
*/
|
||||
'resolver_name': (string);
|
||||
/**
|
||||
* When binding to an IPv6 address above, this enables `IPv4 compatibility
|
||||
* <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to ``::`` will
|
||||
* allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into
|
||||
* IPv6 space as ``::FFFF:<IPv4-address>``.
|
||||
*/
|
||||
'ipv4_compat': (boolean);
|
||||
'port_specifier': "port_value"|"named_port";
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/socket_option.proto
|
||||
|
||||
import { Long } from '@grpc/proto-loader';
|
||||
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/socket_option.proto
|
||||
|
||||
export enum _envoy_api_v2_core_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,
|
||||
}
|
||||
|
||||
/**
|
||||
* Generic socket option message. This would be used to set socket options that
|
||||
* might not exist in upstream kernels or precompiled Envoy binaries.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface SocketOption {
|
||||
/**
|
||||
* An optional name to give this socket option for debugging, etc.
|
||||
* Uniqueness is not required and no special meaning is assumed.
|
||||
*/
|
||||
'description'?: (string);
|
||||
/**
|
||||
* Corresponding to the level value passed to setsockopt, such as IPPROTO_TCP
|
||||
*/
|
||||
'level'?: (number | string | Long);
|
||||
/**
|
||||
* The numeric name as passed to setsockopt
|
||||
*/
|
||||
'name'?: (number | string | Long);
|
||||
/**
|
||||
* Because many sockopts take an int value.
|
||||
*/
|
||||
'int_value'?: (number | string | Long);
|
||||
/**
|
||||
* Otherwise it's a byte buffer.
|
||||
*/
|
||||
'buf_value'?: (Buffer | Uint8Array | string);
|
||||
/**
|
||||
* The state in which the option will be applied. When used in BindConfig
|
||||
* STATE_PREBIND is currently the only valid value.
|
||||
*/
|
||||
'state'?: (_envoy_api_v2_core_SocketOption_SocketState | keyof typeof _envoy_api_v2_core_SocketOption_SocketState);
|
||||
'value'?: "int_value"|"buf_value";
|
||||
}
|
||||
|
||||
/**
|
||||
* Generic socket option message. This would be used to set socket options that
|
||||
* might not exist in upstream kernels or precompiled Envoy binaries.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface SocketOption__Output {
|
||||
/**
|
||||
* An optional name to give this socket option for debugging, etc.
|
||||
* Uniqueness is not required and no special meaning is assumed.
|
||||
*/
|
||||
'description': (string);
|
||||
/**
|
||||
* Corresponding to the level value passed to setsockopt, such as IPPROTO_TCP
|
||||
*/
|
||||
'level': (string);
|
||||
/**
|
||||
* The numeric name as passed to setsockopt
|
||||
*/
|
||||
'name': (string);
|
||||
/**
|
||||
* Because many sockopts take an int value.
|
||||
*/
|
||||
'int_value'?: (string);
|
||||
/**
|
||||
* Otherwise it's a byte buffer.
|
||||
*/
|
||||
'buf_value'?: (Buffer);
|
||||
/**
|
||||
* 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_api_v2_core_SocketOption_SocketState);
|
||||
'value': "int_value"|"buf_value";
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/address.proto
|
||||
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
|
||||
export interface TcpKeepalive {
|
||||
/**
|
||||
* Maximum number of keepalive probes to send without response before deciding
|
||||
* the connection is dead. Default is to use the OS level configuration (unless
|
||||
* overridden, Linux defaults to 9.)
|
||||
*/
|
||||
'keepalive_probes'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The number of seconds a connection needs to be idle before keep-alive probes
|
||||
* start being sent. Default is to use the OS level configuration (unless
|
||||
* overridden, Linux defaults to 7200s (i.e., 2 hours.)
|
||||
*/
|
||||
'keepalive_time'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The number of seconds between keep-alive probes. Default is to use the OS
|
||||
* level configuration (unless overridden, Linux defaults to 75s.)
|
||||
*/
|
||||
'keepalive_interval'?: (_google_protobuf_UInt32Value);
|
||||
}
|
||||
|
||||
export interface TcpKeepalive__Output {
|
||||
/**
|
||||
* Maximum number of keepalive probes to send without response before deciding
|
||||
* the connection is dead. Default is to use the OS level configuration (unless
|
||||
* overridden, Linux defaults to 9.)
|
||||
*/
|
||||
'keepalive_probes'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The number of seconds a connection needs to be idle before keep-alive probes
|
||||
* start being sent. Default is to use the OS level configuration (unless
|
||||
* overridden, Linux defaults to 7200s (i.e., 2 hours.)
|
||||
*/
|
||||
'keepalive_time'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The number of seconds between keep-alive probes. Default is to use the OS
|
||||
* level configuration (unless overridden, Linux defaults to 75s.)
|
||||
*/
|
||||
'keepalive_interval'?: (_google_protobuf_UInt32Value__Output);
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
|
||||
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
export interface TcpProtocolOptions {
|
||||
}
|
||||
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
export interface TcpProtocolOptions__Output {
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
/**
|
||||
* Identifies the direction of the traffic relative to the local Envoy.
|
||||
*/
|
||||
export enum 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,
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/base.proto
|
||||
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
|
||||
|
||||
/**
|
||||
* Configuration for transport socket in :ref:`listeners <config_listeners>` and
|
||||
* :ref:`clusters <envoy_api_msg_Cluster>`. If the configuration is
|
||||
* empty, a default transport socket implementation and configuration will be
|
||||
* chosen based on the platform and existence of tls_context.
|
||||
*/
|
||||
export interface TransportSocket {
|
||||
/**
|
||||
* The name of the transport socket to instantiate. The name must match a supported transport
|
||||
* socket implementation.
|
||||
*/
|
||||
'name'?: (string);
|
||||
'config'?: (_google_protobuf_Struct);
|
||||
'typed_config'?: (_google_protobuf_Any);
|
||||
/**
|
||||
* Implementation specific configuration which depends on the implementation being instantiated.
|
||||
* See the supported transport socket implementations for further documentation.
|
||||
*/
|
||||
'config_type'?: "config"|"typed_config";
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration for transport socket in :ref:`listeners <config_listeners>` and
|
||||
* :ref:`clusters <envoy_api_msg_Cluster>`. If the configuration is
|
||||
* empty, a default transport socket implementation and configuration will be
|
||||
* chosen based on the platform and existence of tls_context.
|
||||
*/
|
||||
export interface TransportSocket__Output {
|
||||
/**
|
||||
* The name of the transport socket to instantiate. The name must match a supported transport
|
||||
* socket implementation.
|
||||
*/
|
||||
'name': (string);
|
||||
'config'?: (_google_protobuf_Struct__Output);
|
||||
'typed_config'?: (_google_protobuf_Any__Output);
|
||||
/**
|
||||
* Implementation specific configuration which depends on the implementation being instantiated.
|
||||
* See the supported transport socket implementations for further documentation.
|
||||
*/
|
||||
'config_type': "config"|"typed_config";
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/core/protocol.proto
|
||||
|
||||
|
||||
export interface UpstreamHttpProtocolOptions {
|
||||
/**
|
||||
* Set transport socket `SNI <https://en.wikipedia.org/wiki/Server_Name_Indication>`_ for new
|
||||
* upstream connections based on the downstream HTTP host/authority header, as seen by the
|
||||
* :ref:`router filter <config_http_filters_router>`.
|
||||
*/
|
||||
'auto_sni'?: (boolean);
|
||||
/**
|
||||
* Automatic validate upstream presented certificate for new upstream connections based on the
|
||||
* downstream HTTP host/authority header, as seen by the
|
||||
* :ref:`router filter <config_http_filters_router>`.
|
||||
* This field is intended to set with `auto_sni` field.
|
||||
*/
|
||||
'auto_san_validation'?: (boolean);
|
||||
}
|
||||
|
||||
export interface UpstreamHttpProtocolOptions__Output {
|
||||
/**
|
||||
* Set transport socket `SNI <https://en.wikipedia.org/wiki/Server_Name_Indication>`_ for new
|
||||
* upstream connections based on the downstream HTTP host/authority header, as seen by the
|
||||
* :ref:`router filter <config_http_filters_router>`.
|
||||
*/
|
||||
'auto_sni': (boolean);
|
||||
/**
|
||||
* Automatic validate upstream presented certificate for new upstream connections based on the
|
||||
* downstream HTTP host/authority header, as seen by the
|
||||
* :ref:`router filter <config_http_filters_router>`.
|
||||
* This field is intended to set with `auto_sni` field.
|
||||
*/
|
||||
'auto_san_validation': (boolean);
|
||||
}
|
||||
119
packages/grpc-js/src/generated/envoy/api/v2/endpoint/Endpoint.ts
Normal file
119
packages/grpc-js/src/generated/envoy/api/v2/endpoint/Endpoint.ts
Normal file
@ -0,0 +1,119 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto
|
||||
|
||||
import { Address as _envoy_api_v2_core_Address, Address__Output as _envoy_api_v2_core_Address__Output } from '../../../../envoy/api/v2/core/Address';
|
||||
|
||||
/**
|
||||
* The optional health check configuration.
|
||||
*/
|
||||
export interface _envoy_api_v2_endpoint_Endpoint_HealthCheckConfig {
|
||||
/**
|
||||
* Optional alternative health check port value.
|
||||
*
|
||||
* By default the health check address port of an upstream host is the same
|
||||
* as the host's serving address port. This provides an alternative health
|
||||
* check port. Setting this with a non-zero value allows an upstream host
|
||||
* to have different health check address port.
|
||||
*/
|
||||
'port_value'?: (number);
|
||||
/**
|
||||
* By default, the host header for L7 health checks is controlled by cluster level configuration
|
||||
* (see: :ref:`host <envoy_api_field_core.HealthCheck.HttpHealthCheck.host>` and
|
||||
* :ref:`authority <envoy_api_field_core.HealthCheck.GrpcHealthCheck.authority>`). Setting this
|
||||
* to a non-empty value allows overriding the cluster level configuration for a specific
|
||||
* endpoint.
|
||||
*/
|
||||
'hostname'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* The optional health check configuration.
|
||||
*/
|
||||
export interface _envoy_api_v2_endpoint_Endpoint_HealthCheckConfig__Output {
|
||||
/**
|
||||
* Optional alternative health check port value.
|
||||
*
|
||||
* By default the health check address port of an upstream host is the same
|
||||
* as the host's serving address port. This provides an alternative health
|
||||
* check port. Setting this with a non-zero value allows an upstream host
|
||||
* to have different health check address port.
|
||||
*/
|
||||
'port_value': (number);
|
||||
/**
|
||||
* By default, the host header for L7 health checks is controlled by cluster level configuration
|
||||
* (see: :ref:`host <envoy_api_field_core.HealthCheck.HttpHealthCheck.host>` and
|
||||
* :ref:`authority <envoy_api_field_core.HealthCheck.GrpcHealthCheck.authority>`). Setting this
|
||||
* to a non-empty value allows overriding the cluster level configuration for a specific
|
||||
* endpoint.
|
||||
*/
|
||||
'hostname': (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Upstream host identifier.
|
||||
*/
|
||||
export interface Endpoint {
|
||||
/**
|
||||
* The upstream host address.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* The form of host address depends on the given cluster type. For STATIC or EDS,
|
||||
* it is expected to be a direct IP address (or something resolvable by the
|
||||
* specified :ref:`resolver <envoy_api_field_core.SocketAddress.resolver_name>`
|
||||
* in the Address). For LOGICAL or STRICT DNS, it is expected to be hostname,
|
||||
* and will be resolved via DNS.
|
||||
*/
|
||||
'address'?: (_envoy_api_v2_core_Address);
|
||||
/**
|
||||
* The optional health check configuration is used as configuration for the
|
||||
* health checker to contact the health checked host.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* This takes into effect only for upstream clusters with
|
||||
* :ref:`active health checking <arch_overview_health_checking>` enabled.
|
||||
*/
|
||||
'health_check_config'?: (_envoy_api_v2_endpoint_Endpoint_HealthCheckConfig);
|
||||
/**
|
||||
* The hostname associated with this endpoint. This hostname is not used for routing or address
|
||||
* resolution. If provided, it will be associated with the endpoint, and can be used for features
|
||||
* that require a hostname, like
|
||||
* :ref:`auto_host_rewrite <envoy_api_field_route.RouteAction.auto_host_rewrite>`.
|
||||
*/
|
||||
'hostname'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Upstream host identifier.
|
||||
*/
|
||||
export interface Endpoint__Output {
|
||||
/**
|
||||
* The upstream host address.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* The form of host address depends on the given cluster type. For STATIC or EDS,
|
||||
* it is expected to be a direct IP address (or something resolvable by the
|
||||
* specified :ref:`resolver <envoy_api_field_core.SocketAddress.resolver_name>`
|
||||
* in the Address). For LOGICAL or STRICT DNS, it is expected to be hostname,
|
||||
* and will be resolved via DNS.
|
||||
*/
|
||||
'address'?: (_envoy_api_v2_core_Address__Output);
|
||||
/**
|
||||
* The optional health check configuration is used as configuration for the
|
||||
* health checker to contact the health checked host.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* This takes into effect only for upstream clusters with
|
||||
* :ref:`active health checking <arch_overview_health_checking>` enabled.
|
||||
*/
|
||||
'health_check_config'?: (_envoy_api_v2_endpoint_Endpoint_HealthCheckConfig__Output);
|
||||
/**
|
||||
* The hostname associated with this endpoint. This hostname is not used for routing or address
|
||||
* resolution. If provided, it will be associated with the endpoint, and can be used for features
|
||||
* that require a hostname, like
|
||||
* :ref:`auto_host_rewrite <envoy_api_field_route.RouteAction.auto_host_rewrite>`.
|
||||
*/
|
||||
'hostname': (string);
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto
|
||||
|
||||
import { Endpoint as _envoy_api_v2_endpoint_Endpoint, Endpoint__Output as _envoy_api_v2_endpoint_Endpoint__Output } from '../../../../envoy/api/v2/endpoint/Endpoint';
|
||||
import { HealthStatus as _envoy_api_v2_core_HealthStatus } from '../../../../envoy/api/v2/core/HealthStatus';
|
||||
import { Metadata as _envoy_api_v2_core_Metadata, Metadata__Output as _envoy_api_v2_core_Metadata__Output } from '../../../../envoy/api/v2/core/Metadata';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
|
||||
/**
|
||||
* An Endpoint that Envoy can route traffic to.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface LbEndpoint {
|
||||
'endpoint'?: (_envoy_api_v2_endpoint_Endpoint);
|
||||
/**
|
||||
* Optional health status when known and supplied by EDS server.
|
||||
*/
|
||||
'health_status'?: (_envoy_api_v2_core_HealthStatus | keyof typeof _envoy_api_v2_core_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
|
||||
* name should be specified as *envoy.lb*. An example boolean key-value pair
|
||||
* is *canary*, providing the optional canary status of the upstream host.
|
||||
* This may be matched against in a route's
|
||||
* :ref:`RouteAction <envoy_api_msg_route.RouteAction>` metadata_match field
|
||||
* to subset the endpoints considered in cluster load balancing.
|
||||
*/
|
||||
'metadata'?: (_envoy_api_v2_core_Metadata);
|
||||
/**
|
||||
* The optional load balancing weight of the upstream host; at least 1.
|
||||
* Envoy uses the load balancing weight in some of the built in load
|
||||
* balancers. The load balancing weight for an endpoint is divided by the sum
|
||||
* of the weights of all endpoints in the endpoint's locality to produce a
|
||||
* percentage of traffic for the endpoint. This percentage is then further
|
||||
* weighted by the endpoint's locality's load balancing weight from
|
||||
* LocalityLbEndpoints. If unspecified, each host is presumed to have equal
|
||||
* weight in a locality. The sum of the weights of all endpoints in the
|
||||
* endpoint's locality must not exceed uint32_t maximal value (4294967295).
|
||||
*/
|
||||
'load_balancing_weight'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'endpoint_name'?: (string);
|
||||
/**
|
||||
* Upstream host identifier or a named reference.
|
||||
*/
|
||||
'host_identifier'?: "endpoint"|"endpoint_name";
|
||||
}
|
||||
|
||||
/**
|
||||
* An Endpoint that Envoy can route traffic to.
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface LbEndpoint__Output {
|
||||
'endpoint'?: (_envoy_api_v2_endpoint_Endpoint__Output);
|
||||
/**
|
||||
* Optional health status when known and supplied by EDS server.
|
||||
*/
|
||||
'health_status': (keyof typeof _envoy_api_v2_core_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
|
||||
* name should be specified as *envoy.lb*. An example boolean key-value pair
|
||||
* is *canary*, providing the optional canary status of the upstream host.
|
||||
* This may be matched against in a route's
|
||||
* :ref:`RouteAction <envoy_api_msg_route.RouteAction>` metadata_match field
|
||||
* to subset the endpoints considered in cluster load balancing.
|
||||
*/
|
||||
'metadata'?: (_envoy_api_v2_core_Metadata__Output);
|
||||
/**
|
||||
* The optional load balancing weight of the upstream host; at least 1.
|
||||
* Envoy uses the load balancing weight in some of the built in load
|
||||
* balancers. The load balancing weight for an endpoint is divided by the sum
|
||||
* of the weights of all endpoints in the endpoint's locality to produce a
|
||||
* percentage of traffic for the endpoint. This percentage is then further
|
||||
* weighted by the endpoint's locality's load balancing weight from
|
||||
* LocalityLbEndpoints. If unspecified, each host is presumed to have equal
|
||||
* weight in a locality. The sum of the weights of all endpoints in the
|
||||
* endpoint's locality must not exceed uint32_t maximal value (4294967295).
|
||||
*/
|
||||
'load_balancing_weight'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'endpoint_name'?: (string);
|
||||
/**
|
||||
* Upstream host identifier or a named reference.
|
||||
*/
|
||||
'host_identifier': "endpoint"|"endpoint_name";
|
||||
}
|
||||
@ -0,0 +1,111 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/endpoint/endpoint_components.proto
|
||||
|
||||
import { Locality as _envoy_api_v2_core_Locality, Locality__Output as _envoy_api_v2_core_Locality__Output } from '../../../../envoy/api/v2/core/Locality';
|
||||
import { LbEndpoint as _envoy_api_v2_endpoint_LbEndpoint, LbEndpoint__Output as _envoy_api_v2_endpoint_LbEndpoint__Output } from '../../../../envoy/api/v2/endpoint/LbEndpoint';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
|
||||
/**
|
||||
* A group of endpoints belonging to a Locality.
|
||||
* One can have multiple LocalityLbEndpoints for a locality, but this is
|
||||
* generally only done if the different groups need to have different load
|
||||
* balancing weights or different priorities.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface LocalityLbEndpoints {
|
||||
/**
|
||||
* Identifies location of where the upstream hosts run.
|
||||
*/
|
||||
'locality'?: (_envoy_api_v2_core_Locality);
|
||||
/**
|
||||
* The group of endpoints belonging to the locality specified.
|
||||
*/
|
||||
'lb_endpoints'?: (_envoy_api_v2_endpoint_LbEndpoint)[];
|
||||
/**
|
||||
* Optional: Per priority/region/zone/sub_zone weight; at least 1. The load
|
||||
* balancing weight for a locality is divided by the sum of the weights of all
|
||||
* localities at the same priority level to produce the effective percentage
|
||||
* of traffic for the locality. The sum of the weights of all localities at
|
||||
* the same priority level must not exceed uint32_t maximal value (4294967295).
|
||||
*
|
||||
* Locality weights are only considered when :ref:`locality weighted load
|
||||
* balancing <arch_overview_load_balancing_locality_weighted_lb>` is
|
||||
* configured. These weights are ignored otherwise. If no weights are
|
||||
* specified when locality weighted load balancing is enabled, the locality is
|
||||
* assigned no load.
|
||||
*/
|
||||
'load_balancing_weight'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Optional: the priority for this LocalityLbEndpoints. If unspecified this will
|
||||
* default to the highest priority (0).
|
||||
*
|
||||
* Under usual circumstances, Envoy will only select endpoints for the highest
|
||||
* priority (0). In the event all endpoints for a particular priority are
|
||||
* unavailable/unhealthy, Envoy will fail over to selecting endpoints for the
|
||||
* next highest priority group.
|
||||
*
|
||||
* Priorities should range from 0 (highest) to N (lowest) without skipping.
|
||||
*/
|
||||
'priority'?: (number);
|
||||
/**
|
||||
* Optional: Per locality proximity value which indicates how close this
|
||||
* locality is from the source locality. This value only provides ordering
|
||||
* information (lower the value, closer it is to the source locality).
|
||||
* This will be consumed by load balancing schemes that need proximity order
|
||||
* to determine where to route the requests.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'proximity'?: (_google_protobuf_UInt32Value);
|
||||
}
|
||||
|
||||
/**
|
||||
* A group of endpoints belonging to a Locality.
|
||||
* One can have multiple LocalityLbEndpoints for a locality, but this is
|
||||
* generally only done if the different groups need to have different load
|
||||
* balancing weights or different priorities.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface LocalityLbEndpoints__Output {
|
||||
/**
|
||||
* Identifies location of where the upstream hosts run.
|
||||
*/
|
||||
'locality'?: (_envoy_api_v2_core_Locality__Output);
|
||||
/**
|
||||
* The group of endpoints belonging to the locality specified.
|
||||
*/
|
||||
'lb_endpoints': (_envoy_api_v2_endpoint_LbEndpoint__Output)[];
|
||||
/**
|
||||
* Optional: Per priority/region/zone/sub_zone weight; at least 1. The load
|
||||
* balancing weight for a locality is divided by the sum of the weights of all
|
||||
* localities at the same priority level to produce the effective percentage
|
||||
* of traffic for the locality. The sum of the weights of all localities at
|
||||
* the same priority level must not exceed uint32_t maximal value (4294967295).
|
||||
*
|
||||
* Locality weights are only considered when :ref:`locality weighted load
|
||||
* balancing <arch_overview_load_balancing_locality_weighted_lb>` is
|
||||
* configured. These weights are ignored otherwise. If no weights are
|
||||
* specified when locality weighted load balancing is enabled, the locality is
|
||||
* assigned no load.
|
||||
*/
|
||||
'load_balancing_weight'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Optional: the priority for this LocalityLbEndpoints. If unspecified this will
|
||||
* default to the highest priority (0).
|
||||
*
|
||||
* Under usual circumstances, Envoy will only select endpoints for the highest
|
||||
* priority (0). In the event all endpoints for a particular priority are
|
||||
* unavailable/unhealthy, Envoy will fail over to selecting endpoints for the
|
||||
* next highest priority group.
|
||||
*
|
||||
* Priorities should range from 0 (highest) to N (lowest) without skipping.
|
||||
*/
|
||||
'priority': (number);
|
||||
/**
|
||||
* Optional: Per locality proximity value which indicates how close this
|
||||
* locality is from the source locality. This value only provides ordering
|
||||
* information (lower the value, closer it is to the source locality).
|
||||
* This will be consumed by load balancing schemes that need proximity order
|
||||
* to determine where to route the requests.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'proximity'?: (_google_protobuf_UInt32Value__Output);
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener/udp_listener_config.proto
|
||||
|
||||
|
||||
export interface ActiveRawUdpListenerConfig {
|
||||
}
|
||||
|
||||
export interface ActiveRawUdpListenerConfig__Output {
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener/listener_components.proto
|
||||
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
|
||||
|
||||
export interface Filter {
|
||||
/**
|
||||
* The name of the filter to instantiate. The name must match a
|
||||
* :ref:`supported filter <config_network_filters>`.
|
||||
*/
|
||||
'name'?: (string);
|
||||
'config'?: (_google_protobuf_Struct);
|
||||
'typed_config'?: (_google_protobuf_Any);
|
||||
/**
|
||||
* Filter specific configuration which depends on the filter being
|
||||
* instantiated. See the supported filters for further documentation.
|
||||
*/
|
||||
'config_type'?: "config"|"typed_config";
|
||||
}
|
||||
|
||||
export interface Filter__Output {
|
||||
/**
|
||||
* The name of the filter to instantiate. The name must match a
|
||||
* :ref:`supported filter <config_network_filters>`.
|
||||
*/
|
||||
'name': (string);
|
||||
'config'?: (_google_protobuf_Struct__Output);
|
||||
'typed_config'?: (_google_protobuf_Any__Output);
|
||||
/**
|
||||
* Filter specific configuration which depends on the filter being
|
||||
* instantiated. See the supported filters for further documentation.
|
||||
*/
|
||||
'config_type': "config"|"typed_config";
|
||||
}
|
||||
@ -0,0 +1,118 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener/listener_components.proto
|
||||
|
||||
import { FilterChainMatch as _envoy_api_v2_listener_FilterChainMatch, FilterChainMatch__Output as _envoy_api_v2_listener_FilterChainMatch__Output } from '../../../../envoy/api/v2/listener/FilterChainMatch';
|
||||
import { DownstreamTlsContext as _envoy_api_v2_auth_DownstreamTlsContext, DownstreamTlsContext__Output as _envoy_api_v2_auth_DownstreamTlsContext__Output } from '../../../../envoy/api/v2/auth/DownstreamTlsContext';
|
||||
import { Filter as _envoy_api_v2_listener_Filter, Filter__Output as _envoy_api_v2_listener_Filter__Output } from '../../../../envoy/api/v2/listener/Filter';
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
import { Metadata as _envoy_api_v2_core_Metadata, Metadata__Output as _envoy_api_v2_core_Metadata__Output } from '../../../../envoy/api/v2/core/Metadata';
|
||||
import { TransportSocket as _envoy_api_v2_core_TransportSocket, TransportSocket__Output as _envoy_api_v2_core_TransportSocket__Output } from '../../../../envoy/api/v2/core/TransportSocket';
|
||||
|
||||
/**
|
||||
* A filter chain wraps a set of match criteria, an option TLS context, a set of filters, and
|
||||
* various other parameters.
|
||||
* [#next-free-field: 8]
|
||||
*/
|
||||
export interface FilterChain {
|
||||
/**
|
||||
* The criteria to use when matching a connection to this filter chain.
|
||||
*/
|
||||
'filter_chain_match'?: (_envoy_api_v2_listener_FilterChainMatch);
|
||||
/**
|
||||
* The TLS context for this filter chain.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* **This field is deprecated**. Use `transport_socket` with name `tls` instead. If both are
|
||||
* set, `transport_socket` takes priority.
|
||||
*/
|
||||
'tls_context'?: (_envoy_api_v2_auth_DownstreamTlsContext);
|
||||
/**
|
||||
* A list of individual network filters that make up the filter chain for
|
||||
* connections established with the listener. Order matters as the filters are
|
||||
* processed sequentially as connection events happen. Note: If the filter
|
||||
* list is empty, the connection will close by default.
|
||||
*/
|
||||
'filters'?: (_envoy_api_v2_listener_Filter)[];
|
||||
/**
|
||||
* Whether the listener should expect a PROXY protocol V1 header on new
|
||||
* connections. If this option is enabled, the listener will assume that that
|
||||
* remote address of the connection is the one specified in the header. Some
|
||||
* load balancers including the AWS ELB support this option. If the option is
|
||||
* absent or set to false, Envoy will use the physical peer address of the
|
||||
* connection as the remote address.
|
||||
*/
|
||||
'use_proxy_proto'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* [#not-implemented-hide:] filter chain metadata.
|
||||
*/
|
||||
'metadata'?: (_envoy_api_v2_core_Metadata);
|
||||
/**
|
||||
* Optional custom transport socket implementation to use for downstream connections.
|
||||
* To setup TLS, set a transport socket with name `tls` and
|
||||
* :ref:`DownstreamTlsContext <envoy_api_msg_auth.DownstreamTlsContext>` in the `typed_config`.
|
||||
* If no transport socket configuration is specified, new connections
|
||||
* will be set up with plaintext.
|
||||
*/
|
||||
'transport_socket'?: (_envoy_api_v2_core_TransportSocket);
|
||||
/**
|
||||
* [#not-implemented-hide:] The unique name (or empty) by which this filter chain is known. If no
|
||||
* name is provided, Envoy will allocate an internal UUID for the filter chain. If the filter
|
||||
* chain is to be dynamically updated or removed via FCDS a unique name must be provided.
|
||||
*/
|
||||
'name'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* A filter chain wraps a set of match criteria, an option TLS context, a set of filters, and
|
||||
* various other parameters.
|
||||
* [#next-free-field: 8]
|
||||
*/
|
||||
export interface FilterChain__Output {
|
||||
/**
|
||||
* The criteria to use when matching a connection to this filter chain.
|
||||
*/
|
||||
'filter_chain_match'?: (_envoy_api_v2_listener_FilterChainMatch__Output);
|
||||
/**
|
||||
* The TLS context for this filter chain.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* **This field is deprecated**. Use `transport_socket` with name `tls` instead. If both are
|
||||
* set, `transport_socket` takes priority.
|
||||
*/
|
||||
'tls_context'?: (_envoy_api_v2_auth_DownstreamTlsContext__Output);
|
||||
/**
|
||||
* A list of individual network filters that make up the filter chain for
|
||||
* connections established with the listener. Order matters as the filters are
|
||||
* processed sequentially as connection events happen. Note: If the filter
|
||||
* list is empty, the connection will close by default.
|
||||
*/
|
||||
'filters': (_envoy_api_v2_listener_Filter__Output)[];
|
||||
/**
|
||||
* Whether the listener should expect a PROXY protocol V1 header on new
|
||||
* connections. If this option is enabled, the listener will assume that that
|
||||
* remote address of the connection is the one specified in the header. Some
|
||||
* load balancers including the AWS ELB support this option. If the option is
|
||||
* absent or set to false, Envoy will use the physical peer address of the
|
||||
* connection as the remote address.
|
||||
*/
|
||||
'use_proxy_proto'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:] filter chain metadata.
|
||||
*/
|
||||
'metadata'?: (_envoy_api_v2_core_Metadata__Output);
|
||||
/**
|
||||
* Optional custom transport socket implementation to use for downstream connections.
|
||||
* To setup TLS, set a transport socket with name `tls` and
|
||||
* :ref:`DownstreamTlsContext <envoy_api_msg_auth.DownstreamTlsContext>` in the `typed_config`.
|
||||
* If no transport socket configuration is specified, new connections
|
||||
* will be set up with plaintext.
|
||||
*/
|
||||
'transport_socket'?: (_envoy_api_v2_core_TransportSocket__Output);
|
||||
/**
|
||||
* [#not-implemented-hide:] The unique name (or empty) by which this filter chain is known. If no
|
||||
* name is provided, Envoy will allocate an internal UUID for the filter chain. If the filter
|
||||
* chain is to be dynamically updated or removed via FCDS a unique name must be provided.
|
||||
*/
|
||||
'name': (string);
|
||||
}
|
||||
@ -0,0 +1,263 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener/listener_components.proto
|
||||
|
||||
import { CidrRange as _envoy_api_v2_core_CidrRange, CidrRange__Output as _envoy_api_v2_core_CidrRange__Output } from '../../../../envoy/api/v2/core/CidrRange';
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener/listener_components.proto
|
||||
|
||||
export enum _envoy_api_v2_listener_FilterChainMatch_ConnectionSourceType {
|
||||
/**
|
||||
* Any connection source matches.
|
||||
*/
|
||||
ANY = 0,
|
||||
/**
|
||||
* Match a connection originating from the same host.
|
||||
*/
|
||||
LOCAL = 1,
|
||||
/**
|
||||
* Match a connection originating from a different host.
|
||||
*/
|
||||
EXTERNAL = 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* Specifies the match criteria for selecting a specific filter chain for a
|
||||
* listener.
|
||||
*
|
||||
* In order for a filter chain to be selected, *ALL* of its criteria must be
|
||||
* fulfilled by the incoming connection, properties of which are set by the
|
||||
* networking stack and/or listener filters.
|
||||
*
|
||||
* The following order applies:
|
||||
*
|
||||
* 1. Destination port.
|
||||
* 2. Destination IP address.
|
||||
* 3. Server name (e.g. SNI for TLS protocol),
|
||||
* 4. Transport protocol.
|
||||
* 5. Application protocols (e.g. ALPN for TLS protocol).
|
||||
* 6. Source type (e.g. any, local or external network).
|
||||
* 7. Source IP address.
|
||||
* 8. Source port.
|
||||
*
|
||||
* For criteria that allow ranges or wildcards, the most specific value in any
|
||||
* of the configured filter chains that matches the incoming connection is going
|
||||
* to be used (e.g. for SNI ``www.example.com`` the most specific match would be
|
||||
* ``www.example.com``, then ``*.example.com``, then ``*.com``, then any filter
|
||||
* chain without ``server_names`` requirements).
|
||||
*
|
||||
* [#comment: Implemented rules are kept in the preference order, with deprecated fields
|
||||
* listed at the end, because that's how we want to list them in the docs.
|
||||
*
|
||||
* [#comment:TODO(PiotrSikora): Add support for configurable precedence of the rules]
|
||||
* [#next-free-field: 13]
|
||||
*/
|
||||
export interface FilterChainMatch {
|
||||
/**
|
||||
* If non-empty, an IP address and prefix length to match addresses when the
|
||||
* listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
|
||||
*/
|
||||
'prefix_ranges'?: (_envoy_api_v2_core_CidrRange)[];
|
||||
/**
|
||||
* If non-empty, an IP address and suffix length to match addresses when the
|
||||
* listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'address_suffix'?: (string);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'suffix_len'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The criteria is satisfied if the source IP address of the downstream
|
||||
* connection is contained in at least one of the specified subnets. If the
|
||||
* parameter is not specified or the list is empty, the source IP address is
|
||||
* ignored.
|
||||
*/
|
||||
'source_prefix_ranges'?: (_envoy_api_v2_core_CidrRange)[];
|
||||
/**
|
||||
* The criteria is satisfied if the source port of the downstream connection
|
||||
* is contained in at least one of the specified ports. If the parameter is
|
||||
* not specified, the source port is ignored.
|
||||
*/
|
||||
'source_ports'?: (number)[];
|
||||
/**
|
||||
* Optional destination port to consider when use_original_dst is set on the
|
||||
* listener in determining a filter chain match.
|
||||
*/
|
||||
'destination_port'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* If non-empty, a transport protocol to consider when determining a filter chain match.
|
||||
* This value will be compared against the transport protocol of a new connection, when
|
||||
* it's detected by one of the listener filters.
|
||||
*
|
||||
* Suggested values include:
|
||||
*
|
||||
* * ``raw_buffer`` - default, used when no transport protocol is detected,
|
||||
* * ``tls`` - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
|
||||
* when TLS protocol is detected.
|
||||
*/
|
||||
'transport_protocol'?: (string);
|
||||
/**
|
||||
* If non-empty, a list of application protocols (e.g. ALPN for TLS protocol) to consider when
|
||||
* determining a filter chain match. Those values will be compared against the application
|
||||
* protocols of a new connection, when detected by one of the listener filters.
|
||||
*
|
||||
* Suggested values include:
|
||||
*
|
||||
* * ``http/1.1`` - set by :ref:`envoy.filters.listener.tls_inspector
|
||||
* <config_listener_filters_tls_inspector>`,
|
||||
* * ``h2`` - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Currently, only :ref:`TLS Inspector <config_listener_filters_tls_inspector>` provides
|
||||
* application protocol detection based on the requested
|
||||
* `ALPN <https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation>`_ values.
|
||||
*
|
||||
* However, the use of ALPN is pretty much limited to the HTTP/2 traffic on the Internet,
|
||||
* and matching on values other than ``h2`` is going to lead to a lot of false negatives,
|
||||
* unless all connecting clients are known to use ALPN.
|
||||
*/
|
||||
'application_protocols'?: (string)[];
|
||||
/**
|
||||
* If non-empty, a list of server names (e.g. SNI for TLS protocol) to consider when determining
|
||||
* a filter chain match. Those values will be compared against the server names of a new
|
||||
* connection, when detected by one of the listener filters.
|
||||
*
|
||||
* The server name will be matched against all wildcard domains, i.e. ``www.example.com``
|
||||
* will be first matched against ``www.example.com``, then ``*.example.com``, then ``*.com``.
|
||||
*
|
||||
* Note that partial wildcards are not supported, and values like ``*w.example.com`` are invalid.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* See the :ref:`FAQ entry <faq_how_to_setup_sni>` on how to configure SNI for more
|
||||
* information.
|
||||
*/
|
||||
'server_names'?: (string)[];
|
||||
/**
|
||||
* Specifies the connection source IP match type. Can be any, local or external network.
|
||||
*/
|
||||
'source_type'?: (_envoy_api_v2_listener_FilterChainMatch_ConnectionSourceType | keyof typeof _envoy_api_v2_listener_FilterChainMatch_ConnectionSourceType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Specifies the match criteria for selecting a specific filter chain for a
|
||||
* listener.
|
||||
*
|
||||
* In order for a filter chain to be selected, *ALL* of its criteria must be
|
||||
* fulfilled by the incoming connection, properties of which are set by the
|
||||
* networking stack and/or listener filters.
|
||||
*
|
||||
* The following order applies:
|
||||
*
|
||||
* 1. Destination port.
|
||||
* 2. Destination IP address.
|
||||
* 3. Server name (e.g. SNI for TLS protocol),
|
||||
* 4. Transport protocol.
|
||||
* 5. Application protocols (e.g. ALPN for TLS protocol).
|
||||
* 6. Source type (e.g. any, local or external network).
|
||||
* 7. Source IP address.
|
||||
* 8. Source port.
|
||||
*
|
||||
* For criteria that allow ranges or wildcards, the most specific value in any
|
||||
* of the configured filter chains that matches the incoming connection is going
|
||||
* to be used (e.g. for SNI ``www.example.com`` the most specific match would be
|
||||
* ``www.example.com``, then ``*.example.com``, then ``*.com``, then any filter
|
||||
* chain without ``server_names`` requirements).
|
||||
*
|
||||
* [#comment: Implemented rules are kept in the preference order, with deprecated fields
|
||||
* listed at the end, because that's how we want to list them in the docs.
|
||||
*
|
||||
* [#comment:TODO(PiotrSikora): Add support for configurable precedence of the rules]
|
||||
* [#next-free-field: 13]
|
||||
*/
|
||||
export interface FilterChainMatch__Output {
|
||||
/**
|
||||
* If non-empty, an IP address and prefix length to match addresses when the
|
||||
* listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
|
||||
*/
|
||||
'prefix_ranges': (_envoy_api_v2_core_CidrRange__Output)[];
|
||||
/**
|
||||
* If non-empty, an IP address and suffix length to match addresses when the
|
||||
* listener is bound to 0.0.0.0/:: or when use_original_dst is specified.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'address_suffix': (string);
|
||||
/**
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'suffix_len'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The criteria is satisfied if the source IP address of the downstream
|
||||
* connection is contained in at least one of the specified subnets. If the
|
||||
* parameter is not specified or the list is empty, the source IP address is
|
||||
* ignored.
|
||||
*/
|
||||
'source_prefix_ranges': (_envoy_api_v2_core_CidrRange__Output)[];
|
||||
/**
|
||||
* The criteria is satisfied if the source port of the downstream connection
|
||||
* is contained in at least one of the specified ports. If the parameter is
|
||||
* not specified, the source port is ignored.
|
||||
*/
|
||||
'source_ports': (number)[];
|
||||
/**
|
||||
* Optional destination port to consider when use_original_dst is set on the
|
||||
* listener in determining a filter chain match.
|
||||
*/
|
||||
'destination_port'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* If non-empty, a transport protocol to consider when determining a filter chain match.
|
||||
* This value will be compared against the transport protocol of a new connection, when
|
||||
* it's detected by one of the listener filters.
|
||||
*
|
||||
* Suggested values include:
|
||||
*
|
||||
* * ``raw_buffer`` - default, used when no transport protocol is detected,
|
||||
* * ``tls`` - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
|
||||
* when TLS protocol is detected.
|
||||
*/
|
||||
'transport_protocol': (string);
|
||||
/**
|
||||
* If non-empty, a list of application protocols (e.g. ALPN for TLS protocol) to consider when
|
||||
* determining a filter chain match. Those values will be compared against the application
|
||||
* protocols of a new connection, when detected by one of the listener filters.
|
||||
*
|
||||
* Suggested values include:
|
||||
*
|
||||
* * ``http/1.1`` - set by :ref:`envoy.filters.listener.tls_inspector
|
||||
* <config_listener_filters_tls_inspector>`,
|
||||
* * ``h2`` - set by :ref:`envoy.filters.listener.tls_inspector <config_listener_filters_tls_inspector>`
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* Currently, only :ref:`TLS Inspector <config_listener_filters_tls_inspector>` provides
|
||||
* application protocol detection based on the requested
|
||||
* `ALPN <https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation>`_ values.
|
||||
*
|
||||
* However, the use of ALPN is pretty much limited to the HTTP/2 traffic on the Internet,
|
||||
* and matching on values other than ``h2`` is going to lead to a lot of false negatives,
|
||||
* unless all connecting clients are known to use ALPN.
|
||||
*/
|
||||
'application_protocols': (string)[];
|
||||
/**
|
||||
* If non-empty, a list of server names (e.g. SNI for TLS protocol) to consider when determining
|
||||
* a filter chain match. Those values will be compared against the server names of a new
|
||||
* connection, when detected by one of the listener filters.
|
||||
*
|
||||
* The server name will be matched against all wildcard domains, i.e. ``www.example.com``
|
||||
* will be first matched against ``www.example.com``, then ``*.example.com``, then ``*.com``.
|
||||
*
|
||||
* Note that partial wildcards are not supported, and values like ``*w.example.com`` are invalid.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* See the :ref:`FAQ entry <faq_how_to_setup_sni>` on how to configure SNI for more
|
||||
* information.
|
||||
*/
|
||||
'server_names': (string)[];
|
||||
/**
|
||||
* Specifies the connection source IP match type. Can be any, local or external network.
|
||||
*/
|
||||
'source_type': (keyof typeof _envoy_api_v2_listener_FilterChainMatch_ConnectionSourceType);
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener/listener_components.proto
|
||||
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
|
||||
import { ListenerFilterChainMatchPredicate as _envoy_api_v2_listener_ListenerFilterChainMatchPredicate, ListenerFilterChainMatchPredicate__Output as _envoy_api_v2_listener_ListenerFilterChainMatchPredicate__Output } from '../../../../envoy/api/v2/listener/ListenerFilterChainMatchPredicate';
|
||||
|
||||
export interface ListenerFilter {
|
||||
/**
|
||||
* The name of the filter to instantiate. The name must match a
|
||||
* :ref:`supported filter <config_listener_filters>`.
|
||||
*/
|
||||
'name'?: (string);
|
||||
'config'?: (_google_protobuf_Struct);
|
||||
'typed_config'?: (_google_protobuf_Any);
|
||||
/**
|
||||
* Optional match predicate used to disable the filter. The filter is enabled when this field is empty.
|
||||
* See :ref:`ListenerFilterChainMatchPredicate <envoy_api_msg_listener.ListenerFilterChainMatchPredicate>`
|
||||
* for further examples.
|
||||
*/
|
||||
'filter_disabled'?: (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate);
|
||||
/**
|
||||
* Filter specific configuration which depends on the filter being instantiated.
|
||||
* See the supported filters for further documentation.
|
||||
*/
|
||||
'config_type'?: "config"|"typed_config";
|
||||
}
|
||||
|
||||
export interface ListenerFilter__Output {
|
||||
/**
|
||||
* The name of the filter to instantiate. The name must match a
|
||||
* :ref:`supported filter <config_listener_filters>`.
|
||||
*/
|
||||
'name': (string);
|
||||
'config'?: (_google_protobuf_Struct__Output);
|
||||
'typed_config'?: (_google_protobuf_Any__Output);
|
||||
/**
|
||||
* Optional match predicate used to disable the filter. The filter is enabled when this field is empty.
|
||||
* See :ref:`ListenerFilterChainMatchPredicate <envoy_api_msg_listener.ListenerFilterChainMatchPredicate>`
|
||||
* for further examples.
|
||||
*/
|
||||
'filter_disabled'?: (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate__Output);
|
||||
/**
|
||||
* Filter specific configuration which depends on the filter being instantiated.
|
||||
* See the supported filters for further documentation.
|
||||
*/
|
||||
'config_type': "config"|"typed_config";
|
||||
}
|
||||
@ -0,0 +1,136 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener/listener_components.proto
|
||||
|
||||
import { ListenerFilterChainMatchPredicate as _envoy_api_v2_listener_ListenerFilterChainMatchPredicate, ListenerFilterChainMatchPredicate__Output as _envoy_api_v2_listener_ListenerFilterChainMatchPredicate__Output } from '../../../../envoy/api/v2/listener/ListenerFilterChainMatchPredicate';
|
||||
import { Int32Range as _envoy_type_Int32Range, Int32Range__Output as _envoy_type_Int32Range__Output } from '../../../../envoy/type/Int32Range';
|
||||
|
||||
/**
|
||||
* A set of match configurations used for logical operations.
|
||||
*/
|
||||
export interface _envoy_api_v2_listener_ListenerFilterChainMatchPredicate_MatchSet {
|
||||
/**
|
||||
* The list of rules that make up the set.
|
||||
*/
|
||||
'rules'?: (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* A set of match configurations used for logical operations.
|
||||
*/
|
||||
export interface _envoy_api_v2_listener_ListenerFilterChainMatchPredicate_MatchSet__Output {
|
||||
/**
|
||||
* The list of rules that make up the set.
|
||||
*/
|
||||
'rules': (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate__Output)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Listener filter chain match configuration. This is a recursive structure which allows complex
|
||||
* nested match configurations to be built using various logical operators.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * Matches if the destination port is 3306.
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* destination_port_range:
|
||||
* start: 3306
|
||||
* end: 3307
|
||||
*
|
||||
* * Matches if the destination port is 3306 or 15000.
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* or_match:
|
||||
* rules:
|
||||
* - destination_port_range:
|
||||
* start: 3306
|
||||
* end: 3306
|
||||
* - destination_port_range:
|
||||
* start: 15000
|
||||
* end: 15001
|
||||
*
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface ListenerFilterChainMatchPredicate {
|
||||
/**
|
||||
* A set that describes a logical OR. If any member of the set matches, the match configuration
|
||||
* matches.
|
||||
*/
|
||||
'or_match'?: (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate_MatchSet);
|
||||
/**
|
||||
* A set that describes a logical AND. If all members of the set match, the match configuration
|
||||
* matches.
|
||||
*/
|
||||
'and_match'?: (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate_MatchSet);
|
||||
/**
|
||||
* A negation match. The match configuration will match if the negated match condition matches.
|
||||
*/
|
||||
'not_match'?: (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate);
|
||||
/**
|
||||
* The match configuration will always match.
|
||||
*/
|
||||
'any_match'?: (boolean);
|
||||
/**
|
||||
* Match destination port. Particularly, the match evaluation must use the recovered local port if
|
||||
* the owning listener filter is after :ref:`an original_dst listener filter <config_listener_filters_original_dst>`.
|
||||
*/
|
||||
'destination_port_range'?: (_envoy_type_Int32Range);
|
||||
'rule'?: "or_match"|"and_match"|"not_match"|"any_match"|"destination_port_range";
|
||||
}
|
||||
|
||||
/**
|
||||
* Listener filter chain match configuration. This is a recursive structure which allows complex
|
||||
* nested match configurations to be built using various logical operators.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * Matches if the destination port is 3306.
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* destination_port_range:
|
||||
* start: 3306
|
||||
* end: 3307
|
||||
*
|
||||
* * Matches if the destination port is 3306 or 15000.
|
||||
*
|
||||
* .. code-block:: yaml
|
||||
*
|
||||
* or_match:
|
||||
* rules:
|
||||
* - destination_port_range:
|
||||
* start: 3306
|
||||
* end: 3306
|
||||
* - destination_port_range:
|
||||
* start: 15000
|
||||
* end: 15001
|
||||
*
|
||||
* [#next-free-field: 6]
|
||||
*/
|
||||
export interface ListenerFilterChainMatchPredicate__Output {
|
||||
/**
|
||||
* A set that describes a logical OR. If any member of the set matches, the match configuration
|
||||
* matches.
|
||||
*/
|
||||
'or_match'?: (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate_MatchSet__Output);
|
||||
/**
|
||||
* A set that describes a logical AND. If all members of the set match, the match configuration
|
||||
* matches.
|
||||
*/
|
||||
'and_match'?: (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate_MatchSet__Output);
|
||||
/**
|
||||
* A negation match. The match configuration will match if the negated match condition matches.
|
||||
*/
|
||||
'not_match'?: (_envoy_api_v2_listener_ListenerFilterChainMatchPredicate__Output);
|
||||
/**
|
||||
* The match configuration will always match.
|
||||
*/
|
||||
'any_match'?: (boolean);
|
||||
/**
|
||||
* Match destination port. Particularly, the match evaluation must use the recovered local port if
|
||||
* the owning listener filter is after :ref:`an original_dst listener filter <config_listener_filters_original_dst>`.
|
||||
*/
|
||||
'destination_port_range'?: (_envoy_type_Int32Range__Output);
|
||||
'rule': "or_match"|"and_match"|"not_match"|"any_match"|"destination_port_range";
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/listener/udp_listener_config.proto
|
||||
|
||||
import { Struct as _google_protobuf_Struct, Struct__Output as _google_protobuf_Struct__Output } from '../../../../google/protobuf/Struct';
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
|
||||
|
||||
export interface UdpListenerConfig {
|
||||
/**
|
||||
* Used to look up UDP listener factory, matches "raw_udp_listener" or
|
||||
* "quic_listener" to create a specific udp listener.
|
||||
* If not specified, treat as "raw_udp_listener".
|
||||
*/
|
||||
'udp_listener_name'?: (string);
|
||||
'config'?: (_google_protobuf_Struct);
|
||||
'typed_config'?: (_google_protobuf_Any);
|
||||
/**
|
||||
* Used to create a specific listener factory. To some factory, e.g.
|
||||
* "raw_udp_listener", config is not needed.
|
||||
*/
|
||||
'config_type'?: "config"|"typed_config";
|
||||
}
|
||||
|
||||
export interface UdpListenerConfig__Output {
|
||||
/**
|
||||
* Used to look up UDP listener factory, matches "raw_udp_listener" or
|
||||
* "quic_listener" to create a specific udp listener.
|
||||
* If not specified, treat as "raw_udp_listener".
|
||||
*/
|
||||
'udp_listener_name': (string);
|
||||
'config'?: (_google_protobuf_Struct__Output);
|
||||
'typed_config'?: (_google_protobuf_Any__Output);
|
||||
/**
|
||||
* Used to create a specific listener factory. To some factory, e.g.
|
||||
* "raw_udp_listener", config is not needed.
|
||||
*/
|
||||
'config_type': "config"|"typed_config";
|
||||
}
|
||||
169
packages/grpc-js/src/generated/envoy/api/v2/route/CorsPolicy.ts
Normal file
169
packages/grpc-js/src/generated/envoy/api/v2/route/CorsPolicy.ts
Normal file
@ -0,0 +1,169 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
|
||||
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
import { RuntimeFractionalPercent as _envoy_api_v2_core_RuntimeFractionalPercent, RuntimeFractionalPercent__Output as _envoy_api_v2_core_RuntimeFractionalPercent__Output } from '../../../../envoy/api/v2/core/RuntimeFractionalPercent';
|
||||
import { StringMatcher as _envoy_type_matcher_StringMatcher, StringMatcher__Output as _envoy_type_matcher_StringMatcher__Output } from '../../../../envoy/type/matcher/StringMatcher';
|
||||
|
||||
/**
|
||||
* [#next-free-field: 12]
|
||||
*/
|
||||
export interface CorsPolicy {
|
||||
/**
|
||||
* Specifies the origins that will be allowed to do CORS requests.
|
||||
*
|
||||
* An origin is allowed if either allow_origin or allow_origin_regex match.
|
||||
*
|
||||
* .. attention::
|
||||
* This field has been deprecated in favor of `allow_origin_string_match`.
|
||||
*/
|
||||
'allow_origin'?: (string)[];
|
||||
/**
|
||||
* Specifies the content for the *access-control-allow-methods* header.
|
||||
*/
|
||||
'allow_methods'?: (string);
|
||||
/**
|
||||
* Specifies the content for the *access-control-allow-headers* header.
|
||||
*/
|
||||
'allow_headers'?: (string);
|
||||
/**
|
||||
* Specifies the content for the *access-control-expose-headers* header.
|
||||
*/
|
||||
'expose_headers'?: (string);
|
||||
/**
|
||||
* Specifies the content for the *access-control-max-age* header.
|
||||
*/
|
||||
'max_age'?: (string);
|
||||
/**
|
||||
* Specifies whether the resource allows credentials.
|
||||
*/
|
||||
'allow_credentials'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Specifies if the CORS filter is enabled. Defaults to true. Only effective on route.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* **This field is deprecated**. Set the
|
||||
* :ref:`filter_enabled<envoy_api_field_route.CorsPolicy.filter_enabled>` field instead.
|
||||
*/
|
||||
'enabled'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Specifies regex patterns that match allowed origins.
|
||||
*
|
||||
* An origin is allowed if either allow_origin or allow_origin_regex match.
|
||||
*
|
||||
* .. attention::
|
||||
* This field has been deprecated in favor of `allow_origin_string_match` as it is not safe for
|
||||
* use with untrusted input in all cases.
|
||||
*/
|
||||
'allow_origin_regex'?: (string)[];
|
||||
/**
|
||||
* Specifies the % of requests for which the CORS filter is enabled.
|
||||
*
|
||||
* If neither ``enabled``, ``filter_enabled``, nor ``shadow_enabled`` are specified, the CORS
|
||||
* filter will be enabled for 100% of the requests.
|
||||
*
|
||||
* If :ref:`runtime_key <envoy_api_field_core.RuntimeFractionalPercent.runtime_key>` is
|
||||
* specified, Envoy will lookup the runtime key to get the percentage of requests to filter.
|
||||
*/
|
||||
'filter_enabled'?: (_envoy_api_v2_core_RuntimeFractionalPercent);
|
||||
/**
|
||||
* Specifies the % of requests for which the CORS policies will be evaluated and tracked, but not
|
||||
* enforced.
|
||||
*
|
||||
* This field is intended to be used when ``filter_enabled`` and ``enabled`` are off. One of those
|
||||
* fields have to explicitly disable the filter in order for this setting to take effect.
|
||||
*
|
||||
* If :ref:`runtime_key <envoy_api_field_core.RuntimeFractionalPercent.runtime_key>` is specified,
|
||||
* Envoy will lookup the runtime key to get the percentage of requests for which it will evaluate
|
||||
* and track the request's *Origin* to determine if it's valid but will not enforce any policies.
|
||||
*/
|
||||
'shadow_enabled'?: (_envoy_api_v2_core_RuntimeFractionalPercent);
|
||||
/**
|
||||
* Specifies string patterns that match allowed origins. An origin is allowed if any of the
|
||||
* string matchers match.
|
||||
*/
|
||||
'allow_origin_string_match'?: (_envoy_type_matcher_StringMatcher)[];
|
||||
'enabled_specifier'?: "enabled"|"filter_enabled";
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 12]
|
||||
*/
|
||||
export interface CorsPolicy__Output {
|
||||
/**
|
||||
* Specifies the origins that will be allowed to do CORS requests.
|
||||
*
|
||||
* An origin is allowed if either allow_origin or allow_origin_regex match.
|
||||
*
|
||||
* .. attention::
|
||||
* This field has been deprecated in favor of `allow_origin_string_match`.
|
||||
*/
|
||||
'allow_origin': (string)[];
|
||||
/**
|
||||
* Specifies the content for the *access-control-allow-methods* header.
|
||||
*/
|
||||
'allow_methods': (string);
|
||||
/**
|
||||
* Specifies the content for the *access-control-allow-headers* header.
|
||||
*/
|
||||
'allow_headers': (string);
|
||||
/**
|
||||
* Specifies the content for the *access-control-expose-headers* header.
|
||||
*/
|
||||
'expose_headers': (string);
|
||||
/**
|
||||
* Specifies the content for the *access-control-max-age* header.
|
||||
*/
|
||||
'max_age': (string);
|
||||
/**
|
||||
* Specifies whether the resource allows credentials.
|
||||
*/
|
||||
'allow_credentials'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Specifies if the CORS filter is enabled. Defaults to true. Only effective on route.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* **This field is deprecated**. Set the
|
||||
* :ref:`filter_enabled<envoy_api_field_route.CorsPolicy.filter_enabled>` field instead.
|
||||
*/
|
||||
'enabled'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Specifies regex patterns that match allowed origins.
|
||||
*
|
||||
* An origin is allowed if either allow_origin or allow_origin_regex match.
|
||||
*
|
||||
* .. attention::
|
||||
* This field has been deprecated in favor of `allow_origin_string_match` as it is not safe for
|
||||
* use with untrusted input in all cases.
|
||||
*/
|
||||
'allow_origin_regex': (string)[];
|
||||
/**
|
||||
* Specifies the % of requests for which the CORS filter is enabled.
|
||||
*
|
||||
* If neither ``enabled``, ``filter_enabled``, nor ``shadow_enabled`` are specified, the CORS
|
||||
* filter will be enabled for 100% of the requests.
|
||||
*
|
||||
* If :ref:`runtime_key <envoy_api_field_core.RuntimeFractionalPercent.runtime_key>` is
|
||||
* specified, Envoy will lookup the runtime key to get the percentage of requests to filter.
|
||||
*/
|
||||
'filter_enabled'?: (_envoy_api_v2_core_RuntimeFractionalPercent__Output);
|
||||
/**
|
||||
* Specifies the % of requests for which the CORS policies will be evaluated and tracked, but not
|
||||
* enforced.
|
||||
*
|
||||
* This field is intended to be used when ``filter_enabled`` and ``enabled`` are off. One of those
|
||||
* fields have to explicitly disable the filter in order for this setting to take effect.
|
||||
*
|
||||
* If :ref:`runtime_key <envoy_api_field_core.RuntimeFractionalPercent.runtime_key>` is specified,
|
||||
* Envoy will lookup the runtime key to get the percentage of requests for which it will evaluate
|
||||
* and track the request's *Origin* to determine if it's valid but will not enforce any policies.
|
||||
*/
|
||||
'shadow_enabled'?: (_envoy_api_v2_core_RuntimeFractionalPercent__Output);
|
||||
/**
|
||||
* Specifies string patterns that match allowed origins. An origin is allowed if any of the
|
||||
* string matchers match.
|
||||
*/
|
||||
'allow_origin_string_match': (_envoy_type_matcher_StringMatcher__Output)[];
|
||||
'enabled_specifier': "enabled"|"filter_enabled";
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
|
||||
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
|
||||
export interface Decorator {
|
||||
/**
|
||||
* The operation name associated with the request matched to this route. If tracing is
|
||||
* enabled, this information will be used as the span name reported for this request.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* For ingress (inbound) requests, or egress (outbound) responses, this value may be overridden
|
||||
* by the :ref:`x-envoy-decorator-operation
|
||||
* <config_http_filters_router_x-envoy-decorator-operation>` header.
|
||||
*/
|
||||
'operation'?: (string);
|
||||
/**
|
||||
* Whether the decorated details should be propagated to the other party. The default is true.
|
||||
*/
|
||||
'propagate'?: (_google_protobuf_BoolValue);
|
||||
}
|
||||
|
||||
export interface Decorator__Output {
|
||||
/**
|
||||
* The operation name associated with the request matched to this route. If tracing is
|
||||
* enabled, this information will be used as the span name reported for this request.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* For ingress (inbound) requests, or egress (outbound) responses, this value may be overridden
|
||||
* by the :ref:`x-envoy-decorator-operation
|
||||
* <config_http_filters_router_x-envoy-decorator-operation>` header.
|
||||
*/
|
||||
'operation': (string);
|
||||
/**
|
||||
* Whether the decorated details should be propagated to the other party. The default is true.
|
||||
*/
|
||||
'propagate'?: (_google_protobuf_BoolValue__Output);
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
|
||||
|
||||
import { DataSource as _envoy_api_v2_core_DataSource, DataSource__Output as _envoy_api_v2_core_DataSource__Output } from '../../../../envoy/api/v2/core/DataSource';
|
||||
|
||||
export interface DirectResponseAction {
|
||||
/**
|
||||
* Specifies the HTTP response status to be returned.
|
||||
*/
|
||||
'status'?: (number);
|
||||
/**
|
||||
* Specifies the content of the response body. If this setting is omitted,
|
||||
* no body is included in the generated response.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* Headers can be specified using *response_headers_to_add* in the enclosing
|
||||
* :ref:`envoy_api_msg_route.Route`, :ref:`envoy_api_msg_RouteConfiguration` or
|
||||
* :ref:`envoy_api_msg_route.VirtualHost`.
|
||||
*/
|
||||
'body'?: (_envoy_api_v2_core_DataSource);
|
||||
}
|
||||
|
||||
export interface DirectResponseAction__Output {
|
||||
/**
|
||||
* Specifies the HTTP response status to be returned.
|
||||
*/
|
||||
'status': (number);
|
||||
/**
|
||||
* Specifies the content of the response body. If this setting is omitted,
|
||||
* no body is included in the generated response.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* Headers can be specified using *response_headers_to_add* in the enclosing
|
||||
* :ref:`envoy_api_msg_route.Route`, :ref:`envoy_api_msg_RouteConfiguration` or
|
||||
* :ref:`envoy_api_msg_route.VirtualHost`.
|
||||
*/
|
||||
'body'?: (_envoy_api_v2_core_DataSource__Output);
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
|
||||
|
||||
import { Any as _google_protobuf_Any, Any__Output as _google_protobuf_Any__Output } from '../../../../google/protobuf/Any';
|
||||
|
||||
/**
|
||||
* A filter-defined action type.
|
||||
*/
|
||||
export interface FilterAction {
|
||||
'action'?: (_google_protobuf_Any);
|
||||
}
|
||||
|
||||
/**
|
||||
* A filter-defined action type.
|
||||
*/
|
||||
export interface FilterAction__Output {
|
||||
'action'?: (_google_protobuf_Any__Output);
|
||||
}
|
||||
@ -0,0 +1,227 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
|
||||
|
||||
import { Int64Range as _envoy_type_Int64Range, Int64Range__Output as _envoy_type_Int64Range__Output } from '../../../../envoy/type/Int64Range';
|
||||
import { RegexMatcher as _envoy_type_matcher_RegexMatcher, RegexMatcher__Output as _envoy_type_matcher_RegexMatcher__Output } from '../../../../envoy/type/matcher/RegexMatcher';
|
||||
import { Long } from '@grpc/proto-loader';
|
||||
|
||||
/**
|
||||
* .. attention::
|
||||
*
|
||||
* Internally, Envoy always uses the HTTP/2 *:authority* header to represent the HTTP/1 *Host*
|
||||
* header. Thus, if attempting to match on *Host*, match on *:authority* instead.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* To route on HTTP method, use the special HTTP/2 *:method* header. This works for both
|
||||
* HTTP/1 and HTTP/2 as Envoy normalizes headers. E.g.,
|
||||
*
|
||||
* .. code-block:: json
|
||||
*
|
||||
* {
|
||||
* "name": ":method",
|
||||
* "exact_match": "POST"
|
||||
* }
|
||||
*
|
||||
* .. attention::
|
||||
* In the absence of any header match specifier, match will default to :ref:`present_match
|
||||
* <envoy_api_field_route.HeaderMatcher.present_match>`. i.e, a request that has the :ref:`name
|
||||
* <envoy_api_field_route.HeaderMatcher.name>` header will match, regardless of the header's
|
||||
* value.
|
||||
*
|
||||
* [#next-major-version: HeaderMatcher should be refactored to use StringMatcher.]
|
||||
* [#next-free-field: 12]
|
||||
*/
|
||||
export interface HeaderMatcher {
|
||||
/**
|
||||
* Specifies the name of the header in the request.
|
||||
*/
|
||||
'name'?: (string);
|
||||
/**
|
||||
* If specified, header match will be performed based on the value of the header.
|
||||
*/
|
||||
'exact_match'?: (string);
|
||||
/**
|
||||
* If specified, this regex string is a regular expression rule which implies the entire request
|
||||
* header value must match the regex. The rule will not match if only a subsequence of the
|
||||
* request header value matches the regex. The regex grammar used in the value field is defined
|
||||
* `here <https://en.cppreference.com/w/cpp/regex/ecmascript>`_.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * The regex ``\d{3}`` matches the value *123*
|
||||
* * The regex ``\d{3}`` does not match the value *1234*
|
||||
* * The regex ``\d{3}`` does not match the value *123.456*
|
||||
*
|
||||
* .. attention::
|
||||
* This field has been deprecated in favor of `safe_regex_match` as it is not safe for use
|
||||
* with untrusted input in all cases.
|
||||
*/
|
||||
'regex_match'?: (string);
|
||||
/**
|
||||
* If specified, header match will be performed based on range.
|
||||
* The rule will match if the request header value is within this range.
|
||||
* The entire request header value must represent an integer in base 10 notation: consisting of
|
||||
* an optional plus or minus sign followed by a sequence of digits. The rule will not match if
|
||||
* the header value does not represent an integer. Match will fail for empty values, floating
|
||||
* point numbers or if only a subsequence of the header value is an integer.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * For range [-10,0), route will match for header value -1, but not for 0, "somestring", 10.9,
|
||||
* "-1somestring"
|
||||
*/
|
||||
'range_match'?: (_envoy_type_Int64Range);
|
||||
/**
|
||||
* If specified, header match will be performed based on whether the header is in the
|
||||
* request.
|
||||
*/
|
||||
'present_match'?: (boolean);
|
||||
/**
|
||||
* If specified, the match result will be inverted before checking. Defaults to false.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * The regex ``\d{3}`` does not match the value *1234*, so it will match when inverted.
|
||||
* * The range [-10,0) will match the value -1, so it will not match when inverted.
|
||||
*/
|
||||
'invert_match'?: (boolean);
|
||||
/**
|
||||
* If specified, header match will be performed based on the prefix of the header value.
|
||||
* Note: empty prefix is not allowed, please use present_match instead.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * The prefix *abcd* matches the value *abcdxyz*, but not for *abcxyz*.
|
||||
*/
|
||||
'prefix_match'?: (string);
|
||||
/**
|
||||
* If specified, header match will be performed based on the suffix of the header value.
|
||||
* Note: empty suffix is not allowed, please use present_match instead.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * The suffix *abcd* matches the value *xyzabcd*, but not for *xyzbcd*.
|
||||
*/
|
||||
'suffix_match'?: (string);
|
||||
/**
|
||||
* If specified, this regex string is a regular expression rule which implies the entire request
|
||||
* header value must match the regex. The rule will not match if only a subsequence of the
|
||||
* request header value matches the regex.
|
||||
*/
|
||||
'safe_regex_match'?: (_envoy_type_matcher_RegexMatcher);
|
||||
/**
|
||||
* Specifies how the header match will be performed to route the request.
|
||||
*/
|
||||
'header_match_specifier'?: "exact_match"|"regex_match"|"safe_regex_match"|"range_match"|"present_match"|"prefix_match"|"suffix_match";
|
||||
}
|
||||
|
||||
/**
|
||||
* .. attention::
|
||||
*
|
||||
* Internally, Envoy always uses the HTTP/2 *:authority* header to represent the HTTP/1 *Host*
|
||||
* header. Thus, if attempting to match on *Host*, match on *:authority* instead.
|
||||
*
|
||||
* .. attention::
|
||||
*
|
||||
* To route on HTTP method, use the special HTTP/2 *:method* header. This works for both
|
||||
* HTTP/1 and HTTP/2 as Envoy normalizes headers. E.g.,
|
||||
*
|
||||
* .. code-block:: json
|
||||
*
|
||||
* {
|
||||
* "name": ":method",
|
||||
* "exact_match": "POST"
|
||||
* }
|
||||
*
|
||||
* .. attention::
|
||||
* In the absence of any header match specifier, match will default to :ref:`present_match
|
||||
* <envoy_api_field_route.HeaderMatcher.present_match>`. i.e, a request that has the :ref:`name
|
||||
* <envoy_api_field_route.HeaderMatcher.name>` header will match, regardless of the header's
|
||||
* value.
|
||||
*
|
||||
* [#next-major-version: HeaderMatcher should be refactored to use StringMatcher.]
|
||||
* [#next-free-field: 12]
|
||||
*/
|
||||
export interface HeaderMatcher__Output {
|
||||
/**
|
||||
* Specifies the name of the header in the request.
|
||||
*/
|
||||
'name': (string);
|
||||
/**
|
||||
* If specified, header match will be performed based on the value of the header.
|
||||
*/
|
||||
'exact_match'?: (string);
|
||||
/**
|
||||
* If specified, this regex string is a regular expression rule which implies the entire request
|
||||
* header value must match the regex. The rule will not match if only a subsequence of the
|
||||
* request header value matches the regex. The regex grammar used in the value field is defined
|
||||
* `here <https://en.cppreference.com/w/cpp/regex/ecmascript>`_.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * The regex ``\d{3}`` matches the value *123*
|
||||
* * The regex ``\d{3}`` does not match the value *1234*
|
||||
* * The regex ``\d{3}`` does not match the value *123.456*
|
||||
*
|
||||
* .. attention::
|
||||
* This field has been deprecated in favor of `safe_regex_match` as it is not safe for use
|
||||
* with untrusted input in all cases.
|
||||
*/
|
||||
'regex_match'?: (string);
|
||||
/**
|
||||
* If specified, header match will be performed based on range.
|
||||
* The rule will match if the request header value is within this range.
|
||||
* The entire request header value must represent an integer in base 10 notation: consisting of
|
||||
* an optional plus or minus sign followed by a sequence of digits. The rule will not match if
|
||||
* the header value does not represent an integer. Match will fail for empty values, floating
|
||||
* point numbers or if only a subsequence of the header value is an integer.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * For range [-10,0), route will match for header value -1, but not for 0, "somestring", 10.9,
|
||||
* "-1somestring"
|
||||
*/
|
||||
'range_match'?: (_envoy_type_Int64Range__Output);
|
||||
/**
|
||||
* If specified, header match will be performed based on whether the header is in the
|
||||
* request.
|
||||
*/
|
||||
'present_match'?: (boolean);
|
||||
/**
|
||||
* If specified, the match result will be inverted before checking. Defaults to false.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * The regex ``\d{3}`` does not match the value *1234*, so it will match when inverted.
|
||||
* * The range [-10,0) will match the value -1, so it will not match when inverted.
|
||||
*/
|
||||
'invert_match': (boolean);
|
||||
/**
|
||||
* If specified, header match will be performed based on the prefix of the header value.
|
||||
* Note: empty prefix is not allowed, please use present_match instead.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * The prefix *abcd* matches the value *abcdxyz*, but not for *abcxyz*.
|
||||
*/
|
||||
'prefix_match'?: (string);
|
||||
/**
|
||||
* If specified, header match will be performed based on the suffix of the header value.
|
||||
* Note: empty suffix is not allowed, please use present_match instead.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* * The suffix *abcd* matches the value *xyzabcd*, but not for *xyzbcd*.
|
||||
*/
|
||||
'suffix_match'?: (string);
|
||||
/**
|
||||
* If specified, this regex string is a regular expression rule which implies the entire request
|
||||
* header value must match the regex. The rule will not match if only a subsequence of the
|
||||
* request header value matches the regex.
|
||||
*/
|
||||
'safe_regex_match'?: (_envoy_type_matcher_RegexMatcher__Output);
|
||||
/**
|
||||
* Specifies how the header match will be performed to route the request.
|
||||
*/
|
||||
'header_match_specifier': "exact_match"|"regex_match"|"safe_regex_match"|"range_match"|"present_match"|"prefix_match"|"suffix_match";
|
||||
}
|
||||
@ -0,0 +1,66 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
|
||||
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
import { FractionalPercent as _envoy_type_FractionalPercent, FractionalPercent__Output as _envoy_type_FractionalPercent__Output } from '../../../../envoy/type/FractionalPercent';
|
||||
|
||||
/**
|
||||
* HTTP request hedging :ref:`architecture overview <arch_overview_http_routing_hedging>`.
|
||||
*/
|
||||
export interface HedgePolicy {
|
||||
/**
|
||||
* Specifies the number of initial requests that should be sent upstream.
|
||||
* Must be at least 1.
|
||||
* Defaults to 1.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'initial_requests'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* Specifies a probability that an additional upstream request should be sent
|
||||
* on top of what is specified by initial_requests.
|
||||
* Defaults to 0.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'additional_request_chance'?: (_envoy_type_FractionalPercent);
|
||||
/**
|
||||
* Indicates that a hedged request should be sent when the per-try timeout
|
||||
* is hit. This will only occur if the retry policy also indicates that a
|
||||
* timed out request should be retried.
|
||||
* Once a timed out request is retried due to per try timeout, the router
|
||||
* filter will ensure that it is not retried again even if the returned
|
||||
* response headers would otherwise be retried according the specified
|
||||
* :ref:`RetryPolicy <envoy_api_msg_route.RetryPolicy>`.
|
||||
* Defaults to false.
|
||||
*/
|
||||
'hedge_on_per_try_timeout'?: (boolean);
|
||||
}
|
||||
|
||||
/**
|
||||
* HTTP request hedging :ref:`architecture overview <arch_overview_http_routing_hedging>`.
|
||||
*/
|
||||
export interface HedgePolicy__Output {
|
||||
/**
|
||||
* Specifies the number of initial requests that should be sent upstream.
|
||||
* Must be at least 1.
|
||||
* Defaults to 1.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'initial_requests'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* Specifies a probability that an additional upstream request should be sent
|
||||
* on top of what is specified by initial_requests.
|
||||
* Defaults to 0.
|
||||
* [#not-implemented-hide:]
|
||||
*/
|
||||
'additional_request_chance'?: (_envoy_type_FractionalPercent__Output);
|
||||
/**
|
||||
* Indicates that a hedged request should be sent when the per-try timeout
|
||||
* is hit. This will only occur if the retry policy also indicates that a
|
||||
* timed out request should be retried.
|
||||
* Once a timed out request is retried due to per try timeout, the router
|
||||
* filter will ensure that it is not retried again even if the returned
|
||||
* response headers would otherwise be retried according the specified
|
||||
* :ref:`RetryPolicy <envoy_api_msg_route.RetryPolicy>`.
|
||||
* Defaults to false.
|
||||
*/
|
||||
'hedge_on_per_try_timeout': (boolean);
|
||||
}
|
||||
@ -0,0 +1,86 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
|
||||
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
import { StringMatcher as _envoy_type_matcher_StringMatcher, StringMatcher__Output as _envoy_type_matcher_StringMatcher__Output } from '../../../../envoy/type/matcher/StringMatcher';
|
||||
|
||||
/**
|
||||
* Query parameter matching treats the query string of a request's :path header
|
||||
* as an ampersand-separated list of keys and/or key=value elements.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface QueryParameterMatcher {
|
||||
/**
|
||||
* Specifies the name of a key that must be present in the requested
|
||||
* *path*'s query string.
|
||||
*/
|
||||
'name'?: (string);
|
||||
/**
|
||||
* Specifies the value of the key. If the value is absent, a request
|
||||
* that contains the key in its query string will match, whether the
|
||||
* key appears with a value (e.g., "?debug=true") or not (e.g., "?debug")
|
||||
*
|
||||
* ..attention::
|
||||
* This field is deprecated. Use an `exact` match inside the `string_match` field.
|
||||
*/
|
||||
'value'?: (string);
|
||||
/**
|
||||
* Specifies whether the query parameter value is a regular expression.
|
||||
* Defaults to false. The entire query parameter value (i.e., the part to
|
||||
* the right of the equals sign in "key=value") must match the regex.
|
||||
* E.g., the regex ``\d+$`` will match *123* but not *a123* or *123a*.
|
||||
*
|
||||
* ..attention::
|
||||
* This field is deprecated. Use a `safe_regex` match inside the `string_match` field.
|
||||
*/
|
||||
'regex'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Specifies whether a query parameter value should match against a string.
|
||||
*/
|
||||
'string_match'?: (_envoy_type_matcher_StringMatcher);
|
||||
/**
|
||||
* Specifies whether a query parameter should be present.
|
||||
*/
|
||||
'present_match'?: (boolean);
|
||||
'query_parameter_match_specifier'?: "string_match"|"present_match";
|
||||
}
|
||||
|
||||
/**
|
||||
* Query parameter matching treats the query string of a request's :path header
|
||||
* as an ampersand-separated list of keys and/or key=value elements.
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface QueryParameterMatcher__Output {
|
||||
/**
|
||||
* Specifies the name of a key that must be present in the requested
|
||||
* *path*'s query string.
|
||||
*/
|
||||
'name': (string);
|
||||
/**
|
||||
* Specifies the value of the key. If the value is absent, a request
|
||||
* that contains the key in its query string will match, whether the
|
||||
* key appears with a value (e.g., "?debug=true") or not (e.g., "?debug")
|
||||
*
|
||||
* ..attention::
|
||||
* This field is deprecated. Use an `exact` match inside the `string_match` field.
|
||||
*/
|
||||
'value': (string);
|
||||
/**
|
||||
* Specifies whether the query parameter value is a regular expression.
|
||||
* Defaults to false. The entire query parameter value (i.e., the part to
|
||||
* the right of the equals sign in "key=value") must match the regex.
|
||||
* E.g., the regex ``\d+$`` will match *123* but not *a123* or *123a*.
|
||||
*
|
||||
* ..attention::
|
||||
* This field is deprecated. Use a `safe_regex` match inside the `string_match` field.
|
||||
*/
|
||||
'regex'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Specifies whether a query parameter value should match against a string.
|
||||
*/
|
||||
'string_match'?: (_envoy_type_matcher_StringMatcher__Output);
|
||||
/**
|
||||
* Specifies whether a query parameter should be present.
|
||||
*/
|
||||
'present_match'?: (boolean);
|
||||
'query_parameter_match_specifier': "string_match"|"present_match";
|
||||
}
|
||||
341
packages/grpc-js/src/generated/envoy/api/v2/route/RateLimit.ts
Normal file
341
packages/grpc-js/src/generated/envoy/api/v2/route/RateLimit.ts
Normal file
@ -0,0 +1,341 @@
|
||||
// Original file: deps/envoy-api/envoy/api/v2/route/route_components.proto
|
||||
|
||||
import { UInt32Value as _google_protobuf_UInt32Value, UInt32Value__Output as _google_protobuf_UInt32Value__Output } from '../../../../google/protobuf/UInt32Value';
|
||||
import { BoolValue as _google_protobuf_BoolValue, BoolValue__Output as _google_protobuf_BoolValue__Output } from '../../../../google/protobuf/BoolValue';
|
||||
import { HeaderMatcher as _envoy_api_v2_route_HeaderMatcher, HeaderMatcher__Output as _envoy_api_v2_route_HeaderMatcher__Output } from '../../../../envoy/api/v2/route/HeaderMatcher';
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action {
|
||||
/**
|
||||
* Rate limit on source cluster.
|
||||
*/
|
||||
'source_cluster'?: (_envoy_api_v2_route_RateLimit_Action_SourceCluster);
|
||||
/**
|
||||
* Rate limit on destination cluster.
|
||||
*/
|
||||
'destination_cluster'?: (_envoy_api_v2_route_RateLimit_Action_DestinationCluster);
|
||||
/**
|
||||
* Rate limit on request headers.
|
||||
*/
|
||||
'request_headers'?: (_envoy_api_v2_route_RateLimit_Action_RequestHeaders);
|
||||
/**
|
||||
* Rate limit on remote address.
|
||||
*/
|
||||
'remote_address'?: (_envoy_api_v2_route_RateLimit_Action_RemoteAddress);
|
||||
/**
|
||||
* Rate limit on a generic key.
|
||||
*/
|
||||
'generic_key'?: (_envoy_api_v2_route_RateLimit_Action_GenericKey);
|
||||
/**
|
||||
* Rate limit on the existence of request headers.
|
||||
*/
|
||||
'header_value_match'?: (_envoy_api_v2_route_RateLimit_Action_HeaderValueMatch);
|
||||
'action_specifier'?: "source_cluster"|"destination_cluster"|"request_headers"|"remote_address"|"generic_key"|"header_value_match";
|
||||
}
|
||||
|
||||
/**
|
||||
* [#next-free-field: 7]
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action__Output {
|
||||
/**
|
||||
* Rate limit on source cluster.
|
||||
*/
|
||||
'source_cluster'?: (_envoy_api_v2_route_RateLimit_Action_SourceCluster__Output);
|
||||
/**
|
||||
* Rate limit on destination cluster.
|
||||
*/
|
||||
'destination_cluster'?: (_envoy_api_v2_route_RateLimit_Action_DestinationCluster__Output);
|
||||
/**
|
||||
* Rate limit on request headers.
|
||||
*/
|
||||
'request_headers'?: (_envoy_api_v2_route_RateLimit_Action_RequestHeaders__Output);
|
||||
/**
|
||||
* Rate limit on remote address.
|
||||
*/
|
||||
'remote_address'?: (_envoy_api_v2_route_RateLimit_Action_RemoteAddress__Output);
|
||||
/**
|
||||
* Rate limit on a generic key.
|
||||
*/
|
||||
'generic_key'?: (_envoy_api_v2_route_RateLimit_Action_GenericKey__Output);
|
||||
/**
|
||||
* Rate limit on the existence of request headers.
|
||||
*/
|
||||
'header_value_match'?: (_envoy_api_v2_route_RateLimit_Action_HeaderValueMatch__Output);
|
||||
'action_specifier': "source_cluster"|"destination_cluster"|"request_headers"|"remote_address"|"generic_key"|"header_value_match";
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("destination_cluster", "<routed target cluster>")
|
||||
*
|
||||
* Once a request matches against a route table rule, a routed cluster is determined by one of
|
||||
* the following :ref:`route table configuration <envoy_api_msg_RouteConfiguration>`
|
||||
* settings:
|
||||
*
|
||||
* * :ref:`cluster <envoy_api_field_route.RouteAction.cluster>` indicates the upstream cluster
|
||||
* to route to.
|
||||
* * :ref:`weighted_clusters <envoy_api_field_route.RouteAction.weighted_clusters>`
|
||||
* chooses a cluster randomly from a set of clusters with attributed weight.
|
||||
* * :ref:`cluster_header <envoy_api_field_route.RouteAction.cluster_header>` indicates which
|
||||
* header in the request contains the target cluster.
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_DestinationCluster {
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("destination_cluster", "<routed target cluster>")
|
||||
*
|
||||
* Once a request matches against a route table rule, a routed cluster is determined by one of
|
||||
* the following :ref:`route table configuration <envoy_api_msg_RouteConfiguration>`
|
||||
* settings:
|
||||
*
|
||||
* * :ref:`cluster <envoy_api_field_route.RouteAction.cluster>` indicates the upstream cluster
|
||||
* to route to.
|
||||
* * :ref:`weighted_clusters <envoy_api_field_route.RouteAction.weighted_clusters>`
|
||||
* chooses a cluster randomly from a set of clusters with attributed weight.
|
||||
* * :ref:`cluster_header <envoy_api_field_route.RouteAction.cluster_header>` indicates which
|
||||
* header in the request contains the target cluster.
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_DestinationCluster__Output {
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("generic_key", "<descriptor_value>")
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_GenericKey {
|
||||
/**
|
||||
* The value to use in the descriptor entry.
|
||||
*/
|
||||
'descriptor_value'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("generic_key", "<descriptor_value>")
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_GenericKey__Output {
|
||||
/**
|
||||
* The value to use in the descriptor entry.
|
||||
*/
|
||||
'descriptor_value': (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("header_match", "<descriptor_value>")
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_HeaderValueMatch {
|
||||
/**
|
||||
* The value to use in the descriptor entry.
|
||||
*/
|
||||
'descriptor_value'?: (string);
|
||||
/**
|
||||
* If set to true, the action will append a descriptor entry when the
|
||||
* request matches the headers. If set to false, the action will append a
|
||||
* descriptor entry when the request does not match the headers. The
|
||||
* default value is true.
|
||||
*/
|
||||
'expect_match'?: (_google_protobuf_BoolValue);
|
||||
/**
|
||||
* Specifies a set of headers that the rate limit action should match
|
||||
* on. The action will check the request’s headers against all the
|
||||
* specified headers in the config. A match will happen if all the
|
||||
* headers in the config are present in the request with the same values
|
||||
* (or based on presence if the value field is not in the config).
|
||||
*/
|
||||
'headers'?: (_envoy_api_v2_route_HeaderMatcher)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("header_match", "<descriptor_value>")
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_HeaderValueMatch__Output {
|
||||
/**
|
||||
* The value to use in the descriptor entry.
|
||||
*/
|
||||
'descriptor_value': (string);
|
||||
/**
|
||||
* If set to true, the action will append a descriptor entry when the
|
||||
* request matches the headers. If set to false, the action will append a
|
||||
* descriptor entry when the request does not match the headers. The
|
||||
* default value is true.
|
||||
*/
|
||||
'expect_match'?: (_google_protobuf_BoolValue__Output);
|
||||
/**
|
||||
* Specifies a set of headers that the rate limit action should match
|
||||
* on. The action will check the request’s headers against all the
|
||||
* specified headers in the config. A match will happen if all the
|
||||
* headers in the config are present in the request with the same values
|
||||
* (or based on presence if the value field is not in the config).
|
||||
*/
|
||||
'headers': (_envoy_api_v2_route_HeaderMatcher__Output)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor and is populated using the
|
||||
* trusted address from :ref:`x-forwarded-for <config_http_conn_man_headers_x-forwarded-for>`:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("remote_address", "<trusted address from x-forwarded-for>")
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_RemoteAddress {
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor and is populated using the
|
||||
* trusted address from :ref:`x-forwarded-for <config_http_conn_man_headers_x-forwarded-for>`:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("remote_address", "<trusted address from x-forwarded-for>")
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_RemoteAddress__Output {
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended when a header contains a key that matches the
|
||||
* *header_name*:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("<descriptor_key>", "<header_value_queried_from_header>")
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_RequestHeaders {
|
||||
/**
|
||||
* The header name to be queried from the request headers. The header’s
|
||||
* value is used to populate the value of the descriptor entry for the
|
||||
* descriptor_key.
|
||||
*/
|
||||
'header_name'?: (string);
|
||||
/**
|
||||
* The key to use in the descriptor entry.
|
||||
*/
|
||||
'descriptor_key'?: (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended when a header contains a key that matches the
|
||||
* *header_name*:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("<descriptor_key>", "<header_value_queried_from_header>")
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_RequestHeaders__Output {
|
||||
/**
|
||||
* The header name to be queried from the request headers. The header’s
|
||||
* value is used to populate the value of the descriptor entry for the
|
||||
* descriptor_key.
|
||||
*/
|
||||
'header_name': (string);
|
||||
/**
|
||||
* The key to use in the descriptor entry.
|
||||
*/
|
||||
'descriptor_key': (string);
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("source_cluster", "<local service cluster>")
|
||||
*
|
||||
* <local service cluster> is derived from the :option:`--service-cluster` option.
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_SourceCluster {
|
||||
}
|
||||
|
||||
/**
|
||||
* The following descriptor entry is appended to the descriptor:
|
||||
*
|
||||
* .. code-block:: cpp
|
||||
*
|
||||
* ("source_cluster", "<local service cluster>")
|
||||
*
|
||||
* <local service cluster> is derived from the :option:`--service-cluster` option.
|
||||
*/
|
||||
export interface _envoy_api_v2_route_RateLimit_Action_SourceCluster__Output {
|
||||
}
|
||||
|
||||
/**
|
||||
* Global rate limiting :ref:`architecture overview <arch_overview_global_rate_limit>`.
|
||||
*/
|
||||
export interface RateLimit {
|
||||
/**
|
||||
* Refers to the stage set in the filter. The rate limit configuration only
|
||||
* applies to filters with the same stage number. The default stage number is
|
||||
* 0.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* The filter supports a range of 0 - 10 inclusively for stage numbers.
|
||||
*/
|
||||
'stage'?: (_google_protobuf_UInt32Value);
|
||||
/**
|
||||
* The key to be set in runtime to disable this rate limit configuration.
|
||||
*/
|
||||
'disable_key'?: (string);
|
||||
/**
|
||||
* A list of actions that are to be applied for this rate limit configuration.
|
||||
* Order matters as the actions are processed sequentially and the descriptor
|
||||
* is composed by appending descriptor entries in that sequence. If an action
|
||||
* cannot append a descriptor entry, no descriptor is generated for the
|
||||
* configuration. See :ref:`composing actions
|
||||
* <config_http_filters_rate_limit_composing_actions>` for additional documentation.
|
||||
*/
|
||||
'actions'?: (_envoy_api_v2_route_RateLimit_Action)[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Global rate limiting :ref:`architecture overview <arch_overview_global_rate_limit>`.
|
||||
*/
|
||||
export interface RateLimit__Output {
|
||||
/**
|
||||
* Refers to the stage set in the filter. The rate limit configuration only
|
||||
* applies to filters with the same stage number. The default stage number is
|
||||
* 0.
|
||||
*
|
||||
* .. note::
|
||||
*
|
||||
* The filter supports a range of 0 - 10 inclusively for stage numbers.
|
||||
*/
|
||||
'stage'?: (_google_protobuf_UInt32Value__Output);
|
||||
/**
|
||||
* The key to be set in runtime to disable this rate limit configuration.
|
||||
*/
|
||||
'disable_key': (string);
|
||||
/**
|
||||
* A list of actions that are to be applied for this rate limit configuration.
|
||||
* Order matters as the actions are processed sequentially and the descriptor
|
||||
* is composed by appending descriptor entries in that sequence. If an action
|
||||
* cannot append a descriptor entry, no descriptor is generated for the
|
||||
* configuration. See :ref:`composing actions
|
||||
* <config_http_filters_rate_limit_composing_actions>` for additional documentation.
|
||||
*/
|
||||
'actions': (_envoy_api_v2_route_RateLimit_Action__Output)[];
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user