From dd67eb6a8a5a32fd2ecf79898615e8a243b757ac Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Tue, 7 Jan 2025 14:24:25 -0800 Subject: [PATCH 1/6] grpc-js-xds: Preserve resource type version and nonce when unsubscribing --- packages/grpc-js-xds/src/xds-client.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/grpc-js-xds/src/xds-client.ts b/packages/grpc-js-xds/src/xds-client.ts index 540d946c1..9dde8b222 100644 --- a/packages/grpc-js-xds/src/xds-client.ts +++ b/packages/grpc-js-xds/src/xds-client.ts @@ -451,9 +451,6 @@ class AdsCallState { if (authorityMap.size === 0) { typeState.subscribedResources.delete(name.authority); } - if (typeState.subscribedResources.size === 0) { - this.typeStates.delete(type); - } this.updateNames(type); } From b9527cf6d02a3e24247bfe792adacfb0013fc17b Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Wed, 13 Nov 2024 17:37:33 -0800 Subject: [PATCH 2/6] grpc-js{,-xds}: Renew self-signed certificates used in tests --- packages/grpc-js/test/fixtures/ca.pem | 28 +++++++++++---------- packages/grpc-js/test/fixtures/server1.pem | 29 +++++++++++----------- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/packages/grpc-js/test/fixtures/ca.pem b/packages/grpc-js/test/fixtures/ca.pem index 6c8511a73..9eb75fa0f 100644 --- a/packages/grpc-js/test/fixtures/ca.pem +++ b/packages/grpc-js/test/fixtures/ca.pem @@ -1,15 +1,17 @@ -----BEGIN CERTIFICATE----- -MIICSjCCAbOgAwIBAgIJAJHGGR4dGioHMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV -BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX -aWRnaXRzIFB0eSBMdGQxDzANBgNVBAMTBnRlc3RjYTAeFw0xNDExMTEyMjMxMjla -Fw0yNDExMDgyMjMxMjlaMFYxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0 -YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxDzANBgNVBAMT -BnRlc3RjYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwEDfBV5MYdlHVHJ7 -+L4nxrZy7mBfAVXpOc5vMYztssUI7mL2/iYujiIXM+weZYNTEpLdjyJdu7R5gGUu -g1jSVK/EPHfc74O7AyZU34PNIP4Sh33N+/A5YexrNgJlPY+E3GdVYi4ldWJjgkAd -Qah2PH5ACLrIIC6tRka9hcaBlIECAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQELBQADgYEAHzC7jdYlzAVmddi/gdAeKPau -sPBG/C2HCWqHzpCUHcKuvMzDVkY/MP2o6JIW2DBbY64bO/FceExhjcykgaYtCH/m -oIU63+CFOTtR7otyQAWHqXa7q4SbCDlG7DyRFxqG0txPtGvy12lgldA2+RgcigQG -Dfcog5wrJytaQ6UA0wE= +MIICzDCCAjWgAwIBAgIBBzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xFTATBgNVBAoTDEV4 +YW1wbGUsIENvLjEaMBgGA1UEAxQRKi50ZXN0Lmdvb2dsZS5jb20wHhcNMjQxMTE0 +MDEzMjM3WhcNNDQxMTA5MDEzMjM3WjBlMQswCQYDVQQGEwJVUzERMA8GA1UECBMI +SWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xFTATBgNVBAoTDEV4YW1wbGUsIENv +LjEaMBgGA1UEAxQRKi50ZXN0Lmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD +gY0AMIGJAoGBAOHDFScoLCVJpYDDM4HYtIdV6Ake/sMNaaKdODjDMsux/4tDydlu +mN+fm+AjPEK5GHhGn1BgzkWF+slf3BxhrA/8dNsnunstVA7ZBgA/5qQxMfGAq4wH +NVX77fBZOgp9VlSMVfyd9N8YwbBYAckOeUQadTi2X1S6OgJXgQ0m3MWhAgMBAAGj +gYswgYgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwTwYDVR0RBEgwRoIQKi50ZXN0 +Lmdvb2dsZS5mcoIYd2F0ZXJ6b29pLnRlc3QuZ29vZ2xlLmJlghIqLnRlc3QueW91 +dHViZS5jb22HBMCoAQMwHQYDVR0OBBYEFI50QV/hcKkD2qyS/Melvq16+zY8MA0G +CSqGSIb3DQEBCwUAA4GBAIxvZ4kg9HAvzM31p4J04h1MFfnDx8O4Hwogzpaqk+0M +qz8L1ojJy5jus1g8+RBguT1rv5TmRFpMWrp50XQ0bMFHoOcNyL0htxoOhmoKHoX9 +dM0KWtgUheeBcEm83UzFFlGKlna22+pdUHLEnuX+i25s+Lbi4/LGf6KwUlgPL/Vk -----END CERTIFICATE----- diff --git a/packages/grpc-js/test/fixtures/server1.pem b/packages/grpc-js/test/fixtures/server1.pem index f3d43fcc5..9eb75fa0f 100644 --- a/packages/grpc-js/test/fixtures/server1.pem +++ b/packages/grpc-js/test/fixtures/server1.pem @@ -1,16 +1,17 @@ -----BEGIN CERTIFICATE----- -MIICnDCCAgWgAwIBAgIBBzANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJBVTET -MBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQ -dHkgTHRkMQ8wDQYDVQQDEwZ0ZXN0Y2EwHhcNMTUxMTA0MDIyMDI0WhcNMjUxMTAx -MDIyMDI0WjBlMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNV -BAcTB0NoaWNhZ28xFTATBgNVBAoTDEV4YW1wbGUsIENvLjEaMBgGA1UEAxQRKi50 -ZXN0Lmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOHDFSco -LCVJpYDDM4HYtIdV6Ake/sMNaaKdODjDMsux/4tDydlumN+fm+AjPEK5GHhGn1Bg -zkWF+slf3BxhrA/8dNsnunstVA7ZBgA/5qQxMfGAq4wHNVX77fBZOgp9VlSMVfyd -9N8YwbBYAckOeUQadTi2X1S6OgJXgQ0m3MWhAgMBAAGjazBpMAkGA1UdEwQCMAAw -CwYDVR0PBAQDAgXgME8GA1UdEQRIMEaCECoudGVzdC5nb29nbGUuZnKCGHdhdGVy -em9vaS50ZXN0Lmdvb2dsZS5iZYISKi50ZXN0LnlvdXR1YmUuY29thwTAqAEDMA0G -CSqGSIb3DQEBCwUAA4GBAJFXVifQNub1LUP4JlnX5lXNlo8FxZ2a12AFQs+bzoJ6 -hM044EDjqyxUqSbVePK0ni3w1fHQB5rY9yYC5f8G7aqqTY1QOhoUk8ZTSTRpnkTh -y4jjdvTZeLDVBlueZUTDRmy2feY5aZIU18vFDK08dTG0A87pppuv1LNIR3loveU8 +MIICzDCCAjWgAwIBAgIBBzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xFTATBgNVBAoTDEV4 +YW1wbGUsIENvLjEaMBgGA1UEAxQRKi50ZXN0Lmdvb2dsZS5jb20wHhcNMjQxMTE0 +MDEzMjM3WhcNNDQxMTA5MDEzMjM3WjBlMQswCQYDVQQGEwJVUzERMA8GA1UECBMI +SWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xFTATBgNVBAoTDEV4YW1wbGUsIENv +LjEaMBgGA1UEAxQRKi50ZXN0Lmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD +gY0AMIGJAoGBAOHDFScoLCVJpYDDM4HYtIdV6Ake/sMNaaKdODjDMsux/4tDydlu +mN+fm+AjPEK5GHhGn1BgzkWF+slf3BxhrA/8dNsnunstVA7ZBgA/5qQxMfGAq4wH +NVX77fBZOgp9VlSMVfyd9N8YwbBYAckOeUQadTi2X1S6OgJXgQ0m3MWhAgMBAAGj +gYswgYgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwTwYDVR0RBEgwRoIQKi50ZXN0 +Lmdvb2dsZS5mcoIYd2F0ZXJ6b29pLnRlc3QuZ29vZ2xlLmJlghIqLnRlc3QueW91 +dHViZS5jb22HBMCoAQMwHQYDVR0OBBYEFI50QV/hcKkD2qyS/Melvq16+zY8MA0G +CSqGSIb3DQEBCwUAA4GBAIxvZ4kg9HAvzM31p4J04h1MFfnDx8O4Hwogzpaqk+0M +qz8L1ojJy5jus1g8+RBguT1rv5TmRFpMWrp50XQ0bMFHoOcNyL0htxoOhmoKHoX9 +dM0KWtgUheeBcEm83UzFFlGKlna22+pdUHLEnuX+i25s+Lbi4/LGf6KwUlgPL/Vk -----END CERTIFICATE----- From cc57e4b32ce501cd4948487c54754c18b161668f Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Thu, 24 Apr 2025 11:24:11 -0700 Subject: [PATCH 3/6] grpc-js-xds: Update generated code --- .../envoy/config/accesslog/v3/AccessLog.ts | 2 +- .../config/accesslog/v3/AccessLogFilter.ts | 2 +- .../config/accesslog/v3/ExtensionFilter.ts | 2 +- .../envoy/config/cluster/v3/Cluster.ts | 6 +- .../generated/envoy/config/core/v3/Address.ts | 2 +- .../envoy/config/core/v3/AsyncDataSource.ts | 2 +- .../envoy/config/core/v3/ConfigSource.ts | 2 +- .../envoy/config/core/v3/DataSource.ts | 2 +- .../config/core/v3/EnvoyInternalAddress.ts | 2 +- .../config/core/v3/EventServiceConfig.ts | 2 +- .../envoy/config/core/v3/GrpcService.ts | 10 +- .../envoy/config/core/v3/HealthCheck.ts | 6 +- .../config/core/v3/Http1ProtocolOptions.ts | 2 +- .../generated/envoy/config/core/v3/HttpUri.ts | 2 +- .../envoy/config/core/v3/JsonFormatOptions.ts | 22 ++++ .../envoy/config/core/v3/KeyValue.ts | 24 ++++ .../envoy/config/core/v3/KeyValueAppend.ts | 109 ++++++++++++++++++ .../envoy/config/core/v3/KeyValueMutation.ts | 31 +++++ .../generated/envoy/config/core/v3/Node.ts | 2 +- .../core/v3/SchemeHeaderTransformation.ts | 2 +- .../envoy/config/core/v3/SocketAddress.ts | 2 +- .../envoy/config/core/v3/SocketOption.ts | 2 +- .../core/v3/SubstitutionFormatString.ts | 2 +- .../envoy/config/core/v3/TransportSocket.ts | 2 +- .../envoy/config/endpoint/v3/LbEndpoint.ts | 2 +- .../config/endpoint/v3/LocalityLbEndpoints.ts | 2 +- .../v3/UnnamedEndpointLoadMetricStats.ts | 33 ++++++ .../envoy/config/listener/v3/Filter.ts | 2 +- .../envoy/config/listener/v3/Listener.ts | 4 +- .../config/listener/v3/ListenerFilter.ts | 2 +- .../v3/ListenerFilterChainMatchPredicate.ts | 2 +- .../envoy/config/route/v3/CorsPolicy.ts | 2 +- .../envoy/config/route/v3/HeaderMatcher.ts | 2 +- .../config/route/v3/QueryParameterMatcher.ts | 2 +- .../envoy/config/route/v3/RateLimit.ts | 4 +- .../envoy/config/route/v3/RedirectAction.ts | 4 +- .../envoy/config/route/v3/RetryPolicy.ts | 4 +- .../generated/envoy/config/route/v3/Route.ts | 2 +- .../envoy/config/route/v3/RouteAction.ts | 6 +- .../envoy/config/route/v3/RouteMatch.ts | 2 +- .../route/v3/ScopedRouteConfiguration.ts | 2 +- .../envoy/config/route/v3/WeightedCluster.ts | 4 +- .../envoy/config/trace/v3/Tracing.ts | 2 +- .../envoy/data/accesslog/v3/TLSProperties.ts | 2 +- .../filters/common/fault/v3/FaultDelay.ts | 2 +- .../filters/common/fault/v3/FaultRateLimit.ts | 2 +- .../filters/http/fault/v3/FaultAbort.ts | 2 +- .../v3/HttpConnectionManager.ts | 6 +- .../http_connection_manager/v3/HttpFilter.ts | 2 +- .../v3/ScopedRoutes.ts | 6 +- .../common/v3/LocalityLbConfig.ts | 2 +- .../v3/DynamicParameterConstraints.ts | 4 +- .../envoy/service/status/v3/PerXdsConfig.ts | 2 +- .../envoy/type/http/v3/PathTransformation.ts | 2 +- .../envoy/type/matcher/v3/DoubleMatcher.ts | 2 +- .../envoy/type/matcher/v3/ListMatcher.ts | 2 +- .../envoy/type/matcher/v3/MetadataMatcher.ts | 2 +- .../envoy/type/matcher/v3/OrMatcher.ts | 17 +++ .../envoy/type/matcher/v3/RegexMatcher.ts | 2 +- .../envoy/type/matcher/v3/StringMatcher.ts | 2 +- .../envoy/type/matcher/v3/StructMatcher.ts | 2 +- .../envoy/type/matcher/v3/ValueMatcher.ts | 2 +- .../envoy/type/metadata/v3/MetadataKey.ts | 2 +- .../envoy/type/metadata/v3/MetadataKind.ts | 2 +- .../envoy/type/tracing/v3/CustomTag.ts | 2 +- .../src/generated/google/api/HttpRule.ts | 2 +- .../src/generated/google/protobuf/Value.ts | 2 +- .../src/generated/validate/BytesRules.ts | 2 +- .../src/generated/validate/FieldRules.ts | 2 +- .../src/generated/validate/StringRules.ts | 2 +- .../generated/xds/core/v3/CollectionEntry.ts | 2 +- .../generated/xds/core/v3/ResourceLocator.ts | 4 +- .../generated/xds/type/matcher/v3/Matcher.ts | 10 +- .../xds/type/matcher/v3/RegexMatcher.ts | 2 +- .../xds/type/matcher/v3/StringMatcher.ts | 2 +- 75 files changed, 330 insertions(+), 94 deletions(-) create mode 100644 packages/grpc-js-xds/src/generated/envoy/config/core/v3/JsonFormatOptions.ts create mode 100644 packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValue.ts create mode 100644 packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValueAppend.ts create mode 100644 packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValueMutation.ts create mode 100644 packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/UnnamedEndpointLoadMetricStats.ts create mode 100644 packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/OrMatcher.ts diff --git a/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/AccessLog.ts b/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/AccessLog.ts index 73a031fdd..0cacfdd52 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/AccessLog.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/AccessLog.ts @@ -34,5 +34,5 @@ export interface AccessLog__Output { * Custom configuration that must be set according to the access logger extension being instantiated. * [#extension-category: envoy.access_loggers] */ - 'config_type': "typed_config"; + 'config_type'?: "typed_config"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/AccessLogFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/AccessLogFilter.ts index 09563cb7a..c1477e0cc 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/AccessLogFilter.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/AccessLogFilter.ts @@ -131,5 +131,5 @@ export interface AccessLogFilter__Output { * Log Type Filter */ 'log_type_filter'?: (_envoy_config_accesslog_v3_LogTypeFilter__Output | null); - 'filter_specifier': "status_code_filter"|"duration_filter"|"not_health_check_filter"|"traceable_filter"|"runtime_filter"|"and_filter"|"or_filter"|"header_filter"|"response_flag_filter"|"grpc_status_filter"|"extension_filter"|"metadata_filter"|"log_type_filter"; + 'filter_specifier'?: "status_code_filter"|"duration_filter"|"not_health_check_filter"|"traceable_filter"|"runtime_filter"|"and_filter"|"or_filter"|"header_filter"|"response_flag_filter"|"grpc_status_filter"|"extension_filter"|"metadata_filter"|"log_type_filter"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/ExtensionFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/ExtensionFilter.ts index 19edb671b..cb303e3d4 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/ExtensionFilter.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/accesslog/v3/ExtensionFilter.ts @@ -31,5 +31,5 @@ export interface ExtensionFilter__Output { /** * Custom configuration that depends on the filter being instantiated. */ - 'config_type': "typed_config"; + 'config_type'?: "typed_config"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/cluster/v3/Cluster.ts b/packages/grpc-js-xds/src/generated/envoy/config/cluster/v3/Cluster.ts index 8cab36301..49a982f08 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/cluster/v3/Cluster.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/cluster/v3/Cluster.ts @@ -178,7 +178,7 @@ export interface _envoy_config_cluster_v3_Cluster_CommonLbConfig__Output { * set with an empty set of statuses then host overrides will be ignored by the load balancing. */ 'override_host_status': (_envoy_config_core_v3_HealthStatusSet__Output | null); - 'locality_config_specifier': "zone_aware_lb_config"|"locality_weighted_lb_config"; + 'locality_config_specifier'?: "zone_aware_lb_config"|"locality_weighted_lb_config"; } /** @@ -2651,7 +2651,7 @@ export interface Cluster__Output { * Optional configuration for the RoundRobin load balancing policy. */ 'round_robin_lb_config'?: (_envoy_config_cluster_v3_Cluster_RoundRobinLbConfig__Output | null); - 'cluster_discovery_type': "type"|"cluster_type"; + 'cluster_discovery_type'?: "type"|"cluster_type"; /** * Optional configuration for the load balancing algorithm selected by * LbPolicy. Currently only @@ -2662,5 +2662,5 @@ export interface Cluster__Output { * Specifying ring_hash_lb_config or maglev_lb_config or least_request_lb_config without setting the corresponding * LbPolicy will generate an error at runtime. */ - 'lb_config': "ring_hash_lb_config"|"maglev_lb_config"|"original_dst_lb_config"|"least_request_lb_config"|"round_robin_lb_config"; + 'lb_config'?: "ring_hash_lb_config"|"maglev_lb_config"|"original_dst_lb_config"|"least_request_lb_config"|"round_robin_lb_config"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Address.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Address.ts index 5e29cdbf4..7c92771e7 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Address.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Address.ts @@ -33,5 +33,5 @@ export interface Address__Output { * `. */ 'envoy_internal_address'?: (_envoy_config_core_v3_EnvoyInternalAddress__Output | null); - 'address': "socket_address"|"pipe"|"envoy_internal_address"; + 'address'?: "socket_address"|"pipe"|"envoy_internal_address"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/AsyncDataSource.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/AsyncDataSource.ts index aa152155b..6ca11ac43 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/AsyncDataSource.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/AsyncDataSource.ts @@ -30,5 +30,5 @@ export interface AsyncDataSource__Output { * Remote async data source. */ 'remote'?: (_envoy_config_core_v3_RemoteDataSource__Output | null); - 'specifier': "local"|"remote"; + 'specifier'?: "local"|"remote"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/ConfigSource.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/ConfigSource.ts index 1b98848ef..24b22ecf6 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/ConfigSource.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/ConfigSource.ts @@ -141,5 +141,5 @@ export interface ConfigSource__Output { * Local filesystem path configuration source. */ 'path_config_source'?: (_envoy_config_core_v3_PathConfigSource__Output | null); - 'config_source_specifier': "path"|"path_config_source"|"api_config_source"|"ads"|"self"; + 'config_source_specifier'?: "path"|"path_config_source"|"api_config_source"|"ads"|"self"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/DataSource.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/DataSource.ts index 0774fb844..ef6d5deeb 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/DataSource.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/DataSource.ts @@ -44,5 +44,5 @@ export interface DataSource__Output { * Environment variable data source. */ 'environment_variable'?: (string); - 'specifier': "filename"|"inline_bytes"|"inline_string"|"environment_variable"; + 'specifier'?: "filename"|"inline_bytes"|"inline_string"|"environment_variable"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/EnvoyInternalAddress.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/EnvoyInternalAddress.ts index 264e65a0a..5e07389ce 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/EnvoyInternalAddress.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/EnvoyInternalAddress.ts @@ -36,5 +36,5 @@ export interface EnvoyInternalAddress__Output { * example, may be set to the final destination IP for the target internal listener. */ 'endpoint_id': (string); - 'address_name_specifier': "server_listener_name"; + 'address_name_specifier'?: "server_listener_name"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/EventServiceConfig.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/EventServiceConfig.ts index 6226b97c8..1472b74fc 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/EventServiceConfig.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/EventServiceConfig.ts @@ -23,5 +23,5 @@ export interface EventServiceConfig__Output { * Specifies the gRPC service that hosts the event reporting service. */ 'grpc_service'?: (_envoy_config_core_v3_GrpcService__Output | null); - 'config_source_specifier': "grpc_service"; + 'config_source_specifier'?: "grpc_service"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/GrpcService.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/GrpcService.ts index eaeeff52c..1a03e4d43 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/GrpcService.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/GrpcService.ts @@ -95,7 +95,7 @@ export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials__O * See https://github.com/grpc/grpc/pull/19587. */ 'sts_service'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_StsService__Output | null); - 'credential_specifier': "access_token"|"google_compute_engine"|"google_refresh_token"|"service_account_jwt_access"|"google_iam"|"from_plugin"|"sts_service"; + 'credential_specifier'?: "access_token"|"google_compute_engine"|"google_refresh_token"|"service_account_jwt_access"|"google_iam"|"from_plugin"|"sts_service"; } /** @@ -143,7 +143,7 @@ export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelCredentials */ 'google_default'?: (_google_protobuf_Empty__Output | null); 'local_credentials'?: (_envoy_config_core_v3_GrpcService_GoogleGrpc_GoogleLocalCredentials__Output | null); - 'credential_specifier': "ssl_credentials"|"google_default"|"local_credentials"; + 'credential_specifier'?: "ssl_credentials"|"google_default"|"local_credentials"; } export interface _envoy_config_core_v3_GrpcService_EnvoyGrpc { @@ -327,7 +327,7 @@ export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_Me /** * [#extension-category: envoy.grpc_credentials] */ - 'config_type': "typed_config"; + 'config_type'?: "typed_config"; } export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials { @@ -501,7 +501,7 @@ export interface _envoy_config_core_v3_GrpcService_GoogleGrpc_ChannelArgs_Value_ * Pointer values are not supported, since they don't make any sense when * delivered via the API. */ - 'value_specifier': "string_value"|"int_value"; + 'value_specifier'?: "string_value"|"int_value"; } /** @@ -569,5 +569,5 @@ export interface GrpcService__Output { * `. */ 'initial_metadata': (_envoy_config_core_v3_HeaderValue__Output)[]; - 'target_specifier': "envoy_grpc"|"google_grpc"; + 'target_specifier'?: "envoy_grpc"|"google_grpc"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/HealthCheck.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/HealthCheck.ts index f6605412e..14530e8df 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/HealthCheck.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/HealthCheck.ts @@ -45,7 +45,7 @@ export interface _envoy_config_core_v3_HealthCheck_CustomHealthCheck__Output { * being instantiated. See :api:`envoy/config/health_checker` for reference. * [#extension-category: envoy.health_checkers] */ - 'config_type': "typed_config"; + 'config_type'?: "typed_config"; } /** @@ -315,7 +315,7 @@ export interface _envoy_config_core_v3_HealthCheck_Payload__Output { * Binary payload. */ 'binary'?: (Buffer); - 'payload': "text"|"binary"; + 'payload'?: "text"|"binary"; } export interface _envoy_config_core_v3_HealthCheck_RedisHealthCheck { @@ -775,5 +775,5 @@ export interface HealthCheck__Output { * [#extension-category: envoy.health_check.event_sinks] */ 'event_logger': (_envoy_config_core_v3_TypedExtensionConfig__Output)[]; - 'health_checker': "http_health_check"|"tcp_health_check"|"grpc_health_check"|"custom_health_check"; + 'health_checker'?: "http_health_check"|"tcp_health_check"|"grpc_health_check"|"custom_health_check"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Http1ProtocolOptions.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Http1ProtocolOptions.ts index d141a946c..9aa0cbe5d 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Http1ProtocolOptions.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Http1ProtocolOptions.ts @@ -42,7 +42,7 @@ export interface _envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat__Out * [#extension-category: envoy.http.stateful_header_formatters] */ 'stateful_formatter'?: (_envoy_config_core_v3_TypedExtensionConfig__Output | null); - 'header_format': "proper_case_words"|"stateful_formatter"; + 'header_format'?: "proper_case_words"|"stateful_formatter"; } export interface _envoy_config_core_v3_Http1ProtocolOptions_HeaderKeyFormat_ProperCaseWords { diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/HttpUri.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/HttpUri.ts index 9a06ba477..c831de81c 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/HttpUri.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/HttpUri.ts @@ -75,5 +75,5 @@ export interface HttpUri__Output { * inline DNS resolution. See `issue * `_. */ - 'http_upstream_type': "cluster"; + 'http_upstream_type'?: "cluster"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/JsonFormatOptions.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/JsonFormatOptions.ts new file mode 100644 index 000000000..38f6bce0a --- /dev/null +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/JsonFormatOptions.ts @@ -0,0 +1,22 @@ +// Original file: deps/envoy-api/envoy/config/core/v3/substitution_format_string.proto + + +/** + * Optional configuration options to be used with json_format. + */ +export interface JsonFormatOptions { + /** + * The output JSON string properties will be sorted. + */ + 'sort_properties'?: (boolean); +} + +/** + * Optional configuration options to be used with json_format. + */ +export interface JsonFormatOptions__Output { + /** + * The output JSON string properties will be sorted. + */ + 'sort_properties': (boolean); +} diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValue.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValue.ts new file mode 100644 index 000000000..a390de07e --- /dev/null +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValue.ts @@ -0,0 +1,24 @@ +// Original file: deps/envoy-api/envoy/config/core/v3/base.proto + + +export interface KeyValue { + /** + * The key of the key/value pair. + */ + 'key'?: (string); + /** + * The value of the key/value pair. + */ + 'value'?: (Buffer | Uint8Array | string); +} + +export interface KeyValue__Output { + /** + * The key of the key/value pair. + */ + 'key': (string); + /** + * The value of the key/value pair. + */ + 'value': (Buffer); +} diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValueAppend.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValueAppend.ts new file mode 100644 index 000000000..f0410c2d8 --- /dev/null +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValueAppend.ts @@ -0,0 +1,109 @@ +// Original file: deps/envoy-api/envoy/config/core/v3/base.proto + +import type { KeyValue as _envoy_config_core_v3_KeyValue, KeyValue__Output as _envoy_config_core_v3_KeyValue__Output } from '../../../../envoy/config/core/v3/KeyValue'; + +// Original file: deps/envoy-api/envoy/config/core/v3/base.proto + +/** + * Describes the supported actions types for key/value pair append action. + */ +export const _envoy_config_core_v3_KeyValueAppend_KeyValueAppendAction = { + /** + * If the key already exists, this action will result in the following behavior: + * + * - Comma-concatenated value if multiple values are not allowed. + * - New value added to the list of values if multiple values are allowed. + * + * If the key doesn't exist then this will add pair with specified key and value. + */ + APPEND_IF_EXISTS_OR_ADD: 'APPEND_IF_EXISTS_OR_ADD', + /** + * This action will add the key/value pair if it doesn't already exist. If the + * key already exists then this will be a no-op. + */ + ADD_IF_ABSENT: 'ADD_IF_ABSENT', + /** + * This action will overwrite the specified value by discarding any existing + * values if the key already exists. If the key doesn't exist then this will add + * the pair with specified key and value. + */ + OVERWRITE_IF_EXISTS_OR_ADD: 'OVERWRITE_IF_EXISTS_OR_ADD', + /** + * This action will overwrite the specified value by discarding any existing + * values if the key already exists. If the key doesn't exist then this will + * be no-op. + */ + OVERWRITE_IF_EXISTS: 'OVERWRITE_IF_EXISTS', +} as const; + +/** + * Describes the supported actions types for key/value pair append action. + */ +export type _envoy_config_core_v3_KeyValueAppend_KeyValueAppendAction = + /** + * If the key already exists, this action will result in the following behavior: + * + * - Comma-concatenated value if multiple values are not allowed. + * - New value added to the list of values if multiple values are allowed. + * + * If the key doesn't exist then this will add pair with specified key and value. + */ + | 'APPEND_IF_EXISTS_OR_ADD' + | 0 + /** + * This action will add the key/value pair if it doesn't already exist. If the + * key already exists then this will be a no-op. + */ + | 'ADD_IF_ABSENT' + | 1 + /** + * This action will overwrite the specified value by discarding any existing + * values if the key already exists. If the key doesn't exist then this will add + * the pair with specified key and value. + */ + | 'OVERWRITE_IF_EXISTS_OR_ADD' + | 2 + /** + * This action will overwrite the specified value by discarding any existing + * values if the key already exists. If the key doesn't exist then this will + * be no-op. + */ + | 'OVERWRITE_IF_EXISTS' + | 3 + +/** + * Describes the supported actions types for key/value pair append action. + */ +export type _envoy_config_core_v3_KeyValueAppend_KeyValueAppendAction__Output = typeof _envoy_config_core_v3_KeyValueAppend_KeyValueAppendAction[keyof typeof _envoy_config_core_v3_KeyValueAppend_KeyValueAppendAction] + +/** + * Key/value pair plus option to control append behavior. This is used to specify + * key/value pairs that should be appended to a set of existing key/value pairs. + */ +export interface KeyValueAppend { + /** + * Key/value pair entry that this option to append or overwrite. + */ + 'entry'?: (_envoy_config_core_v3_KeyValue | null); + /** + * Describes the action taken to append/overwrite the given value for an existing + * key or to only add this key if it's absent. + */ + 'action'?: (_envoy_config_core_v3_KeyValueAppend_KeyValueAppendAction); +} + +/** + * Key/value pair plus option to control append behavior. This is used to specify + * key/value pairs that should be appended to a set of existing key/value pairs. + */ +export interface KeyValueAppend__Output { + /** + * Key/value pair entry that this option to append or overwrite. + */ + 'entry': (_envoy_config_core_v3_KeyValue__Output | null); + /** + * Describes the action taken to append/overwrite the given value for an existing + * key or to only add this key if it's absent. + */ + 'action': (_envoy_config_core_v3_KeyValueAppend_KeyValueAppendAction__Output); +} diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValueMutation.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValueMutation.ts new file mode 100644 index 000000000..53bd6e3d7 --- /dev/null +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/KeyValueMutation.ts @@ -0,0 +1,31 @@ +// Original file: deps/envoy-api/envoy/config/core/v3/base.proto + +import type { KeyValueAppend as _envoy_config_core_v3_KeyValueAppend, KeyValueAppend__Output as _envoy_config_core_v3_KeyValueAppend__Output } from '../../../../envoy/config/core/v3/KeyValueAppend'; + +/** + * Key/value pair to append or remove. + */ +export interface KeyValueMutation { + /** + * Key/value pair to append or overwrite. Only one of ``append`` or ``remove`` can be set. + */ + 'append'?: (_envoy_config_core_v3_KeyValueAppend | null); + /** + * Key to remove. Only one of ``append`` or ``remove`` can be set. + */ + 'remove'?: (string); +} + +/** + * Key/value pair to append or remove. + */ +export interface KeyValueMutation__Output { + /** + * Key/value pair to append or overwrite. Only one of ``append`` or ``remove`` can be set. + */ + 'append': (_envoy_config_core_v3_KeyValueAppend__Output | null); + /** + * Key to remove. Only one of ``append`` or ``remove`` can be set. + */ + 'remove': (string); +} diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Node.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Node.ts index b29b68502..9e126abb2 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Node.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/Node.ts @@ -174,5 +174,5 @@ export interface Node__Output { * parameter then appears in this field during future discovery requests. */ 'dynamic_parameters': ({[key: string]: _xds_core_v3_ContextParams__Output}); - 'user_agent_version_type': "user_agent_version"|"user_agent_build_version"; + 'user_agent_version_type'?: "user_agent_version"|"user_agent_build_version"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SchemeHeaderTransformation.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SchemeHeaderTransformation.ts index 95bb4e400..c33765a59 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SchemeHeaderTransformation.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SchemeHeaderTransformation.ts @@ -20,5 +20,5 @@ export interface SchemeHeaderTransformation__Output { * Overwrite any Scheme header with the contents of this string. */ 'scheme_to_overwrite'?: (string); - 'transformation': "scheme_to_overwrite"; + 'transformation'?: "scheme_to_overwrite"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SocketAddress.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SocketAddress.ts index f939393fb..f3a19d530 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SocketAddress.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SocketAddress.ts @@ -101,5 +101,5 @@ export interface SocketAddress__Output { * IPv6 space as ``::FFFF:``. */ 'ipv4_compat': (boolean); - 'port_specifier': "port_value"|"named_port"; + 'port_specifier'?: "port_value"|"named_port"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SocketOption.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SocketOption.ts index 9b3bc0019..b8a3b1035 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SocketOption.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SocketOption.ts @@ -145,5 +145,5 @@ export interface SocketOption__Output { * STATE_PREBIND is currently the only valid value. */ 'state': (_envoy_config_core_v3_SocketOption_SocketState__Output); - 'value': "int_value"|"buf_value"; + 'value'?: "int_value"|"buf_value"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SubstitutionFormatString.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SubstitutionFormatString.ts index 01a97441c..cfb119e1b 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SubstitutionFormatString.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/SubstitutionFormatString.ts @@ -197,5 +197,5 @@ export interface SubstitutionFormatString__Output { * [#extension-category: envoy.formatter] */ 'formatters': (_envoy_config_core_v3_TypedExtensionConfig__Output)[]; - 'format': "text_format"|"json_format"|"text_format_source"; + 'format'?: "text_format"|"json_format"|"text_format_source"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/TransportSocket.ts b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/TransportSocket.ts index ff05991ad..7e6fb8954 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/core/v3/TransportSocket.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/core/v3/TransportSocket.ts @@ -39,5 +39,5 @@ export interface TransportSocket__Output { * Implementation specific configuration which depends on the implementation being instantiated. * See the supported transport socket implementations for further documentation. */ - 'config_type': "typed_config"; + 'config_type'?: "typed_config"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/LbEndpoint.ts b/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/LbEndpoint.ts index 4130eb838..f9ddf367e 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/LbEndpoint.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/LbEndpoint.ts @@ -86,5 +86,5 @@ export interface LbEndpoint__Output { /** * Upstream host identifier or a named reference. */ - 'host_identifier': "endpoint"|"endpoint_name"; + 'host_identifier'?: "endpoint"|"endpoint_name"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/LocalityLbEndpoints.ts b/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/LocalityLbEndpoints.ts index 4540792d6..9f2784871 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/LocalityLbEndpoints.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/LocalityLbEndpoints.ts @@ -154,5 +154,5 @@ export interface LocalityLbEndpoints__Output { /** * [#not-implemented-hide:] */ - 'lb_config': "load_balancer_endpoints"|"leds_cluster_locality_config"; + 'lb_config'?: "load_balancer_endpoints"|"leds_cluster_locality_config"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/UnnamedEndpointLoadMetricStats.ts b/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/UnnamedEndpointLoadMetricStats.ts new file mode 100644 index 000000000..02cd0eb7a --- /dev/null +++ b/packages/grpc-js-xds/src/generated/envoy/config/endpoint/v3/UnnamedEndpointLoadMetricStats.ts @@ -0,0 +1,33 @@ +// Original file: deps/envoy-api/envoy/config/endpoint/v3/load_report.proto + +import type { Long } from '@grpc/proto-loader'; + +/** + * Same as EndpointLoadMetricStats, except without the metric_name field. + */ +export interface UnnamedEndpointLoadMetricStats { + /** + * Number of calls that finished and included this metric. + */ + 'num_requests_finished_with_metric'?: (number | string | Long); + /** + * Sum of metric values across all calls that finished with this metric for + * load_reporting_interval. + */ + 'total_metric_value'?: (number | string); +} + +/** + * Same as EndpointLoadMetricStats, except without the metric_name field. + */ +export interface UnnamedEndpointLoadMetricStats__Output { + /** + * Number of calls that finished and included this metric. + */ + 'num_requests_finished_with_metric': (string); + /** + * Sum of metric values across all calls that finished with this metric for + * load_reporting_interval. + */ + 'total_metric_value': (number); +} diff --git a/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/Filter.ts b/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/Filter.ts index b95b36418..690767eaf 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/Filter.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/Filter.ts @@ -48,5 +48,5 @@ export interface Filter__Output { * [#not-implemented-hide:] */ 'config_discovery'?: (_envoy_config_core_v3_ExtensionConfigSource__Output | null); - 'config_type': "typed_config"|"config_discovery"; + 'config_type'?: "typed_config"|"config_discovery"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/Listener.ts b/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/Listener.ts index 8897eacf5..8de57e6b6 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/Listener.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/Listener.ts @@ -47,7 +47,7 @@ export interface _envoy_config_listener_v3_Listener_ConnectionBalanceConfig__Out * [#extension-category: envoy.network.connection_balance] */ 'extend_balance'?: (_envoy_config_core_v3_TypedExtensionConfig__Output | null); - 'balance_type': "exact_balance"|"extend_balance"; + 'balance_type'?: "exact_balance"|"extend_balance"; } /** @@ -728,5 +728,5 @@ export interface Listener__Output { /** * The exclusive listener type and the corresponding config. */ - 'listener_specifier': "internal_listener"; + 'listener_specifier'?: "internal_listener"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/ListenerFilter.ts b/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/ListenerFilter.ts index 5844c4bbe..22b1cfc64 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/ListenerFilter.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/ListenerFilter.ts @@ -59,5 +59,5 @@ export interface ListenerFilter__Output { * listener closes the connections. */ 'config_discovery'?: (_envoy_config_core_v3_ExtensionConfigSource__Output | null); - 'config_type': "typed_config"|"config_discovery"; + 'config_type'?: "typed_config"|"config_discovery"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/ListenerFilterChainMatchPredicate.ts b/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/ListenerFilterChainMatchPredicate.ts index bb743a29d..980651332 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/ListenerFilterChainMatchPredicate.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/listener/v3/ListenerFilterChainMatchPredicate.ts @@ -132,5 +132,5 @@ export interface ListenerFilterChainMatchPredicate__Output { * the owning listener filter is after :ref:`an original_dst listener filter `. */ 'destination_port_range'?: (_envoy_type_v3_Int32Range__Output | null); - 'rule': "or_match"|"and_match"|"not_match"|"any_match"|"destination_port_range"; + 'rule'?: "or_match"|"and_match"|"not_match"|"any_match"|"destination_port_range"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/CorsPolicy.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/CorsPolicy.ts index 8a74b0658..feff79580 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/CorsPolicy.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/CorsPolicy.ts @@ -139,5 +139,5 @@ export interface CorsPolicy__Output { * More details refer to https://developer.chrome.com/blog/private-network-access-preflight. */ 'allow_private_network_access': (_google_protobuf_BoolValue__Output | null); - 'enabled_specifier': "filter_enabled"; + 'enabled_specifier'?: "filter_enabled"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/HeaderMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/HeaderMatcher.ts index b5b085ae7..5aa64286d 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/HeaderMatcher.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/HeaderMatcher.ts @@ -299,5 +299,5 @@ export interface HeaderMatcher__Output { /** * Specifies how the header match will be performed to route the request. */ - 'header_match_specifier': "exact_match"|"safe_regex_match"|"range_match"|"present_match"|"prefix_match"|"suffix_match"|"contains_match"|"string_match"; + 'header_match_specifier'?: "exact_match"|"safe_regex_match"|"range_match"|"present_match"|"prefix_match"|"suffix_match"|"contains_match"|"string_match"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/QueryParameterMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/QueryParameterMatcher.ts index b98b6329b..2a889e377 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/QueryParameterMatcher.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/QueryParameterMatcher.ts @@ -43,5 +43,5 @@ export interface QueryParameterMatcher__Output { * Specifies whether a query parameter should be present. */ 'present_match'?: (boolean); - 'query_parameter_match_specifier': "string_match"|"present_match"; + 'query_parameter_match_specifier'?: "string_match"|"present_match"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RateLimit.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RateLimit.ts index 28d17667f..70bb2ab45 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RateLimit.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RateLimit.ts @@ -128,7 +128,7 @@ export interface _envoy_config_route_v3_RateLimit_Action__Output { * Rate limit on the existence of query parameters. */ 'query_parameter_value_match'?: (_envoy_config_route_v3_RateLimit_Action_QueryParameterValueMatch__Output | null); - 'action_specifier': "source_cluster"|"destination_cluster"|"request_headers"|"remote_address"|"generic_key"|"header_value_match"|"dynamic_metadata"|"metadata"|"extension"|"masked_remote_address"|"query_parameter_value_match"; + 'action_specifier'?: "source_cluster"|"destination_cluster"|"request_headers"|"remote_address"|"generic_key"|"header_value_match"|"dynamic_metadata"|"metadata"|"extension"|"masked_remote_address"|"query_parameter_value_match"; } /** @@ -498,7 +498,7 @@ export interface _envoy_config_route_v3_RateLimit_Override__Output { * Limit override from dynamic metadata. */ 'dynamic_metadata'?: (_envoy_config_route_v3_RateLimit_Override_DynamicMetadata__Output | null); - 'override_specifier': "dynamic_metadata"; + 'override_specifier'?: "dynamic_metadata"; } /** diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RedirectAction.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RedirectAction.ts index 070470af3..3d8d11b97 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RedirectAction.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RedirectAction.ts @@ -246,6 +246,6 @@ export interface RedirectAction__Output { * 2. If the source URI scheme is ``https`` and the port is explicitly * set to ``:443``, the port will be removed after the redirection */ - 'scheme_rewrite_specifier': "https_redirect"|"scheme_redirect"; - 'path_rewrite_specifier': "path_redirect"|"prefix_rewrite"|"regex_rewrite"; + 'scheme_rewrite_specifier'?: "https_redirect"|"scheme_redirect"; + 'path_rewrite_specifier'?: "path_redirect"|"prefix_rewrite"|"regex_rewrite"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RetryPolicy.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RetryPolicy.ts index 773943b7f..9fe853b3b 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RetryPolicy.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RetryPolicy.ts @@ -223,7 +223,7 @@ export interface _envoy_config_route_v3_RetryPolicy_RetryHostPredicate__Output { /** * [#extension-category: envoy.retry_host_predicates] */ - 'config_type': "typed_config"; + 'config_type'?: "typed_config"; } export interface _envoy_config_route_v3_RetryPolicy_RetryPriority { @@ -241,7 +241,7 @@ export interface _envoy_config_route_v3_RetryPolicy_RetryPriority__Output { /** * [#extension-category: envoy.retry_priorities] */ - 'config_type': "typed_config"; + 'config_type'?: "typed_config"; } /** diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/Route.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/Route.ts index beda9395d..52ff1a492 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/Route.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/Route.ts @@ -272,5 +272,5 @@ export interface Route__Output { * statistics use a non-trivial amount of memory(approximately 1KiB per route). */ 'stat_prefix': (string); - 'action': "route"|"redirect"|"direct_response"|"filter_action"|"non_forwarding_action"; + 'action'?: "route"|"redirect"|"direct_response"|"filter_action"|"non_forwarding_action"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RouteAction.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RouteAction.ts index fd38da92e..36816cd41 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RouteAction.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RouteAction.ts @@ -287,7 +287,7 @@ export interface _envoy_config_route_v3_RouteAction_HashPolicy__Output { * it's a terminal policy. */ 'terminal': (boolean); - 'policy_specifier': "header"|"cookie"|"connection_properties"|"query_parameter"|"filter_state"; + 'policy_specifier'?: "header"|"cookie"|"connection_properties"|"query_parameter"|"filter_state"; } export interface _envoy_config_route_v3_RouteAction_HashPolicy_Header { @@ -1380,6 +1380,6 @@ export interface RouteAction__Output { * [#extension-category: envoy.path.rewrite] */ 'path_rewrite_policy': (_envoy_config_core_v3_TypedExtensionConfig__Output | null); - 'cluster_specifier': "cluster"|"cluster_header"|"weighted_clusters"|"cluster_specifier_plugin"|"inline_cluster_specifier_plugin"; - 'host_rewrite_specifier': "host_rewrite_literal"|"auto_host_rewrite"|"host_rewrite_header"|"host_rewrite_path_regex"; + 'cluster_specifier'?: "cluster"|"cluster_header"|"weighted_clusters"|"cluster_specifier_plugin"|"inline_cluster_specifier_plugin"; + 'host_rewrite_specifier'?: "host_rewrite_literal"|"auto_host_rewrite"|"host_rewrite_header"|"host_rewrite_path_regex"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RouteMatch.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RouteMatch.ts index 06982a82f..5d2562923 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RouteMatch.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/RouteMatch.ts @@ -305,5 +305,5 @@ export interface RouteMatch__Output { * [#extension-category: envoy.path.match] */ 'path_match_policy'?: (_envoy_config_core_v3_TypedExtensionConfig__Output | null); - 'path_specifier': "prefix"|"path"|"safe_regex"|"connect_matcher"|"path_separated_prefix"|"path_match_policy"; + 'path_specifier'?: "prefix"|"path"|"safe_regex"|"connect_matcher"|"path_separated_prefix"|"path_match_policy"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/ScopedRouteConfiguration.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/ScopedRouteConfiguration.ts index e13c537d4..af596132a 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/ScopedRouteConfiguration.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/ScopedRouteConfiguration.ts @@ -15,7 +15,7 @@ export interface _envoy_config_route_v3_ScopedRouteConfiguration_Key_Fragment__O * A string to match against. */ 'string_key'?: (string); - 'type': "string_key"; + 'type'?: "string_key"; } /** diff --git a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/WeightedCluster.ts b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/WeightedCluster.ts index 91f4c6aeb..f172e1b6f 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/route/v3/WeightedCluster.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/route/v3/WeightedCluster.ts @@ -200,7 +200,7 @@ export interface _envoy_config_route_v3_WeightedCluster_ClusterWeight__Output { * this value. */ 'host_rewrite_literal'?: (string); - 'host_rewrite_specifier': "host_rewrite_literal"; + 'host_rewrite_specifier'?: "host_rewrite_literal"; } /** @@ -286,5 +286,5 @@ export interface WeightedCluster__Output { * the process for the consistency. And the value is a unsigned number between 0 and UINT64_MAX. */ 'header_name'?: (string); - 'random_value_specifier': "header_name"; + 'random_value_specifier'?: "header_name"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/config/trace/v3/Tracing.ts b/packages/grpc-js-xds/src/generated/envoy/config/trace/v3/Tracing.ts index 9b9859bc5..96593b890 100644 --- a/packages/grpc-js-xds/src/generated/envoy/config/trace/v3/Tracing.ts +++ b/packages/grpc-js-xds/src/generated/envoy/config/trace/v3/Tracing.ts @@ -45,7 +45,7 @@ export interface _envoy_config_trace_v3_Tracing_Http__Output { * Trace driver specific configuration which must be set according to the driver being instantiated. * [#extension-category: envoy.tracers] */ - 'config_type': "typed_config"; + 'config_type'?: "typed_config"; } /** diff --git a/packages/grpc-js-xds/src/generated/envoy/data/accesslog/v3/TLSProperties.ts b/packages/grpc-js-xds/src/generated/envoy/data/accesslog/v3/TLSProperties.ts index ddeb9a1ae..7d0e27269 100644 --- a/packages/grpc-js-xds/src/generated/envoy/data/accesslog/v3/TLSProperties.ts +++ b/packages/grpc-js-xds/src/generated/envoy/data/accesslog/v3/TLSProperties.ts @@ -39,7 +39,7 @@ export interface _envoy_data_accesslog_v3_TLSProperties_CertificateProperties_Su * [#not-implemented-hide:] */ 'dns'?: (string); - 'san': "uri"|"dns"; + 'san'?: "uri"|"dns"; } // Original file: deps/envoy-api/envoy/data/accesslog/v3/accesslog.proto diff --git a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/common/fault/v3/FaultDelay.ts b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/common/fault/v3/FaultDelay.ts index e070ae913..e066cb891 100644 --- a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/common/fault/v3/FaultDelay.ts +++ b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/common/fault/v3/FaultDelay.ts @@ -84,5 +84,5 @@ export interface FaultDelay__Output { * Fault delays are controlled via an HTTP header (if applicable). */ 'header_delay'?: (_envoy_extensions_filters_common_fault_v3_FaultDelay_HeaderDelay__Output | null); - 'fault_delay_secifier': "fixed_delay"|"header_delay"; + 'fault_delay_secifier'?: "fixed_delay"|"header_delay"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/common/fault/v3/FaultRateLimit.ts b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/common/fault/v3/FaultRateLimit.ts index 4df7395bb..d1ebd4d39 100644 --- a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/common/fault/v3/FaultRateLimit.ts +++ b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/common/fault/v3/FaultRateLimit.ts @@ -74,5 +74,5 @@ export interface FaultRateLimit__Output { * Rate limits are controlled via an HTTP header (if applicable). */ 'header_limit'?: (_envoy_extensions_filters_common_fault_v3_FaultRateLimit_HeaderLimit__Output | null); - 'limit_type': "fixed_limit"|"header_limit"; + 'limit_type'?: "fixed_limit"|"header_limit"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/http/fault/v3/FaultAbort.ts b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/http/fault/v3/FaultAbort.ts index 823706cb7..79e71cdce 100644 --- a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/http/fault/v3/FaultAbort.ts +++ b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/http/fault/v3/FaultAbort.ts @@ -63,5 +63,5 @@ export interface FaultAbort__Output { * gRPC status code to use to abort the gRPC request. */ 'grpc_status'?: (number); - 'error_type': "http_status"|"grpc_status"|"header_abort"; + 'error_type'?: "http_status"|"grpc_status"|"header_abort"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/HttpConnectionManager.ts b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/HttpConnectionManager.ts index 1a452635c..508953a2d 100644 --- a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/HttpConnectionManager.ts +++ b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/HttpConnectionManager.ts @@ -535,7 +535,7 @@ export interface _envoy_extensions_filters_network_http_connection_manager_v3_Ht * If neither of these values are set, this value defaults to ``server_name``, * which itself defaults to "envoy". */ - 'proxy_name': "use_node_id"|"literal_proxy_name"; + 'proxy_name'?: "use_node_id"|"literal_proxy_name"; } // Original file: deps/envoy-api/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto @@ -1890,6 +1890,6 @@ export interface HttpConnectionManager__Output { * Additional access log options for HTTP connection manager. */ 'access_log_options': (_envoy_extensions_filters_network_http_connection_manager_v3_HttpConnectionManager_HcmAccessLogOptions__Output | null); - 'route_specifier': "rds"|"route_config"|"scoped_routes"; - 'strip_port_mode': "strip_any_host_port"; + 'route_specifier'?: "rds"|"route_config"|"scoped_routes"; + 'strip_port_mode'?: "strip_any_host_port"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/HttpFilter.ts b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/HttpFilter.ts index 1550ca237..0e2e64834 100644 --- a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/HttpFilter.ts +++ b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/HttpFilter.ts @@ -76,5 +76,5 @@ export interface HttpFilter__Output { * Otherwise, clients that do not support this filter must reject the config. */ 'is_optional': (boolean); - 'config_type': "typed_config"|"config_discovery"; + 'config_type'?: "typed_config"|"config_discovery"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/ScopedRoutes.ts b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/ScopedRoutes.ts index 041af534b..457ec2d51 100644 --- a/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/ScopedRoutes.ts +++ b/packages/grpc-js-xds/src/generated/envoy/extensions/filters/network/http_connection_manager/v3/ScopedRoutes.ts @@ -23,7 +23,7 @@ export interface _envoy_extensions_filters_network_http_connection_manager_v3_Sc * Specifies how a header field's value should be extracted. */ 'header_value_extractor'?: (_envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor__Output | null); - 'type': "header_value_extractor"; + 'type'?: "header_value_extractor"; } /** @@ -119,7 +119,7 @@ export interface _envoy_extensions_filters_network_http_connection_manager_v3_Sc * Specifies the key value pair to extract the value from. */ 'element'?: (_envoy_extensions_filters_network_http_connection_manager_v3_ScopedRoutes_ScopeKeyBuilder_FragmentBuilder_HeaderValueExtractor_KvElement__Output | null); - 'extract_type': "index"|"element"; + 'extract_type'?: "index"|"element"; } /** @@ -269,5 +269,5 @@ export interface ScopedRoutes__Output { * in this message. */ 'scoped_rds'?: (_envoy_extensions_filters_network_http_connection_manager_v3_ScopedRds__Output | null); - 'config_specifier': "scoped_route_configurations_list"|"scoped_rds"; + 'config_specifier'?: "scoped_route_configurations_list"|"scoped_rds"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/extensions/load_balancing_policies/common/v3/LocalityLbConfig.ts b/packages/grpc-js-xds/src/generated/envoy/extensions/load_balancing_policies/common/v3/LocalityLbConfig.ts index 4e3d9659e..f06b8bc87 100644 --- a/packages/grpc-js-xds/src/generated/envoy/extensions/load_balancing_policies/common/v3/LocalityLbConfig.ts +++ b/packages/grpc-js-xds/src/generated/envoy/extensions/load_balancing_policies/common/v3/LocalityLbConfig.ts @@ -96,5 +96,5 @@ export interface LocalityLbConfig__Output { * Enable locality weighted load balancing. */ 'locality_weighted_lb_config'?: (_envoy_extensions_load_balancing_policies_common_v3_LocalityLbConfig_LocalityWeightedLbConfig__Output | null); - 'locality_config_specifier': "zone_aware_lb_config"|"locality_weighted_lb_config"; + 'locality_config_specifier'?: "zone_aware_lb_config"|"locality_weighted_lb_config"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/service/discovery/v3/DynamicParameterConstraints.ts b/packages/grpc-js-xds/src/generated/envoy/service/discovery/v3/DynamicParameterConstraints.ts index 5bba10719..a7008cb28 100644 --- a/packages/grpc-js-xds/src/generated/envoy/service/discovery/v3/DynamicParameterConstraints.ts +++ b/packages/grpc-js-xds/src/generated/envoy/service/discovery/v3/DynamicParameterConstraints.ts @@ -57,7 +57,7 @@ export interface _envoy_service_discovery_v3_DynamicParameterConstraints_SingleC * special configuration based on that key. */ 'exists'?: (_envoy_service_discovery_v3_DynamicParameterConstraints_SingleConstraint_Exists__Output | null); - 'constraint_type': "value"|"exists"; + 'constraint_type'?: "value"|"exists"; } /** @@ -115,5 +115,5 @@ export interface DynamicParameterConstraints__Output { * The inverse (NOT) of a set of constraints. */ 'not_constraints'?: (_envoy_service_discovery_v3_DynamicParameterConstraints__Output | null); - 'type': "constraint"|"or_constraints"|"and_constraints"|"not_constraints"; + 'type'?: "constraint"|"or_constraints"|"and_constraints"|"not_constraints"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/service/status/v3/PerXdsConfig.ts b/packages/grpc-js-xds/src/generated/envoy/service/status/v3/PerXdsConfig.ts index d921f3b1c..c15ad038e 100644 --- a/packages/grpc-js-xds/src/generated/envoy/service/status/v3/PerXdsConfig.ts +++ b/packages/grpc-js-xds/src/generated/envoy/service/status/v3/PerXdsConfig.ts @@ -65,5 +65,5 @@ export interface PerXdsConfig__Output { * @deprecated */ 'client_status': (_envoy_service_status_v3_ClientConfigStatus__Output); - 'per_xds_config': "listener_config"|"cluster_config"|"route_config"|"scoped_route_config"|"endpoint_config"; + 'per_xds_config'?: "listener_config"|"cluster_config"|"route_config"|"scoped_route_config"|"endpoint_config"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/type/http/v3/PathTransformation.ts b/packages/grpc-js-xds/src/generated/envoy/type/http/v3/PathTransformation.ts index c8aca7e3f..39578937a 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/http/v3/PathTransformation.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/http/v3/PathTransformation.ts @@ -74,7 +74,7 @@ export interface _envoy_type_http_v3_PathTransformation_Operation__Output { * Enable merging adjacent slashes. */ 'merge_slashes'?: (_envoy_type_http_v3_PathTransformation_Operation_MergeSlashes__Output | null); - 'operation_specifier': "normalize_path_rfc_3986"|"merge_slashes"; + 'operation_specifier'?: "normalize_path_rfc_3986"|"merge_slashes"; } export interface PathTransformation { diff --git a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/DoubleMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/DoubleMatcher.ts index 0bf3bca79..b7ceb8ea4 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/DoubleMatcher.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/DoubleMatcher.ts @@ -31,5 +31,5 @@ export interface DoubleMatcher__Output { * If specified, the input double value must be equal to the value specified here. */ 'exact'?: (number); - 'match_pattern': "range"|"exact"; + 'match_pattern'?: "range"|"exact"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/ListMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/ListMatcher.ts index 10bf5567c..477faa8c2 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/ListMatcher.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/ListMatcher.ts @@ -21,5 +21,5 @@ export interface ListMatcher__Output { * If specified, at least one of the values in the list must match the value specified. */ 'one_of'?: (_envoy_type_matcher_v3_ValueMatcher__Output | null); - 'match_pattern': "one_of"; + 'match_pattern'?: "one_of"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/MetadataMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/MetadataMatcher.ts index 78d4f03da..a6821f617 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/MetadataMatcher.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/MetadataMatcher.ts @@ -25,7 +25,7 @@ export interface _envoy_type_matcher_v3_MetadataMatcher_PathSegment__Output { * If specified, use the key to retrieve the value in a Struct. */ 'key'?: (string); - 'segment': "key"; + 'segment'?: "key"; } /** diff --git a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/OrMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/OrMatcher.ts new file mode 100644 index 000000000..b52c9e9be --- /dev/null +++ b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/OrMatcher.ts @@ -0,0 +1,17 @@ +// Original file: deps/envoy-api/envoy/type/matcher/v3/value.proto + +import type { ValueMatcher as _envoy_type_matcher_v3_ValueMatcher, ValueMatcher__Output as _envoy_type_matcher_v3_ValueMatcher__Output } from '../../../../envoy/type/matcher/v3/ValueMatcher'; + +/** + * Specifies a list of alternatives for the match. + */ +export interface OrMatcher { + 'value_matchers'?: (_envoy_type_matcher_v3_ValueMatcher)[]; +} + +/** + * Specifies a list of alternatives for the match. + */ +export interface OrMatcher__Output { + 'value_matchers': (_envoy_type_matcher_v3_ValueMatcher__Output)[]; +} diff --git a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/RegexMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/RegexMatcher.ts index 19517678f..f52dd22b5 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/RegexMatcher.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/RegexMatcher.ts @@ -101,5 +101,5 @@ export interface RegexMatcher__Output { * against the full string, not as a partial match. */ 'regex': (string); - 'engine_type': "google_re2"; + 'engine_type'?: "google_re2"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/StringMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/StringMatcher.ts index 181d59d54..8f7628557 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/StringMatcher.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/StringMatcher.ts @@ -105,5 +105,5 @@ export interface StringMatcher__Output { * * ``abc`` matches the value ``xyz.abc.def`` */ 'contains'?: (string); - 'match_pattern': "exact"|"prefix"|"suffix"|"safe_regex"|"contains"; + 'match_pattern'?: "exact"|"prefix"|"suffix"|"safe_regex"|"contains"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/StructMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/StructMatcher.ts index 22afe24a9..7e8132c0f 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/StructMatcher.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/StructMatcher.ts @@ -21,7 +21,7 @@ export interface _envoy_type_matcher_v3_StructMatcher_PathSegment__Output { * If specified, use the key to retrieve the value in a Struct. */ 'key'?: (string); - 'segment': "key"; + 'segment'?: "key"; } /** diff --git a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/ValueMatcher.ts b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/ValueMatcher.ts index d01060446..d3c2c1c54 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/ValueMatcher.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/matcher/v3/ValueMatcher.ts @@ -97,5 +97,5 @@ export interface ValueMatcher__Output { /** * Specifies how to match a value. */ - 'match_pattern': "null_match"|"double_match"|"string_match"|"bool_match"|"present_match"|"list_match"; + 'match_pattern'?: "null_match"|"double_match"|"string_match"|"bool_match"|"present_match"|"list_match"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/type/metadata/v3/MetadataKey.ts b/packages/grpc-js-xds/src/generated/envoy/type/metadata/v3/MetadataKey.ts index bc81233fc..262643911 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/metadata/v3/MetadataKey.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/metadata/v3/MetadataKey.ts @@ -22,7 +22,7 @@ export interface _envoy_type_metadata_v3_MetadataKey_PathSegment__Output { * If specified, use the key to retrieve the value in a Struct. */ 'key'?: (string); - 'segment': "key"; + 'segment'?: "key"; } /** diff --git a/packages/grpc-js-xds/src/generated/envoy/type/metadata/v3/MetadataKind.ts b/packages/grpc-js-xds/src/generated/envoy/type/metadata/v3/MetadataKind.ts index 3ca368ccb..95efb6e13 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/metadata/v3/MetadataKind.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/metadata/v3/MetadataKind.ts @@ -94,5 +94,5 @@ export interface MetadataKind__Output { * Host kind of metadata. */ 'host'?: (_envoy_type_metadata_v3_MetadataKind_Host__Output | null); - 'kind': "request"|"route"|"cluster"|"host"; + 'kind'?: "request"|"route"|"cluster"|"host"; } diff --git a/packages/grpc-js-xds/src/generated/envoy/type/tracing/v3/CustomTag.ts b/packages/grpc-js-xds/src/generated/envoy/type/tracing/v3/CustomTag.ts index 34ac26f8c..fd785e4ee 100644 --- a/packages/grpc-js-xds/src/generated/envoy/type/tracing/v3/CustomTag.ts +++ b/packages/grpc-js-xds/src/generated/envoy/type/tracing/v3/CustomTag.ts @@ -194,5 +194,5 @@ export interface CustomTag__Output { /** * Used to specify what kind of custom tag. */ - 'type': "literal"|"environment"|"request_header"|"metadata"; + 'type'?: "literal"|"environment"|"request_header"|"metadata"; } diff --git a/packages/grpc-js-xds/src/generated/google/api/HttpRule.ts b/packages/grpc-js-xds/src/generated/google/api/HttpRule.ts index 243a99f80..e6294cd5c 100644 --- a/packages/grpc-js-xds/src/generated/google/api/HttpRule.ts +++ b/packages/grpc-js-xds/src/generated/google/api/HttpRule.ts @@ -676,5 +676,5 @@ export interface HttpRule__Output { * used with any of the {get|put|post|delete|patch} methods. A custom method * can be defined using the 'custom' field. */ - 'pattern': "get"|"put"|"post"|"delete"|"patch"|"custom"; + 'pattern'?: "get"|"put"|"post"|"delete"|"patch"|"custom"; } diff --git a/packages/grpc-js-xds/src/generated/google/protobuf/Value.ts b/packages/grpc-js-xds/src/generated/google/protobuf/Value.ts index 67cc03fff..0ec6628f8 100644 --- a/packages/grpc-js-xds/src/generated/google/protobuf/Value.ts +++ b/packages/grpc-js-xds/src/generated/google/protobuf/Value.ts @@ -21,5 +21,5 @@ export interface Value__Output { 'boolValue'?: (boolean); 'structValue'?: (_google_protobuf_Struct__Output | null); 'listValue'?: (_google_protobuf_ListValue__Output | null); - 'kind': "nullValue"|"numberValue"|"stringValue"|"boolValue"|"structValue"|"listValue"; + 'kind'?: "nullValue"|"numberValue"|"stringValue"|"boolValue"|"structValue"|"listValue"; } diff --git a/packages/grpc-js-xds/src/generated/validate/BytesRules.ts b/packages/grpc-js-xds/src/generated/validate/BytesRules.ts index cba6ca1ba..1b5d92ffc 100644 --- a/packages/grpc-js-xds/src/generated/validate/BytesRules.ts +++ b/packages/grpc-js-xds/src/generated/validate/BytesRules.ts @@ -149,5 +149,5 @@ export interface BytesRules__Output { * WellKnown rules provide advanced constraints against common byte * patterns */ - 'well_known': "ip"|"ipv4"|"ipv6"; + 'well_known'?: "ip"|"ipv4"|"ipv6"; } diff --git a/packages/grpc-js-xds/src/generated/validate/FieldRules.ts b/packages/grpc-js-xds/src/generated/validate/FieldRules.ts index ce6f313e7..59d93a9b9 100644 --- a/packages/grpc-js-xds/src/generated/validate/FieldRules.ts +++ b/packages/grpc-js-xds/src/generated/validate/FieldRules.ts @@ -98,5 +98,5 @@ export interface FieldRules__Output { 'any'?: (_validate_AnyRules__Output | null); 'duration'?: (_validate_DurationRules__Output | null); 'timestamp'?: (_validate_TimestampRules__Output | null); - 'type': "float"|"double"|"int32"|"int64"|"uint32"|"uint64"|"sint32"|"sint64"|"fixed32"|"fixed64"|"sfixed32"|"sfixed64"|"bool"|"string"|"bytes"|"enum"|"repeated"|"map"|"any"|"duration"|"timestamp"; + 'type'?: "float"|"double"|"int32"|"int64"|"uint32"|"uint64"|"sint32"|"sint64"|"fixed32"|"fixed64"|"sfixed32"|"sfixed64"|"bool"|"string"|"bytes"|"enum"|"repeated"|"map"|"any"|"duration"|"timestamp"; } diff --git a/packages/grpc-js-xds/src/generated/validate/StringRules.ts b/packages/grpc-js-xds/src/generated/validate/StringRules.ts index 8bca6dffa..4a72b7bed 100644 --- a/packages/grpc-js-xds/src/generated/validate/StringRules.ts +++ b/packages/grpc-js-xds/src/generated/validate/StringRules.ts @@ -284,5 +284,5 @@ export interface StringRules__Output { * WellKnown rules provide advanced constraints against common string * patterns */ - 'well_known': "email"|"hostname"|"ip"|"ipv4"|"ipv6"|"uri"|"uri_ref"|"address"|"uuid"|"well_known_regex"; + 'well_known'?: "email"|"hostname"|"ip"|"ipv4"|"ipv6"|"uri"|"uri_ref"|"address"|"uuid"|"well_known_regex"; } diff --git a/packages/grpc-js-xds/src/generated/xds/core/v3/CollectionEntry.ts b/packages/grpc-js-xds/src/generated/xds/core/v3/CollectionEntry.ts index 5d2ce9721..9d1f6b43d 100644 --- a/packages/grpc-js-xds/src/generated/xds/core/v3/CollectionEntry.ts +++ b/packages/grpc-js-xds/src/generated/xds/core/v3/CollectionEntry.ts @@ -86,5 +86,5 @@ export interface CollectionEntry__Output { * The resource is inlined in the list collection. */ 'inline_entry'?: (_xds_core_v3_CollectionEntry_InlineEntry__Output | null); - 'resource_specifier': "locator"|"inline_entry"; + 'resource_specifier'?: "locator"|"inline_entry"; } diff --git a/packages/grpc-js-xds/src/generated/xds/core/v3/ResourceLocator.ts b/packages/grpc-js-xds/src/generated/xds/core/v3/ResourceLocator.ts index 28f981dd5..36067cf62 100644 --- a/packages/grpc-js-xds/src/generated/xds/core/v3/ResourceLocator.ts +++ b/packages/grpc-js-xds/src/generated/xds/core/v3/ResourceLocator.ts @@ -92,7 +92,7 @@ export interface _xds_core_v3_ResourceLocator_Directive__Output { * xdstp://.../foo#entry=bar. */ 'entry'?: (string); - 'directive': "alt"|"entry"; + 'directive'?: "alt"|"entry"; } // Original file: deps/xds/xds/core/v3/resource_locator.proto @@ -226,5 +226,5 @@ export interface ResourceLocator__Output { * separation. */ 'directives': (_xds_core_v3_ResourceLocator_Directive__Output)[]; - 'context_param_specifier': "exact_context"; + 'context_param_specifier'?: "exact_context"; } diff --git a/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/Matcher.ts b/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/Matcher.ts index be93c0f16..85500aaf8 100644 --- a/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/Matcher.ts +++ b/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/Matcher.ts @@ -111,7 +111,7 @@ export interface _xds_type_matcher_v3_Matcher_MatcherTree__Output { * If the lookup succeeds, the match is considered successful, and * the corresponding OnMatch is used. */ - 'tree_type': "exact_match_map"|"prefix_match_map"|"custom_match"; + 'tree_type'?: "exact_match_map"|"prefix_match_map"|"custom_match"; } /** @@ -149,7 +149,7 @@ export interface _xds_type_matcher_v3_Matcher_OnMatch__Output { * Protocol-specific action to take. */ 'action'?: (_xds_core_v3_TypedExtensionConfig__Output | null); - 'on_match': "matcher"|"action"; + 'on_match'?: "matcher"|"action"; } /** @@ -195,7 +195,7 @@ export interface _xds_type_matcher_v3_Matcher_MatcherList_Predicate__Output { * The invert of a predicate */ 'not_matcher'?: (_xds_type_matcher_v3_Matcher_MatcherList_Predicate__Output | null); - 'match_type': "single_predicate"|"or_matcher"|"and_matcher"|"not_matcher"; + 'match_type'?: "single_predicate"|"or_matcher"|"and_matcher"|"not_matcher"; } /** @@ -251,7 +251,7 @@ export interface _xds_type_matcher_v3_Matcher_MatcherList_Predicate_SinglePredic * [#extension-category: envoy.matching.input_matchers] */ 'custom_match'?: (_xds_core_v3_TypedExtensionConfig__Output | null); - 'matcher': "value_match"|"custom_match"; + 'matcher'?: "value_match"|"custom_match"; } /** @@ -303,5 +303,5 @@ export interface Matcher__Output { * If not specified, the matcher is considered not to have matched. */ 'on_no_match': (_xds_type_matcher_v3_Matcher_OnMatch__Output | null); - 'matcher_type': "matcher_list"|"matcher_tree"; + 'matcher_type'?: "matcher_list"|"matcher_tree"; } diff --git a/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/RegexMatcher.ts b/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/RegexMatcher.ts index 575051041..49660770f 100644 --- a/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/RegexMatcher.ts +++ b/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/RegexMatcher.ts @@ -76,5 +76,5 @@ export interface RegexMatcher__Output { * engine. */ 'regex': (string); - 'engine_type': "google_re2"; + 'engine_type'?: "google_re2"; } diff --git a/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/StringMatcher.ts b/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/StringMatcher.ts index af2f2f56f..9e1b74e28 100644 --- a/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/StringMatcher.ts +++ b/packages/grpc-js-xds/src/generated/xds/type/matcher/v3/StringMatcher.ts @@ -105,5 +105,5 @@ export interface StringMatcher__Output { * * *abc* matches the value *xyz.abc.def* */ 'contains'?: (string); - 'match_pattern': "exact"|"prefix"|"suffix"|"safe_regex"|"contains"; + 'match_pattern'?: "exact"|"prefix"|"suffix"|"safe_regex"|"contains"; } From 21a40271d9232b12717b32979d0925a0faa4305d Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Thu, 24 Apr 2025 11:24:38 -0700 Subject: [PATCH 4/6] grpc-js-xds: Fix compatibility issues with updated generated code --- packages/grpc-js-xds/src/resolver-xds.ts | 2 ++ .../src/xds-resource-type/route-config-resource-type.ts | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/grpc-js-xds/src/resolver-xds.ts b/packages/grpc-js-xds/src/resolver-xds.ts index b02764a79b..7f48634cb 100644 --- a/packages/grpc-js-xds/src/resolver-xds.ts +++ b/packages/grpc-js-xds/src/resolver-xds.ts @@ -171,6 +171,8 @@ function getPredicateForHeaderMatcher(headerMatch: HeaderMatcher__Output): Match case 'contains': valueChecker = new ContainsValueMatcher(stringMatch.contains!, stringMatch.ignore_case); break; + default: + valueChecker = new RejectValueMatcher(); } break; default: diff --git a/packages/grpc-js-xds/src/xds-resource-type/route-config-resource-type.ts b/packages/grpc-js-xds/src/xds-resource-type/route-config-resource-type.ts index 766a84388..e424322a6 100644 --- a/packages/grpc-js-xds/src/xds-resource-type/route-config-resource-type.ts +++ b/packages/grpc-js-xds/src/xds-resource-type/route-config-resource-type.ts @@ -119,18 +119,18 @@ export class RouteConfigurationResourceType extends XdsResourceType { if (!match) { return null; } - if (SUPPORTED_PATH_SPECIFIERS.indexOf(match.path_specifier) < 0) { + if (!match.path_specifier || SUPPORTED_PATH_SPECIFIERS.indexOf(match.path_specifier) < 0) { return null; } for (const headers of match.headers) { - if (SUPPPORTED_HEADER_MATCH_SPECIFIERS.indexOf(headers.header_match_specifier) < 0) { + if (!headers.header_match_specifier || SUPPPORTED_HEADER_MATCH_SPECIFIERS.indexOf(headers.header_match_specifier) < 0) { return null; } } if (route.action !== 'route') { return null; } - if ((route.route === undefined) || (route.route === null) || SUPPORTED_CLUSTER_SPECIFIERS.indexOf(route.route.cluster_specifier) < 0) { + if ((route.route === undefined) || (route.route === null) || !route.route.cluster_specifier || SUPPORTED_CLUSTER_SPECIFIERS.indexOf(route.route.cluster_specifier) < 0) { return null; } if (EXPERIMENTAL_FAULT_INJECTION) { From d4cfdd671094fdaa16cc1d57f06cea3c1f1586f8 Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Fri, 1 Aug 2025 09:50:14 -0700 Subject: [PATCH 5/6] grpc-js: Declare buffer type to avoid build error --- packages/grpc-js/src/compression-filter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/grpc-js/src/compression-filter.ts b/packages/grpc-js/src/compression-filter.ts index 189749f03..e4428a1fb 100644 --- a/packages/grpc-js/src/compression-filter.ts +++ b/packages/grpc-js/src/compression-filter.ts @@ -65,7 +65,7 @@ abstract class CompressionHandler { */ async readMessage(data: Buffer): Promise { const compressed = data.readUInt8(0) === 1; - let messageBuffer = data.slice(5); + let messageBuffer: Buffer = data.slice(5); if (compressed) { messageBuffer = await this.decompressMessage(messageBuffer); } From 0a17f28499831a8e1e91d9f8189a402e69ba862d Mon Sep 17 00:00:00 2001 From: Kannan J Date: Tue, 12 Aug 2025 16:01:51 +0530 Subject: [PATCH 6/6] Update xds_k8s_lb.cfg Increase timeout for lb tests for v1.10.x because of continuous streaks of timeout errors on this branch http://shortn/_5MeUHfsJfl. --- test/kokoro/xds_k8s_lb.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/kokoro/xds_k8s_lb.cfg b/test/kokoro/xds_k8s_lb.cfg index 3efb62f29..dd316ec5f 100644 --- a/test/kokoro/xds_k8s_lb.cfg +++ b/test/kokoro/xds_k8s_lb.cfg @@ -16,7 +16,7 @@ # Location of the continuous shell script in repository. build_file: "grpc-node/packages/grpc-js-xds/scripts/psm-interop-test-node.sh" -timeout_mins: 180 +timeout_mins: 240 action { define_artifacts { regex: "artifacts/**/*sponge_log.xml"