This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new d8d24a7c0d6 CAMEL-20662: Add more consumer options for the gRPC server 
setup
d8d24a7c0d6 is described below

commit d8d24a7c0d612728bc4ded32548b41c6b1ff486d
Author: James Netherton <jamesnether...@gmail.com>
AuthorDate: Thu Apr 11 10:31:32 2024 +0100

    CAMEL-20662: Add more consumer options for the gRPC server setup
---
 .../org/apache/camel/catalog/components/grpc.json  |  61 ++--
 .../component/grpc/GrpcEndpointConfigurer.java     |  66 ++++
 .../component/grpc/GrpcEndpointUriFactory.java     |  13 +-
 .../org/apache/camel/component/grpc/grpc.json      |  61 ++--
 .../camel/component/grpc/GrpcConfiguration.java    | 168 ++++++++-
 .../apache/camel/component/grpc/GrpcConsumer.java  |  20 +
 .../grpc/GrpcConsumerConfigurationTest.java        |  32 ++
 .../endpoint/dsl/GrpcEndpointBuilderFactory.java   | 403 ++++++++++++++++++++-
 .../apache/camel/kotlin/components/GrpcUriDsl.kt   | 190 +++++++++-
 9 files changed, 958 insertions(+), 56 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
index 6ab6b63d56d..8df4313896e 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/grpc.json
@@ -43,30 +43,41 @@
     "consumerStrategy": { "index": 6, "kind": "parameter", "displayName": 
"Consumer Strategy", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcConsumerStrategy", "enum": [ 
"AGGREGATION", "PROPAGATION", "DELEGATION" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "PROPAGATION", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configu [...]
     "forwardOnCompleted": { "index": 7, "kind": "parameter", "displayName": 
"Forward On Completed", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Determines if 
onCompleted events should be pushed to the Camel route." },
     "forwardOnError": { "index": 8, "kind": "parameter", "displayName": 
"Forward On Error", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Determines if onError 
events should be pushed to the Camel route. Exceptions will be s [...]
-    "maxConcurrentCallsPerConnection": { "index": 9, "kind": "parameter", 
"displayName": "Max Concurrent Calls Per Connection", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
2147483647, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The maximum number of concurrent calls 
permitted  [...]
-    "routeControlledStreamObserver": { "index": 10, "kind": "parameter", 
"displayName": "Route Controlled Stream Observer", "group": "consumer", 
"label": "consumer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Lets the route to take control over stream 
observer. I [...]
-    "bridgeErrorHandler": { "index": 11, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
-    "exceptionHandler": { "index": 12, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
-    "exchangePattern": { "index": 13, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
-    "autoDiscoverClientInterceptors": { "index": 14, "kind": "parameter", 
"displayName": "Auto Discover Client Interceptors", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Setting the autoDiscoverClientInterceptors 
mechanism, [...]
-    "inheritExchangePropertiesForReplies": { "index": 15, "kind": "parameter", 
"displayName": "Inherit Exchange Properties For Replies", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Copies exchange properties from original  [...]
-    "method": { "index": 16, "kind": "parameter", "displayName": "Method", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "gRPC method name" },
-    "producerStrategy": { "index": 17, "kind": "parameter", "displayName": 
"Producer Strategy", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcProducerStrategy", "enum": [ "SIMPLE", 
"STREAMING" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SIMPLE", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": " [...]
-    "streamRepliesTo": { "index": 18, "kind": "parameter", "displayName": 
"Stream Replies To", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "When using STREAMING client mode, it indicates 
the endpoint where responses should be forwarded." },
-    "toRouteControlledStreamObserver": { "index": 19, "kind": "parameter", 
"displayName": "To Route Controlled Stream Observer", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Expects that exchange property 
GrpcConstants.GRPC [...]
-    "userAgent": { "index": 20, "kind": "parameter", "displayName": "User 
Agent", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The user agent header passed to the server" },
-    "lazyStartProducer": { "index": 21, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
-    "synchronous": { "index": 22, "kind": "parameter", "displayName": 
"Synchronous", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets whether synchronous processing should be 
strictly used" },
-    "authenticationType": { "index": 23, "kind": "parameter", "displayName": 
"Authentication Type", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcAuthType", "enum": [ "NONE", "GOOGLE", 
"JWT" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Auth [...]
-    "jwtAlgorithm": { "index": 24, "kind": "parameter", "displayName": "Jwt 
Algorithm", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm", "enum": [ "HMAC256", 
"HMAC384", "HMAC512" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "HMAC256", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description [...]
-    "jwtIssuer": { "index": 25, "kind": "parameter", "displayName": "Jwt 
Issuer", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token issuer" },
-    "jwtSecret": { "index": 26, "kind": "parameter", "displayName": "Jwt 
Secret", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token secret" },
-    "jwtSubject": { "index": 27, "kind": "parameter", "displayName": "Jwt 
Subject", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token subject" },
-    "keyCertChainResource": { "index": 28, "kind": "parameter", "displayName": 
"Key Cert Chain Resource", "group": "security", "label": "security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The X.509 certificate chain file r [...]
-    "keyPassword": { "index": 29, "kind": "parameter", "displayName": "Key 
Password", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The PKCS#8 private key file password" },
-    "keyResource": { "index": 30, "kind": "parameter", "displayName": "Key 
Resource", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The PKCS#8 private key file resource in PEM 
format link" },
-    "negotiationType": { "index": 31, "kind": "parameter", "displayName": 
"Negotiation Type", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "io.grpc.netty.NegotiationType", "enum": [ 
"TLS", "PLAINTEXT_UPGRADE", "PLAINTEXT" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "PLAINTEXT", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Iden [...]
-    "serviceAccountResource": { "index": 32, "kind": "parameter", 
"displayName": "Service Account Resource", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Service Account key file in JSO [...]
-    "trustCertCollectionResource": { "index": 33, "kind": "parameter", 
"displayName": "Trust Cert Collection Resource", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The trusted certific [...]
+    "initialFlowControlWindow": { "index": 9, "kind": "parameter", 
"displayName": "Initial Flow Control Window", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
1048576, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets the initial flow control window in 
bytes." },
+    "keepAliveTime": { "index": 10, "kind": "parameter", "displayName": "Keep 
Alive Time", "group": "consumer", "label": "consumer", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 7200000, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets a custom keepalive time in milliseconds, 
the delay time for sending next keepalive  [...]
+    "keepAliveTimeout": { "index": 11, "kind": "parameter", "displayName": 
"Keep Alive Timeout", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 20000, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets a custom keepalive timeout in 
milliseconds, the timeout for keepalive ping requ [...]
+    "maxConcurrentCallsPerConnection": { "index": 12, "kind": "parameter", 
"displayName": "Max Concurrent Calls Per Connection", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
2147483647, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The maximum number of concurrent calls 
permitted [...]
+    "maxConnectionAge": { "index": 13, "kind": "parameter", "displayName": 
"Max Connection Age", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 9223372036854775807, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Sets a custom max 
connection age in milliseconds. Connections lasting  [...]
+    "maxConnectionAgeGrace": { "index": 14, "kind": "parameter", 
"displayName": "Max Connection Age Grace", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
9223372036854775807, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets a custom grace time in milliseconds for 
the graceful c [...]
+    "maxConnectionIdle": { "index": 15, "kind": "parameter", "displayName": 
"Max Connection Idle", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 9223372036854775807, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Sets a custom max 
connection idle time in milliseconds. Connection b [...]
+    "maxInboundMetadataSize": { "index": 16, "kind": "parameter", 
"displayName": "Max Inbound Metadata Size", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Sets the maximum size of 
metadata allowed to be received. The default is  [...]
+    "maxRstFramesPerWindow": { "index": 17, "kind": "parameter", 
"displayName": "Max Rst Frames Per Window", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Limits the rate of 
incoming RST_STREAM frames per connection to maxRstFramesP [...]
+    "maxRstPeriodSeconds": { "index": 18, "kind": "parameter", "displayName": 
"Max Rst Period Seconds", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Limits the rate of incoming RST_STREAM frames 
per maxRstPeriodSeconds. This option [...]
+    "permitKeepAliveTime": { "index": 19, "kind": "parameter", "displayName": 
"Permit Keep Alive Time", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 300000, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets the most aggressive keep-alive time in 
milliseconds that clients are pe [...]
+    "permitKeepAliveWithoutCalls": { "index": 20, "kind": "parameter", 
"displayName": "Permit Keep Alive Without Calls", "group": "consumer", "label": 
"consumer", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets whether to allow clients to send 
keep-alive HTTP\/ 2 [...]
+    "routeControlledStreamObserver": { "index": 21, "kind": "parameter", 
"displayName": "Route Controlled Stream Observer", "group": "consumer", 
"label": "consumer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Lets the route to take control over stream 
observer. I [...]
+    "bridgeErrorHandler": { "index": 22, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
+    "exceptionHandler": { "index": 23, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
+    "exchangePattern": { "index": 24, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "autoDiscoverClientInterceptors": { "index": 25, "kind": "parameter", 
"displayName": "Auto Discover Client Interceptors", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Setting the autoDiscoverClientInterceptors 
mechanism, [...]
+    "inheritExchangePropertiesForReplies": { "index": 26, "kind": "parameter", 
"displayName": "Inherit Exchange Properties For Replies", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Copies exchange properties from original  [...]
+    "method": { "index": 27, "kind": "parameter", "displayName": "Method", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "gRPC method name" },
+    "producerStrategy": { "index": 28, "kind": "parameter", "displayName": 
"Producer Strategy", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcProducerStrategy", "enum": [ "SIMPLE", 
"STREAMING" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SIMPLE", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": " [...]
+    "streamRepliesTo": { "index": 29, "kind": "parameter", "displayName": 
"Stream Replies To", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "When using STREAMING client mode, it indicates 
the endpoint where responses should be forwarded." },
+    "toRouteControlledStreamObserver": { "index": 30, "kind": "parameter", 
"displayName": "To Route Controlled Stream Observer", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Expects that exchange property 
GrpcConstants.GRPC [...]
+    "userAgent": { "index": 31, "kind": "parameter", "displayName": "User 
Agent", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The user agent header passed to the server" },
+    "lazyStartProducer": { "index": 32, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
+    "synchronous": { "index": 33, "kind": "parameter", "displayName": 
"Synchronous", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets whether synchronous processing should be 
strictly used" },
+    "authenticationType": { "index": 34, "kind": "parameter", "displayName": 
"Authentication Type", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcAuthType", "enum": [ "NONE", "GOOGLE", 
"JWT" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Auth [...]
+    "jwtAlgorithm": { "index": 35, "kind": "parameter", "displayName": "Jwt 
Algorithm", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm", "enum": [ "HMAC256", 
"HMAC384", "HMAC512" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "HMAC256", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description [...]
+    "jwtIssuer": { "index": 36, "kind": "parameter", "displayName": "Jwt 
Issuer", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token issuer" },
+    "jwtSecret": { "index": 37, "kind": "parameter", "displayName": "Jwt 
Secret", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token secret" },
+    "jwtSubject": { "index": 38, "kind": "parameter", "displayName": "Jwt 
Subject", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token subject" },
+    "keyCertChainResource": { "index": 39, "kind": "parameter", "displayName": 
"Key Cert Chain Resource", "group": "security", "label": "security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The X.509 certificate chain file r [...]
+    "keyPassword": { "index": 40, "kind": "parameter", "displayName": "Key 
Password", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The PKCS#8 private key file password" },
+    "keyResource": { "index": 41, "kind": "parameter", "displayName": "Key 
Resource", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The PKCS#8 private key file resource in PEM 
format link" },
+    "negotiationType": { "index": 42, "kind": "parameter", "displayName": 
"Negotiation Type", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "io.grpc.netty.NegotiationType", "enum": [ 
"TLS", "PLAINTEXT_UPGRADE", "PLAINTEXT" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "PLAINTEXT", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Iden [...]
+    "serviceAccountResource": { "index": 43, "kind": "parameter", 
"displayName": "Service Account Resource", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Service Account key file in JSO [...]
+    "trustCertCollectionResource": { "index": 44, "kind": "parameter", 
"displayName": "Trust Cert Collection Resource", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The trusted certific [...]
   }
 }
diff --git 
a/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointConfigurer.java
 
b/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointConfigurer.java
index c982e98b20c..bf01e1ddc67 100644
--- 
a/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointConfigurer.java
+++ 
b/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointConfigurer.java
@@ -43,6 +43,8 @@ public class GrpcEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "forwardOnError": 
target.getConfiguration().setForwardOnError(property(camelContext, 
boolean.class, value)); return true;
         case "inheritexchangepropertiesforreplies":
         case "inheritExchangePropertiesForReplies": 
target.getConfiguration().setInheritExchangePropertiesForReplies(property(camelContext,
 boolean.class, value)); return true;
+        case "initialflowcontrolwindow":
+        case "initialFlowControlWindow": 
target.getConfiguration().setInitialFlowControlWindow(property(camelContext, 
int.class, value)); return true;
         case "jwtalgorithm":
         case "jwtAlgorithm": 
target.getConfiguration().setJwtAlgorithm(property(camelContext, 
org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm.class, value)); return 
true;
         case "jwtissuer":
@@ -51,6 +53,10 @@ public class GrpcEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "jwtSecret": 
target.getConfiguration().setJwtSecret(property(camelContext, 
java.lang.String.class, value)); return true;
         case "jwtsubject":
         case "jwtSubject": 
target.getConfiguration().setJwtSubject(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "keepalivetime":
+        case "keepAliveTime": 
target.getConfiguration().setKeepAliveTime(property(camelContext, long.class, 
value)); return true;
+        case "keepalivetimeout":
+        case "keepAliveTimeout": 
target.getConfiguration().setKeepAliveTimeout(property(camelContext, 
long.class, value)); return true;
         case "keycertchainresource":
         case "keyCertChainResource": 
target.getConfiguration().setKeyCertChainResource(property(camelContext, 
java.lang.String.class, value)); return true;
         case "keypassword":
@@ -61,11 +67,27 @@ public class GrpcEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
         case "maxconcurrentcallsperconnection":
         case "maxConcurrentCallsPerConnection": 
target.getConfiguration().setMaxConcurrentCallsPerConnection(property(camelContext,
 int.class, value)); return true;
+        case "maxconnectionage":
+        case "maxConnectionAge": 
target.getConfiguration().setMaxConnectionAge(property(camelContext, 
long.class, value)); return true;
+        case "maxconnectionagegrace":
+        case "maxConnectionAgeGrace": 
target.getConfiguration().setMaxConnectionAgeGrace(property(camelContext, 
long.class, value)); return true;
+        case "maxconnectionidle":
+        case "maxConnectionIdle": 
target.getConfiguration().setMaxConnectionIdle(property(camelContext, 
long.class, value)); return true;
+        case "maxinboundmetadatasize":
+        case "maxInboundMetadataSize": 
target.getConfiguration().setMaxInboundMetadataSize(property(camelContext, 
int.class, value)); return true;
         case "maxmessagesize":
         case "maxMessageSize": 
target.getConfiguration().setMaxMessageSize(property(camelContext, int.class, 
value)); return true;
+        case "maxrstframesperwindow":
+        case "maxRstFramesPerWindow": 
target.getConfiguration().setMaxRstFramesPerWindow(property(camelContext, 
int.class, value)); return true;
+        case "maxrstperiodseconds":
+        case "maxRstPeriodSeconds": 
target.getConfiguration().setMaxRstPeriodSeconds(property(camelContext, 
int.class, value)); return true;
         case "method": 
target.getConfiguration().setMethod(property(camelContext, 
java.lang.String.class, value)); return true;
         case "negotiationtype":
         case "negotiationType": 
target.getConfiguration().setNegotiationType(property(camelContext, 
io.grpc.netty.NegotiationType.class, value)); return true;
+        case "permitkeepalivetime":
+        case "permitKeepAliveTime": 
target.getConfiguration().setPermitKeepAliveTime(property(camelContext, 
long.class, value)); return true;
+        case "permitkeepalivewithoutcalls":
+        case "permitKeepAliveWithoutCalls": 
target.getConfiguration().setPermitKeepAliveWithoutCalls(property(camelContext, 
boolean.class, value)); return true;
         case "producerstrategy":
         case "producerStrategy": 
target.getConfiguration().setProducerStrategy(property(camelContext, 
org.apache.camel.component.grpc.GrpcProducerStrategy.class, value)); return 
true;
         case "routecontrolledstreamobserver":
@@ -110,6 +132,8 @@ public class GrpcEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "forwardOnError": return boolean.class;
         case "inheritexchangepropertiesforreplies":
         case "inheritExchangePropertiesForReplies": return boolean.class;
+        case "initialflowcontrolwindow":
+        case "initialFlowControlWindow": return int.class;
         case "jwtalgorithm":
         case "jwtAlgorithm": return 
org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm.class;
         case "jwtissuer":
@@ -118,6 +142,10 @@ public class GrpcEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "jwtSecret": return java.lang.String.class;
         case "jwtsubject":
         case "jwtSubject": return java.lang.String.class;
+        case "keepalivetime":
+        case "keepAliveTime": return long.class;
+        case "keepalivetimeout":
+        case "keepAliveTimeout": return long.class;
         case "keycertchainresource":
         case "keyCertChainResource": return java.lang.String.class;
         case "keypassword":
@@ -128,11 +156,27 @@ public class GrpcEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "lazyStartProducer": return boolean.class;
         case "maxconcurrentcallsperconnection":
         case "maxConcurrentCallsPerConnection": return int.class;
+        case "maxconnectionage":
+        case "maxConnectionAge": return long.class;
+        case "maxconnectionagegrace":
+        case "maxConnectionAgeGrace": return long.class;
+        case "maxconnectionidle":
+        case "maxConnectionIdle": return long.class;
+        case "maxinboundmetadatasize":
+        case "maxInboundMetadataSize": return int.class;
         case "maxmessagesize":
         case "maxMessageSize": return int.class;
+        case "maxrstframesperwindow":
+        case "maxRstFramesPerWindow": return int.class;
+        case "maxrstperiodseconds":
+        case "maxRstPeriodSeconds": return int.class;
         case "method": return java.lang.String.class;
         case "negotiationtype":
         case "negotiationType": return io.grpc.netty.NegotiationType.class;
+        case "permitkeepalivetime":
+        case "permitKeepAliveTime": return long.class;
+        case "permitkeepalivewithoutcalls":
+        case "permitKeepAliveWithoutCalls": return boolean.class;
         case "producerstrategy":
         case "producerStrategy": return 
org.apache.camel.component.grpc.GrpcProducerStrategy.class;
         case "routecontrolledstreamobserver":
@@ -178,6 +222,8 @@ public class GrpcEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "forwardOnError": return 
target.getConfiguration().isForwardOnError();
         case "inheritexchangepropertiesforreplies":
         case "inheritExchangePropertiesForReplies": return 
target.getConfiguration().isInheritExchangePropertiesForReplies();
+        case "initialflowcontrolwindow":
+        case "initialFlowControlWindow": return 
target.getConfiguration().getInitialFlowControlWindow();
         case "jwtalgorithm":
         case "jwtAlgorithm": return 
target.getConfiguration().getJwtAlgorithm();
         case "jwtissuer":
@@ -186,6 +232,10 @@ public class GrpcEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "jwtSecret": return target.getConfiguration().getJwtSecret();
         case "jwtsubject":
         case "jwtSubject": return target.getConfiguration().getJwtSubject();
+        case "keepalivetime":
+        case "keepAliveTime": return 
target.getConfiguration().getKeepAliveTime();
+        case "keepalivetimeout":
+        case "keepAliveTimeout": return 
target.getConfiguration().getKeepAliveTimeout();
         case "keycertchainresource":
         case "keyCertChainResource": return 
target.getConfiguration().getKeyCertChainResource();
         case "keypassword":
@@ -196,11 +246,27 @@ public class GrpcEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "maxconcurrentcallsperconnection":
         case "maxConcurrentCallsPerConnection": return 
target.getConfiguration().getMaxConcurrentCallsPerConnection();
+        case "maxconnectionage":
+        case "maxConnectionAge": return 
target.getConfiguration().getMaxConnectionAge();
+        case "maxconnectionagegrace":
+        case "maxConnectionAgeGrace": return 
target.getConfiguration().getMaxConnectionAgeGrace();
+        case "maxconnectionidle":
+        case "maxConnectionIdle": return 
target.getConfiguration().getMaxConnectionIdle();
+        case "maxinboundmetadatasize":
+        case "maxInboundMetadataSize": return 
target.getConfiguration().getMaxInboundMetadataSize();
         case "maxmessagesize":
         case "maxMessageSize": return 
target.getConfiguration().getMaxMessageSize();
+        case "maxrstframesperwindow":
+        case "maxRstFramesPerWindow": return 
target.getConfiguration().getMaxRstFramesPerWindow();
+        case "maxrstperiodseconds":
+        case "maxRstPeriodSeconds": return 
target.getConfiguration().getMaxRstPeriodSeconds();
         case "method": return target.getConfiguration().getMethod();
         case "negotiationtype":
         case "negotiationType": return 
target.getConfiguration().getNegotiationType();
+        case "permitkeepalivetime":
+        case "permitKeepAliveTime": return 
target.getConfiguration().getPermitKeepAliveTime();
+        case "permitkeepalivewithoutcalls":
+        case "permitKeepAliveWithoutCalls": return 
target.getConfiguration().isPermitKeepAliveWithoutCalls();
         case "producerstrategy":
         case "producerStrategy": return 
target.getConfiguration().getProducerStrategy();
         case "routecontrolledstreamobserver":
diff --git 
a/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointUriFactory.java
 
b/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointUriFactory.java
index fe990fa1072..8ab3efc2b69 100644
--- 
a/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointUriFactory.java
+++ 
b/components/camel-grpc/src/generated/java/org/apache/camel/component/grpc/GrpcEndpointUriFactory.java
@@ -21,7 +21,7 @@ public class GrpcEndpointUriFactory extends 
org.apache.camel.support.component.E
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(34);
+        Set<String> props = new HashSet<>(45);
         props.add("authenticationType");
         props.add("autoDiscoverClientInterceptors");
         props.add("autoDiscoverServerInterceptors");
@@ -34,18 +34,29 @@ public class GrpcEndpointUriFactory extends 
org.apache.camel.support.component.E
         props.add("forwardOnError");
         props.add("host");
         props.add("inheritExchangePropertiesForReplies");
+        props.add("initialFlowControlWindow");
         props.add("jwtAlgorithm");
         props.add("jwtIssuer");
         props.add("jwtSecret");
         props.add("jwtSubject");
+        props.add("keepAliveTime");
+        props.add("keepAliveTimeout");
         props.add("keyCertChainResource");
         props.add("keyPassword");
         props.add("keyResource");
         props.add("lazyStartProducer");
         props.add("maxConcurrentCallsPerConnection");
+        props.add("maxConnectionAge");
+        props.add("maxConnectionAgeGrace");
+        props.add("maxConnectionIdle");
+        props.add("maxInboundMetadataSize");
         props.add("maxMessageSize");
+        props.add("maxRstFramesPerWindow");
+        props.add("maxRstPeriodSeconds");
         props.add("method");
         props.add("negotiationType");
+        props.add("permitKeepAliveTime");
+        props.add("permitKeepAliveWithoutCalls");
         props.add("port");
         props.add("producerStrategy");
         props.add("routeControlledStreamObserver");
diff --git 
a/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
 
b/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
index 6ab6b63d56d..8df4313896e 100644
--- 
a/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
+++ 
b/components/camel-grpc/src/generated/resources/META-INF/org/apache/camel/component/grpc/grpc.json
@@ -43,30 +43,41 @@
     "consumerStrategy": { "index": 6, "kind": "parameter", "displayName": 
"Consumer Strategy", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcConsumerStrategy", "enum": [ 
"AGGREGATION", "PROPAGATION", "DELEGATION" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "PROPAGATION", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configu [...]
     "forwardOnCompleted": { "index": 7, "kind": "parameter", "displayName": 
"Forward On Completed", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Determines if 
onCompleted events should be pushed to the Camel route." },
     "forwardOnError": { "index": 8, "kind": "parameter", "displayName": 
"Forward On Error", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Determines if onError 
events should be pushed to the Camel route. Exceptions will be s [...]
-    "maxConcurrentCallsPerConnection": { "index": 9, "kind": "parameter", 
"displayName": "Max Concurrent Calls Per Connection", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
2147483647, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The maximum number of concurrent calls 
permitted  [...]
-    "routeControlledStreamObserver": { "index": 10, "kind": "parameter", 
"displayName": "Route Controlled Stream Observer", "group": "consumer", 
"label": "consumer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Lets the route to take control over stream 
observer. I [...]
-    "bridgeErrorHandler": { "index": 11, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
-    "exceptionHandler": { "index": 12, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
-    "exchangePattern": { "index": 13, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
-    "autoDiscoverClientInterceptors": { "index": 14, "kind": "parameter", 
"displayName": "Auto Discover Client Interceptors", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Setting the autoDiscoverClientInterceptors 
mechanism, [...]
-    "inheritExchangePropertiesForReplies": { "index": 15, "kind": "parameter", 
"displayName": "Inherit Exchange Properties For Replies", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Copies exchange properties from original  [...]
-    "method": { "index": 16, "kind": "parameter", "displayName": "Method", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "gRPC method name" },
-    "producerStrategy": { "index": 17, "kind": "parameter", "displayName": 
"Producer Strategy", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcProducerStrategy", "enum": [ "SIMPLE", 
"STREAMING" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SIMPLE", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": " [...]
-    "streamRepliesTo": { "index": 18, "kind": "parameter", "displayName": 
"Stream Replies To", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "When using STREAMING client mode, it indicates 
the endpoint where responses should be forwarded." },
-    "toRouteControlledStreamObserver": { "index": 19, "kind": "parameter", 
"displayName": "To Route Controlled Stream Observer", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Expects that exchange property 
GrpcConstants.GRPC [...]
-    "userAgent": { "index": 20, "kind": "parameter", "displayName": "User 
Agent", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The user agent header passed to the server" },
-    "lazyStartProducer": { "index": 21, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
-    "synchronous": { "index": 22, "kind": "parameter", "displayName": 
"Synchronous", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets whether synchronous processing should be 
strictly used" },
-    "authenticationType": { "index": 23, "kind": "parameter", "displayName": 
"Authentication Type", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcAuthType", "enum": [ "NONE", "GOOGLE", 
"JWT" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Auth [...]
-    "jwtAlgorithm": { "index": 24, "kind": "parameter", "displayName": "Jwt 
Algorithm", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm", "enum": [ "HMAC256", 
"HMAC384", "HMAC512" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "HMAC256", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description [...]
-    "jwtIssuer": { "index": 25, "kind": "parameter", "displayName": "Jwt 
Issuer", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token issuer" },
-    "jwtSecret": { "index": 26, "kind": "parameter", "displayName": "Jwt 
Secret", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token secret" },
-    "jwtSubject": { "index": 27, "kind": "parameter", "displayName": "Jwt 
Subject", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token subject" },
-    "keyCertChainResource": { "index": 28, "kind": "parameter", "displayName": 
"Key Cert Chain Resource", "group": "security", "label": "security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The X.509 certificate chain file r [...]
-    "keyPassword": { "index": 29, "kind": "parameter", "displayName": "Key 
Password", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The PKCS#8 private key file password" },
-    "keyResource": { "index": 30, "kind": "parameter", "displayName": "Key 
Resource", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The PKCS#8 private key file resource in PEM 
format link" },
-    "negotiationType": { "index": 31, "kind": "parameter", "displayName": 
"Negotiation Type", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "io.grpc.netty.NegotiationType", "enum": [ 
"TLS", "PLAINTEXT_UPGRADE", "PLAINTEXT" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "PLAINTEXT", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Iden [...]
-    "serviceAccountResource": { "index": 32, "kind": "parameter", 
"displayName": "Service Account Resource", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Service Account key file in JSO [...]
-    "trustCertCollectionResource": { "index": 33, "kind": "parameter", 
"displayName": "Trust Cert Collection Resource", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The trusted certific [...]
+    "initialFlowControlWindow": { "index": 9, "kind": "parameter", 
"displayName": "Initial Flow Control Window", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
1048576, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets the initial flow control window in 
bytes." },
+    "keepAliveTime": { "index": 10, "kind": "parameter", "displayName": "Keep 
Alive Time", "group": "consumer", "label": "consumer", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 7200000, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets a custom keepalive time in milliseconds, 
the delay time for sending next keepalive  [...]
+    "keepAliveTimeout": { "index": 11, "kind": "parameter", "displayName": 
"Keep Alive Timeout", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 20000, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets a custom keepalive timeout in 
milliseconds, the timeout for keepalive ping requ [...]
+    "maxConcurrentCallsPerConnection": { "index": 12, "kind": "parameter", 
"displayName": "Max Concurrent Calls Per Connection", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
2147483647, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The maximum number of concurrent calls 
permitted [...]
+    "maxConnectionAge": { "index": 13, "kind": "parameter", "displayName": 
"Max Connection Age", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 9223372036854775807, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Sets a custom max 
connection age in milliseconds. Connections lasting  [...]
+    "maxConnectionAgeGrace": { "index": 14, "kind": "parameter", 
"displayName": "Max Connection Age Grace", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
9223372036854775807, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets a custom grace time in milliseconds for 
the graceful c [...]
+    "maxConnectionIdle": { "index": 15, "kind": "parameter", "displayName": 
"Max Connection Idle", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 9223372036854775807, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Sets a custom max 
connection idle time in milliseconds. Connection b [...]
+    "maxInboundMetadataSize": { "index": 16, "kind": "parameter", 
"displayName": "Max Inbound Metadata Size", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Sets the maximum size of 
metadata allowed to be received. The default is  [...]
+    "maxRstFramesPerWindow": { "index": 17, "kind": "parameter", 
"displayName": "Max Rst Frames Per Window", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, 
"configurationClass": "org.apache.camel.component.grpc.GrpcConfiguration", 
"configurationField": "configuration", "description": "Limits the rate of 
incoming RST_STREAM frames per connection to maxRstFramesP [...]
+    "maxRstPeriodSeconds": { "index": 18, "kind": "parameter", "displayName": 
"Max Rst Period Seconds", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 0, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Limits the rate of incoming RST_STREAM frames 
per maxRstPeriodSeconds. This option [...]
+    "permitKeepAliveTime": { "index": 19, "kind": "parameter", "displayName": 
"Permit Keep Alive Time", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 300000, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets the most aggressive keep-alive time in 
milliseconds that clients are pe [...]
+    "permitKeepAliveWithoutCalls": { "index": 20, "kind": "parameter", 
"displayName": "Permit Keep Alive Without Calls", "group": "consumer", "label": 
"consumer", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets whether to allow clients to send 
keep-alive HTTP\/ 2 [...]
+    "routeControlledStreamObserver": { "index": 21, "kind": "parameter", 
"displayName": "Route Controlled Stream Observer", "group": "consumer", 
"label": "consumer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Lets the route to take control over stream 
observer. I [...]
+    "bridgeErrorHandler": { "index": 22, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
+    "exceptionHandler": { "index": 23, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
+    "exchangePattern": { "index": 24, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "autoDiscoverClientInterceptors": { "index": 25, "kind": "parameter", 
"displayName": "Auto Discover Client Interceptors", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Setting the autoDiscoverClientInterceptors 
mechanism, [...]
+    "inheritExchangePropertiesForReplies": { "index": 26, "kind": "parameter", 
"displayName": "Inherit Exchange Properties For Replies", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Copies exchange properties from original  [...]
+    "method": { "index": 27, "kind": "parameter", "displayName": "Method", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "gRPC method name" },
+    "producerStrategy": { "index": 28, "kind": "parameter", "displayName": 
"Producer Strategy", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcProducerStrategy", "enum": [ "SIMPLE", 
"STREAMING" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SIMPLE", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": " [...]
+    "streamRepliesTo": { "index": 29, "kind": "parameter", "displayName": 
"Stream Replies To", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "When using STREAMING client mode, it indicates 
the endpoint where responses should be forwarded." },
+    "toRouteControlledStreamObserver": { "index": 30, "kind": "parameter", 
"displayName": "To Route Controlled Stream Observer", "group": "producer", 
"label": "producer", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Expects that exchange property 
GrpcConstants.GRPC [...]
+    "userAgent": { "index": 31, "kind": "parameter", "displayName": "User 
Agent", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The user agent header passed to the server" },
+    "lazyStartProducer": { "index": 32, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
+    "synchronous": { "index": 33, "kind": "parameter", "displayName": 
"Synchronous", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Sets whether synchronous processing should be 
strictly used" },
+    "authenticationType": { "index": 34, "kind": "parameter", "displayName": 
"Authentication Type", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.grpc.GrpcAuthType", "enum": [ "NONE", "GOOGLE", 
"JWT" ], "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Auth [...]
+    "jwtAlgorithm": { "index": 35, "kind": "parameter", "displayName": "Jwt 
Algorithm", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm", "enum": [ "HMAC256", 
"HMAC384", "HMAC512" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "HMAC256", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description [...]
+    "jwtIssuer": { "index": 36, "kind": "parameter", "displayName": "Jwt 
Issuer", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token issuer" },
+    "jwtSecret": { "index": 37, "kind": "parameter", "displayName": "Jwt 
Secret", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token secret" },
+    "jwtSubject": { "index": 38, "kind": "parameter", "displayName": "Jwt 
Subject", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "JSON Web Token subject" },
+    "keyCertChainResource": { "index": 39, "kind": "parameter", "displayName": 
"Key Cert Chain Resource", "group": "security", "label": "security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The X.509 certificate chain file r [...]
+    "keyPassword": { "index": 40, "kind": "parameter", "displayName": "Key 
Password", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The PKCS#8 private key file password" },
+    "keyResource": { "index": 41, "kind": "parameter", "displayName": "Key 
Resource", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, 
"supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The PKCS#8 private key file resource in PEM 
format link" },
+    "negotiationType": { "index": 42, "kind": "parameter", "displayName": 
"Negotiation Type", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "io.grpc.netty.NegotiationType", "enum": [ 
"TLS", "PLAINTEXT_UPGRADE", "PLAINTEXT" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "PLAINTEXT", "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Iden [...]
+    "serviceAccountResource": { "index": 43, "kind": "parameter", 
"displayName": "Service Account Resource", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "Service Account key file in JSO [...]
+    "trustCertCollectionResource": { "index": 44, "kind": "parameter", 
"displayName": "Trust Cert Collection Resource", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "supportFileReference": true, "configurationClass": 
"org.apache.camel.component.grpc.GrpcConfiguration", "configurationField": 
"configuration", "description": "The trusted certific [...]
   }
 }
diff --git 
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConfiguration.java
 
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConfiguration.java
index 41067736feb..5a3e24e62a7 100644
--- 
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConfiguration.java
+++ 
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConfiguration.java
@@ -19,12 +19,14 @@ package org.apache.camel.component.grpc;
 import java.net.URI;
 import java.util.Collections;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 import io.grpc.ClientInterceptor;
 import io.grpc.ServerInterceptor;
 import io.grpc.internal.GrpcUtil;
 import io.grpc.netty.NegotiationType;
 import io.grpc.netty.NettyChannelBuilder;
+import io.grpc.netty.NettyServerBuilder;
 import org.apache.camel.component.grpc.auth.jwt.JwtAlgorithm;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
@@ -138,6 +140,39 @@ public class GrpcConfiguration {
               description = "Expects that exchange property 
GrpcConstants.GRPC_RESPONSE_OBSERVER is set. Takes its value and calls onNext, 
onError and onComplete on that StreamObserver. All other gRPC parameters are 
ignored.")
     private boolean toRouteControlledStreamObserver = false;
 
+    @UriParam(label = "consumer", defaultValue = "" + 
NettyServerBuilder.DEFAULT_FLOW_CONTROL_WINDOW)
+    private int initialFlowControlWindow = 
NettyServerBuilder.DEFAULT_FLOW_CONTROL_WINDOW;
+
+    @UriParam(label = "consumer", defaultValue = "7200000")
+    private long keepAliveTime = 
TimeUnit.NANOSECONDS.toMillis(GrpcUtil.DEFAULT_SERVER_KEEPALIVE_TIME_NANOS);
+
+    @UriParam(label = "consumer", defaultValue = "20000")
+    private long keepAliveTimeout = 
TimeUnit.NANOSECONDS.toMillis(GrpcUtil.DEFAULT_SERVER_KEEPALIVE_TIMEOUT_NANOS);
+
+    @UriParam(label = "consumer", defaultValue = "" + Long.MAX_VALUE)
+    private long maxConnectionAge = Long.MAX_VALUE;
+
+    @UriParam(label = "consumer", defaultValue = "" + Long.MAX_VALUE)
+    private long maxConnectionIdle = Long.MAX_VALUE;
+
+    @UriParam(label = "consumer", defaultValue = "" + Long.MAX_VALUE)
+    private long maxConnectionAgeGrace = Long.MAX_VALUE;
+
+    @UriParam(label = "consumer", defaultValue = "" + 
GrpcUtil.DEFAULT_MAX_HEADER_LIST_SIZE)
+    private int maxInboundMetadataSize = GrpcUtil.DEFAULT_MAX_HEADER_LIST_SIZE;
+
+    @UriParam(label = "consumer", defaultValue = "0")
+    private int maxRstFramesPerWindow;
+
+    @UriParam(label = "consumer", defaultValue = "0")
+    private int maxRstPeriodSeconds;
+
+    @UriParam(label = "consumer", defaultValue = "300000")
+    private long permitKeepAliveTime = TimeUnit.MINUTES.toMillis(5);
+
+    @UriParam(label = "consumer", defaultValue = "false")
+    private boolean permitKeepAliveWithoutCalls;
+
     /**
      * Fully qualified service name from the protocol buffer descriptor file 
(package dot service definition name)
      */
@@ -419,7 +454,7 @@ public class GrpcConfiguration {
     }
 
     /**
-     * The maximum number of concurrent calls permitted for each incoming 
server connection
+     * The maximum number of concurrent calls permitted for each incoming 
server connection. Defaults to no limit.
      */
     public void setMaxConcurrentCallsPerConnection(int 
maxConcurrentCallsPerConnection) {
         this.maxConcurrentCallsPerConnection = maxConcurrentCallsPerConnection;
@@ -497,6 +532,137 @@ public class GrpcConfiguration {
         this.toRouteControlledStreamObserver = toRouteControlledStreamObserver;
     }
 
+    public int getInitialFlowControlWindow() {
+        return initialFlowControlWindow;
+    }
+
+    /**
+     * Sets the initial flow control window in bytes.
+     */
+    public void setInitialFlowControlWindow(int initialFlowControlWindow) {
+        this.initialFlowControlWindow = initialFlowControlWindow;
+    }
+
+    public long getKeepAliveTime() {
+        return keepAliveTime;
+    }
+
+    /**
+     * Sets a custom keepalive time in milliseconds, the delay time for 
sending next keepalive ping. A value of
+     * Long.MAX_VALUE or a value greater or equal to 
NettyServerBuilder.AS_LARGE_AS_INFINITE will disable keepalive.
+     */
+    public void setKeepAliveTime(long keepAliveTime) {
+        this.keepAliveTime = keepAliveTime;
+    }
+
+    public long getKeepAliveTimeout() {
+        return keepAliveTimeout;
+    }
+
+    /**
+     * Sets a custom keepalive timeout in milliseconds, the timeout for 
keepalive ping requests.
+     */
+    public void setKeepAliveTimeout(long keepAliveTimeout) {
+        this.keepAliveTimeout = keepAliveTimeout;
+    }
+
+    public long getMaxConnectionAge() {
+        return maxConnectionAge;
+    }
+
+    /**
+     * Sets a custom max connection age in milliseconds. Connections lasting 
longer than which will be gracefully
+     * terminated. A random jitter of +/-10% will be added to the value. A 
value of Long.MAX_VALUE (the default) or a
+     * value greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will 
disable max connection age.
+     */
+    public void setMaxConnectionAge(long maxConnectionAge) {
+        this.maxConnectionAge = maxConnectionAge;
+    }
+
+    public long getMaxConnectionIdle() {
+        return maxConnectionIdle;
+    }
+
+    /**
+     * Sets a custom max connection idle time in milliseconds. Connection 
being idle for longer than which will be
+     * gracefully terminated. A value of Long.MAX_VALUE (the default) or a 
value greater or equal to
+     * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection idle
+     */
+    public void setMaxConnectionIdle(long maxConnectionIdle) {
+        this.maxConnectionIdle = maxConnectionIdle;
+    }
+
+    public long getMaxConnectionAgeGrace() {
+        return maxConnectionAgeGrace;
+    }
+
+    /**
+     * Sets a custom grace time in milliseconds for the graceful connection 
termination. A value of Long.MAX_VALUE (the
+     * default) or a value greater or equal to 
NettyServerBuilder.AS_LARGE_AS_INFINITE is considered infinite.
+     */
+    public void setMaxConnectionAgeGrace(long maxConnectionAgeGrace) {
+        this.maxConnectionAgeGrace = maxConnectionAgeGrace;
+    }
+
+    public int getMaxInboundMetadataSize() {
+        return maxInboundMetadataSize;
+    }
+
+    /**
+     * Sets the maximum size of metadata allowed to be received. The default 
is 8 KiB.
+     */
+    public void setMaxInboundMetadataSize(int maxInboundMetadataSize) {
+        this.maxInboundMetadataSize = maxInboundMetadataSize;
+    }
+
+    public int getMaxRstFramesPerWindow() {
+        return maxRstFramesPerWindow;
+    }
+
+    /**
+     * Limits the rate of incoming RST_STREAM frames per connection to 
maxRstFramesPerWindow per maxRstPeriodSeconds.
+     * This option MUST be used in conjunction with maxRstPeriodSeconds for it 
to be effective.
+     */
+    public void setMaxRstFramesPerWindow(int maxRstFramesPerWindow) {
+        this.maxRstFramesPerWindow = maxRstFramesPerWindow;
+    }
+
+    public int getMaxRstPeriodSeconds() {
+        return maxRstPeriodSeconds;
+    }
+
+    /**
+     * Limits the rate of incoming RST_STREAM frames per maxRstPeriodSeconds. 
This option MUST be used in conjunction
+     * with maxRstFramesPerWindow for it to be effective.
+     */
+    public void setMaxRstPeriodSeconds(int maxRstPeriodSeconds) {
+        this.maxRstPeriodSeconds = maxRstPeriodSeconds;
+    }
+
+    public long getPermitKeepAliveTime() {
+        return permitKeepAliveTime;
+    }
+
+    /**
+     * Sets the most aggressive keep-alive time in milliseconds that clients 
are permitted to configure. The server will
+     * try to detect clients exceeding this rate and will forcefully close the 
connection.
+     */
+    public void setPermitKeepAliveTime(long permitKeepAliveTime) {
+        this.permitKeepAliveTime = permitKeepAliveTime;
+    }
+
+    public boolean isPermitKeepAliveWithoutCalls() {
+        return permitKeepAliveWithoutCalls;
+    }
+
+    /**
+     * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even if 
there are no outstanding RPCs on the
+     * connection.
+     */
+    public void setPermitKeepAliveWithoutCalls(boolean 
permitKeepAliveWithoutCalls) {
+        this.permitKeepAliveWithoutCalls = permitKeepAliveWithoutCalls;
+    }
+
     public void parseURI(URI uri) {
         setHost(uri.getHost());
 
diff --git 
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConsumer.java
 
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConsumer.java
index 93ecb2cace2..90447c6de28 100644
--- 
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConsumer.java
+++ 
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcConsumer.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.grpc;
 
 import java.net.InetSocketAddress;
+import java.util.concurrent.TimeUnit;
 
 import io.grpc.BindableService;
 import io.grpc.Server;
@@ -138,6 +139,16 @@ public class GrpcConsumer extends DefaultConsumer {
                     configuration.getJwtIssuer(), 
configuration.getJwtSubject()));
         }
 
+        // To configure RST_STREAM settings we need valid configuration for 
both maxRstFramesPerWindow & maxRstPeriodSeconds
+        if (configuration.getMaxRstFramesPerWindow() > 0 && 
configuration.getMaxRstPeriodSeconds() <= 0) {
+            throw new IllegalArgumentException("maxRstPeriodSeconds must be a 
positive value");
+        } else if (configuration.getMaxRstFramesPerWindow() <= 0 && 
configuration.getMaxRstPeriodSeconds() > 0) {
+            throw new IllegalArgumentException("maxRstFramesPerWindow must be 
a positive value");
+        } else if (configuration.getMaxRstFramesPerWindow() > 0 && 
configuration.getMaxRstPeriodSeconds() > 0) {
+            
serverBuilder.maxRstFramesPerWindow(configuration.getMaxRstFramesPerWindow(),
+                    configuration.getMaxRstPeriodSeconds());
+        }
+
         for (ServerInterceptor si : configuration.getServerInterceptors()) {
             serverBuilder.intercept(si);
         }
@@ -146,6 +157,15 @@ public class GrpcConsumer extends DefaultConsumer {
                 .maxInboundMessageSize(configuration.getMaxMessageSize())
                 .flowControlWindow(configuration.getFlowControlWindow())
                 
.maxConcurrentCallsPerConnection(configuration.getMaxConcurrentCallsPerConnection())
+                
.initialFlowControlWindow(configuration.getInitialFlowControlWindow())
+                .keepAliveTime(configuration.getKeepAliveTime(), 
TimeUnit.MILLISECONDS)
+                .keepAliveTimeout(configuration.getKeepAliveTimeout(), 
TimeUnit.MILLISECONDS)
+                .maxConnectionAge(configuration.getMaxConnectionAge(), 
TimeUnit.MILLISECONDS)
+                .maxConnectionIdle(configuration.getMaxConnectionIdle(), 
TimeUnit.MILLISECONDS)
+                
.maxConnectionAgeGrace(configuration.getMaxConnectionAgeGrace(), 
TimeUnit.MILLISECONDS)
+                
.maxInboundMetadataSize(configuration.getMaxInboundMetadataSize())
+                .permitKeepAliveTime(configuration.getPermitKeepAliveTime(), 
TimeUnit.MILLISECONDS)
+                
.permitKeepAliveWithoutCalls(configuration.isPermitKeepAliveWithoutCalls())
                 .build();
     }
 
diff --git 
a/components/camel-grpc/src/test/java/org/apache/camel/component/grpc/GrpcConsumerConfigurationTest.java
 
b/components/camel-grpc/src/test/java/org/apache/camel/component/grpc/GrpcConsumerConfigurationTest.java
index 0b8b1c38908..b604e668bf3 100644
--- 
a/components/camel-grpc/src/test/java/org/apache/camel/component/grpc/GrpcConsumerConfigurationTest.java
+++ 
b/components/camel-grpc/src/test/java/org/apache/camel/component/grpc/GrpcConsumerConfigurationTest.java
@@ -44,4 +44,36 @@ class GrpcConsumerConfigurationTest extends CamelTestSupport 
{
                 () -> 
consumer.receive("grpc:localhost:0/org.apache.camel.component.grpc.PingPong"));
         assertInstanceOf(IllegalArgumentException.class, exception.getCause());
     }
+
+    @Test
+    void invalidMaxRstFramesPerWindowWithValidMaxRstPeriodSeconds() {
+        FailedToCreateConsumerException exception = 
assertThrows(FailedToCreateConsumerException.class,
+                () -> consumer.receive(
+                        
"grpc:localhost:8080/org.apache.camel.component.grpc.PingPong?maxRstFramesPerWindow=-1&maxRstPeriodSeconds=5"));
+        assertInstanceOf(IllegalArgumentException.class, exception.getCause());
+    }
+
+    @Test
+    void missingMaxRstFramesPerWindowWithValidMaxRstPeriodSeconds() {
+        FailedToCreateConsumerException exception = 
assertThrows(FailedToCreateConsumerException.class,
+                () -> consumer.receive(
+                        
"grpc:localhost:8080/org.apache.camel.component.grpc.PingPong?maxRstPeriodSeconds=5"));
+        assertInstanceOf(IllegalArgumentException.class, exception.getCause());
+    }
+
+    @Test
+    void invalidMaxRstPeriodSecondsWithValidMaxRstFramesPerWindow() {
+        FailedToCreateConsumerException exception = 
assertThrows(FailedToCreateConsumerException.class,
+                () -> consumer.receive(
+                        
"grpc:localhost:8080/org.apache.camel.component.grpc.PingPong?maxRstFramesPerWindow=100&maxRstPeriodSeconds=-1"));
+        assertInstanceOf(IllegalArgumentException.class, exception.getCause());
+    }
+
+    @Test
+    void missingMaxRstPeriodSecondsWithValidMaxRstFramesPerWindow() {
+        FailedToCreateConsumerException exception = 
assertThrows(FailedToCreateConsumerException.class,
+                () -> consumer.receive(
+                        
"grpc:localhost:8080/org.apache.camel.component.grpc.PingPong?maxRstFramesPerWindow=100"));
+        assertInstanceOf(IllegalArgumentException.class, exception.getCause());
+    }
 }
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GrpcEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GrpcEndpointBuilderFactory.java
index 41542bb9b26..b0b09f429cd 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GrpcEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GrpcEndpointBuilderFactory.java
@@ -263,9 +263,111 @@ public interface GrpcEndpointBuilderFactory {
             doSetProperty("forwardOnError", forwardOnError);
             return this;
         }
+        /**
+         * Sets the initial flow control window in bytes.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 1048576
+         * Group: consumer
+         * 
+         * @param initialFlowControlWindow the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder initialFlowControlWindow(
+                int initialFlowControlWindow) {
+            doSetProperty("initialFlowControlWindow", 
initialFlowControlWindow);
+            return this;
+        }
+        /**
+         * Sets the initial flow control window in bytes.
+         * 
+         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 1048576
+         * Group: consumer
+         * 
+         * @param initialFlowControlWindow the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder initialFlowControlWindow(
+                String initialFlowControlWindow) {
+            doSetProperty("initialFlowControlWindow", 
initialFlowControlWindow);
+            return this;
+        }
+        /**
+         * Sets a custom keepalive time in milliseconds, the delay time for
+         * sending next keepalive ping. A value of Long.MAX_VALUE or a value
+         * greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will
+         * disable keepalive.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 7200000
+         * Group: consumer
+         * 
+         * @param keepAliveTime the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder keepAliveTime(long keepAliveTime) {
+            doSetProperty("keepAliveTime", keepAliveTime);
+            return this;
+        }
+        /**
+         * Sets a custom keepalive time in milliseconds, the delay time for
+         * sending next keepalive ping. A value of Long.MAX_VALUE or a value
+         * greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will
+         * disable keepalive.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; 
type.
+         * 
+         * Default: 7200000
+         * Group: consumer
+         * 
+         * @param keepAliveTime the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder keepAliveTime(String 
keepAliveTime) {
+            doSetProperty("keepAliveTime", keepAliveTime);
+            return this;
+        }
+        /**
+         * Sets a custom keepalive timeout in milliseconds, the timeout for
+         * keepalive ping requests.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 20000
+         * Group: consumer
+         * 
+         * @param keepAliveTimeout the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder keepAliveTimeout(
+                long keepAliveTimeout) {
+            doSetProperty("keepAliveTimeout", keepAliveTimeout);
+            return this;
+        }
+        /**
+         * Sets a custom keepalive timeout in milliseconds, the timeout for
+         * keepalive ping requests.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; 
type.
+         * 
+         * Default: 20000
+         * Group: consumer
+         * 
+         * @param keepAliveTimeout the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder keepAliveTimeout(
+                String keepAliveTimeout) {
+            doSetProperty("keepAliveTimeout", keepAliveTimeout);
+            return this;
+        }
         /**
          * The maximum number of concurrent calls permitted for each incoming
-         * server connection.
+         * server connection. Defaults to no limit.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -282,7 +384,7 @@ public interface GrpcEndpointBuilderFactory {
         }
         /**
          * The maximum number of concurrent calls permitted for each incoming
-         * server connection.
+         * server connection. Defaults to no limit.
          * 
          * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -297,6 +399,303 @@ public interface GrpcEndpointBuilderFactory {
             doSetProperty("maxConcurrentCallsPerConnection", 
maxConcurrentCallsPerConnection);
             return this;
         }
+        /**
+         * Sets a custom max connection age in milliseconds. Connections 
lasting
+         * longer than which will be gracefully terminated. A random jitter of
+         * /-10% will be added to the value. A value of Long.MAX_VALUE (the
+         * default) or a value greater or equal to
+         * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection
+         * age.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 9223372036854775807
+         * Group: consumer
+         * 
+         * @param maxConnectionAge the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxConnectionAge(
+                long maxConnectionAge) {
+            doSetProperty("maxConnectionAge", maxConnectionAge);
+            return this;
+        }
+        /**
+         * Sets a custom max connection age in milliseconds. Connections 
lasting
+         * longer than which will be gracefully terminated. A random jitter of
+         * /-10% will be added to the value. A value of Long.MAX_VALUE (the
+         * default) or a value greater or equal to
+         * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection
+         * age.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; 
type.
+         * 
+         * Default: 9223372036854775807
+         * Group: consumer
+         * 
+         * @param maxConnectionAge the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxConnectionAge(
+                String maxConnectionAge) {
+            doSetProperty("maxConnectionAge", maxConnectionAge);
+            return this;
+        }
+        /**
+         * Sets a custom grace time in milliseconds for the graceful connection
+         * termination. A value of Long.MAX_VALUE (the default) or a value
+         * greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE is
+         * considered infinite.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 9223372036854775807
+         * Group: consumer
+         * 
+         * @param maxConnectionAgeGrace the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxConnectionAgeGrace(
+                long maxConnectionAgeGrace) {
+            doSetProperty("maxConnectionAgeGrace", maxConnectionAgeGrace);
+            return this;
+        }
+        /**
+         * Sets a custom grace time in milliseconds for the graceful connection
+         * termination. A value of Long.MAX_VALUE (the default) or a value
+         * greater or equal to NettyServerBuilder.AS_LARGE_AS_INFINITE is
+         * considered infinite.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; 
type.
+         * 
+         * Default: 9223372036854775807
+         * Group: consumer
+         * 
+         * @param maxConnectionAgeGrace the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxConnectionAgeGrace(
+                String maxConnectionAgeGrace) {
+            doSetProperty("maxConnectionAgeGrace", maxConnectionAgeGrace);
+            return this;
+        }
+        /**
+         * Sets a custom max connection idle time in milliseconds. Connection
+         * being idle for longer than which will be gracefully terminated. A
+         * value of Long.MAX_VALUE (the default) or a value greater or equal to
+         * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection
+         * idle.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 9223372036854775807
+         * Group: consumer
+         * 
+         * @param maxConnectionIdle the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxConnectionIdle(
+                long maxConnectionIdle) {
+            doSetProperty("maxConnectionIdle", maxConnectionIdle);
+            return this;
+        }
+        /**
+         * Sets a custom max connection idle time in milliseconds. Connection
+         * being idle for longer than which will be gracefully terminated. A
+         * value of Long.MAX_VALUE (the default) or a value greater or equal to
+         * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection
+         * idle.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; 
type.
+         * 
+         * Default: 9223372036854775807
+         * Group: consumer
+         * 
+         * @param maxConnectionIdle the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxConnectionIdle(
+                String maxConnectionIdle) {
+            doSetProperty("maxConnectionIdle", maxConnectionIdle);
+            return this;
+        }
+        /**
+         * Sets the maximum size of metadata allowed to be received. The 
default
+         * is 8 KiB.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 8192
+         * Group: consumer
+         * 
+         * @param maxInboundMetadataSize the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxInboundMetadataSize(
+                int maxInboundMetadataSize) {
+            doSetProperty("maxInboundMetadataSize", maxInboundMetadataSize);
+            return this;
+        }
+        /**
+         * Sets the maximum size of metadata allowed to be received. The 
default
+         * is 8 KiB.
+         * 
+         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 8192
+         * Group: consumer
+         * 
+         * @param maxInboundMetadataSize the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxInboundMetadataSize(
+                String maxInboundMetadataSize) {
+            doSetProperty("maxInboundMetadataSize", maxInboundMetadataSize);
+            return this;
+        }
+        /**
+         * Limits the rate of incoming RST_STREAM frames per connection to
+         * maxRstFramesPerWindow per maxRstPeriodSeconds. This option MUST be
+         * used in conjunction with maxRstPeriodSeconds for it to be effective.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 0
+         * Group: consumer
+         * 
+         * @param maxRstFramesPerWindow the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxRstFramesPerWindow(
+                int maxRstFramesPerWindow) {
+            doSetProperty("maxRstFramesPerWindow", maxRstFramesPerWindow);
+            return this;
+        }
+        /**
+         * Limits the rate of incoming RST_STREAM frames per connection to
+         * maxRstFramesPerWindow per maxRstPeriodSeconds. This option MUST be
+         * used in conjunction with maxRstPeriodSeconds for it to be effective.
+         * 
+         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 0
+         * Group: consumer
+         * 
+         * @param maxRstFramesPerWindow the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxRstFramesPerWindow(
+                String maxRstFramesPerWindow) {
+            doSetProperty("maxRstFramesPerWindow", maxRstFramesPerWindow);
+            return this;
+        }
+        /**
+         * Limits the rate of incoming RST_STREAM frames per
+         * maxRstPeriodSeconds. This option MUST be used in conjunction with
+         * maxRstFramesPerWindow for it to be effective.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 0
+         * Group: consumer
+         * 
+         * @param maxRstPeriodSeconds the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxRstPeriodSeconds(
+                int maxRstPeriodSeconds) {
+            doSetProperty("maxRstPeriodSeconds", maxRstPeriodSeconds);
+            return this;
+        }
+        /**
+         * Limits the rate of incoming RST_STREAM frames per
+         * maxRstPeriodSeconds. This option MUST be used in conjunction with
+         * maxRstFramesPerWindow for it to be effective.
+         * 
+         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 0
+         * Group: consumer
+         * 
+         * @param maxRstPeriodSeconds the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder maxRstPeriodSeconds(
+                String maxRstPeriodSeconds) {
+            doSetProperty("maxRstPeriodSeconds", maxRstPeriodSeconds);
+            return this;
+        }
+        /**
+         * Sets the most aggressive keep-alive time in milliseconds that 
clients
+         * are permitted to configure. The server will try to detect clients
+         * exceeding this rate and will forcefully close the connection.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 300000
+         * Group: consumer
+         * 
+         * @param permitKeepAliveTime the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder permitKeepAliveTime(
+                long permitKeepAliveTime) {
+            doSetProperty("permitKeepAliveTime", permitKeepAliveTime);
+            return this;
+        }
+        /**
+         * Sets the most aggressive keep-alive time in milliseconds that 
clients
+         * are permitted to configure. The server will try to detect clients
+         * exceeding this rate and will forcefully close the connection.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; 
type.
+         * 
+         * Default: 300000
+         * Group: consumer
+         * 
+         * @param permitKeepAliveTime the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder permitKeepAliveTime(
+                String permitKeepAliveTime) {
+            doSetProperty("permitKeepAliveTime", permitKeepAliveTime);
+            return this;
+        }
+        /**
+         * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even
+         * if there are no outstanding RPCs on the connection.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param permitKeepAliveWithoutCalls the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder permitKeepAliveWithoutCalls(
+                boolean permitKeepAliveWithoutCalls) {
+            doSetProperty("permitKeepAliveWithoutCalls", 
permitKeepAliveWithoutCalls);
+            return this;
+        }
+        /**
+         * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even
+         * if there are no outstanding RPCs on the connection.
+         * 
+         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
+         * type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param permitKeepAliveWithoutCalls the value to set
+         * @return the dsl builder
+         */
+        default GrpcEndpointConsumerBuilder permitKeepAliveWithoutCalls(
+                String permitKeepAliveWithoutCalls) {
+            doSetProperty("permitKeepAliveWithoutCalls", 
permitKeepAliveWithoutCalls);
+            return this;
+        }
         /**
          * Lets the route to take control over stream observer. If this value 
is
          * set to true, then the response observer of gRPC call will be set 
with
diff --git 
a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/GrpcUriDsl.kt
 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/GrpcUriDsl.kt
index bd7a2faca23..0d8d54437af 100644
--- 
a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/GrpcUriDsl.kt
+++ 
b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/GrpcUriDsl.kt
@@ -170,19 +170,205 @@ public class GrpcUriDsl(
   }
 
   /**
-   * The maximum number of concurrent calls permitted for each incoming server 
connection
+   * Sets the initial flow control window in bytes.
+   */
+  public fun initialFlowControlWindow(initialFlowControlWindow: String) {
+    it.property("initialFlowControlWindow", initialFlowControlWindow)
+  }
+
+  /**
+   * Sets the initial flow control window in bytes.
+   */
+  public fun initialFlowControlWindow(initialFlowControlWindow: Int) {
+    it.property("initialFlowControlWindow", 
initialFlowControlWindow.toString())
+  }
+
+  /**
+   * Sets a custom keepalive time in milliseconds, the delay time for sending 
next keepalive ping. A
+   * value of Long.MAX_VALUE or a value greater or equal to 
NettyServerBuilder.AS_LARGE_AS_INFINITE
+   * will disable keepalive.
+   */
+  public fun keepAliveTime(keepAliveTime: String) {
+    it.property("keepAliveTime", keepAliveTime)
+  }
+
+  /**
+   * Sets a custom keepalive time in milliseconds, the delay time for sending 
next keepalive ping. A
+   * value of Long.MAX_VALUE or a value greater or equal to 
NettyServerBuilder.AS_LARGE_AS_INFINITE
+   * will disable keepalive.
+   */
+  public fun keepAliveTime(keepAliveTime: Int) {
+    it.property("keepAliveTime", keepAliveTime.toString())
+  }
+
+  /**
+   * Sets a custom keepalive timeout in milliseconds, the timeout for 
keepalive ping requests.
+   */
+  public fun keepAliveTimeout(keepAliveTimeout: String) {
+    it.property("keepAliveTimeout", keepAliveTimeout)
+  }
+
+  /**
+   * Sets a custom keepalive timeout in milliseconds, the timeout for 
keepalive ping requests.
+   */
+  public fun keepAliveTimeout(keepAliveTimeout: Int) {
+    it.property("keepAliveTimeout", keepAliveTimeout.toString())
+  }
+
+  /**
+   * The maximum number of concurrent calls permitted for each incoming server 
connection. Defaults
+   * to no limit.
    */
   public fun maxConcurrentCallsPerConnection(maxConcurrentCallsPerConnection: 
String) {
     it.property("maxConcurrentCallsPerConnection", 
maxConcurrentCallsPerConnection)
   }
 
   /**
-   * The maximum number of concurrent calls permitted for each incoming server 
connection
+   * The maximum number of concurrent calls permitted for each incoming server 
connection. Defaults
+   * to no limit.
    */
   public fun maxConcurrentCallsPerConnection(maxConcurrentCallsPerConnection: 
Int) {
     it.property("maxConcurrentCallsPerConnection", 
maxConcurrentCallsPerConnection.toString())
   }
 
+  /**
+   * Sets a custom max connection age in milliseconds. Connections lasting 
longer than which will be
+   * gracefully terminated. A random jitter of /-10% will be added to the 
value. A value of
+   * Long.MAX_VALUE (the default) or a value greater or equal to
+   * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection age.
+   */
+  public fun maxConnectionAge(maxConnectionAge: String) {
+    it.property("maxConnectionAge", maxConnectionAge)
+  }
+
+  /**
+   * Sets a custom max connection age in milliseconds. Connections lasting 
longer than which will be
+   * gracefully terminated. A random jitter of /-10% will be added to the 
value. A value of
+   * Long.MAX_VALUE (the default) or a value greater or equal to
+   * NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max connection age.
+   */
+  public fun maxConnectionAge(maxConnectionAge: Int) {
+    it.property("maxConnectionAge", maxConnectionAge.toString())
+  }
+
+  /**
+   * Sets a custom grace time in milliseconds for the graceful connection 
termination. A value of
+   * Long.MAX_VALUE (the default) or a value greater or equal to
+   * NettyServerBuilder.AS_LARGE_AS_INFINITE is considered infinite.
+   */
+  public fun maxConnectionAgeGrace(maxConnectionAgeGrace: String) {
+    it.property("maxConnectionAgeGrace", maxConnectionAgeGrace)
+  }
+
+  /**
+   * Sets a custom grace time in milliseconds for the graceful connection 
termination. A value of
+   * Long.MAX_VALUE (the default) or a value greater or equal to
+   * NettyServerBuilder.AS_LARGE_AS_INFINITE is considered infinite.
+   */
+  public fun maxConnectionAgeGrace(maxConnectionAgeGrace: Int) {
+    it.property("maxConnectionAgeGrace", maxConnectionAgeGrace.toString())
+  }
+
+  /**
+   * Sets a custom max connection idle time in milliseconds. Connection being 
idle for longer than
+   * which will be gracefully terminated. A value of Long.MAX_VALUE (the 
default) or a value greater or
+   * equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max 
connection idle
+   */
+  public fun maxConnectionIdle(maxConnectionIdle: String) {
+    it.property("maxConnectionIdle", maxConnectionIdle)
+  }
+
+  /**
+   * Sets a custom max connection idle time in milliseconds. Connection being 
idle for longer than
+   * which will be gracefully terminated. A value of Long.MAX_VALUE (the 
default) or a value greater or
+   * equal to NettyServerBuilder.AS_LARGE_AS_INFINITE will disable max 
connection idle
+   */
+  public fun maxConnectionIdle(maxConnectionIdle: Int) {
+    it.property("maxConnectionIdle", maxConnectionIdle.toString())
+  }
+
+  /**
+   * Sets the maximum size of metadata allowed to be received. The default is 
8 KiB.
+   */
+  public fun maxInboundMetadataSize(maxInboundMetadataSize: String) {
+    it.property("maxInboundMetadataSize", maxInboundMetadataSize)
+  }
+
+  /**
+   * Sets the maximum size of metadata allowed to be received. The default is 
8 KiB.
+   */
+  public fun maxInboundMetadataSize(maxInboundMetadataSize: Int) {
+    it.property("maxInboundMetadataSize", maxInboundMetadataSize.toString())
+  }
+
+  /**
+   * Limits the rate of incoming RST_STREAM frames per connection to 
maxRstFramesPerWindow per
+   * maxRstPeriodSeconds. This option MUST be used in conjunction with 
maxRstPeriodSeconds for it to be
+   * effective.
+   */
+  public fun maxRstFramesPerWindow(maxRstFramesPerWindow: String) {
+    it.property("maxRstFramesPerWindow", maxRstFramesPerWindow)
+  }
+
+  /**
+   * Limits the rate of incoming RST_STREAM frames per connection to 
maxRstFramesPerWindow per
+   * maxRstPeriodSeconds. This option MUST be used in conjunction with 
maxRstPeriodSeconds for it to be
+   * effective.
+   */
+  public fun maxRstFramesPerWindow(maxRstFramesPerWindow: Int) {
+    it.property("maxRstFramesPerWindow", maxRstFramesPerWindow.toString())
+  }
+
+  /**
+   * Limits the rate of incoming RST_STREAM frames per maxRstPeriodSeconds. 
This option MUST be used
+   * in conjunction with maxRstFramesPerWindow for it to be effective.
+   */
+  public fun maxRstPeriodSeconds(maxRstPeriodSeconds: String) {
+    it.property("maxRstPeriodSeconds", maxRstPeriodSeconds)
+  }
+
+  /**
+   * Limits the rate of incoming RST_STREAM frames per maxRstPeriodSeconds. 
This option MUST be used
+   * in conjunction with maxRstFramesPerWindow for it to be effective.
+   */
+  public fun maxRstPeriodSeconds(maxRstPeriodSeconds: Int) {
+    it.property("maxRstPeriodSeconds", maxRstPeriodSeconds.toString())
+  }
+
+  /**
+   * Sets the most aggressive keep-alive time in milliseconds that clients are 
permitted to
+   * configure. The server will try to detect clients exceeding this rate and 
will forcefully close the
+   * connection.
+   */
+  public fun permitKeepAliveTime(permitKeepAliveTime: String) {
+    it.property("permitKeepAliveTime", permitKeepAliveTime)
+  }
+
+  /**
+   * Sets the most aggressive keep-alive time in milliseconds that clients are 
permitted to
+   * configure. The server will try to detect clients exceeding this rate and 
will forcefully close the
+   * connection.
+   */
+  public fun permitKeepAliveTime(permitKeepAliveTime: Int) {
+    it.property("permitKeepAliveTime", permitKeepAliveTime.toString())
+  }
+
+  /**
+   * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even if 
there are no outstanding
+   * RPCs on the connection.
+   */
+  public fun permitKeepAliveWithoutCalls(permitKeepAliveWithoutCalls: String) {
+    it.property("permitKeepAliveWithoutCalls", permitKeepAliveWithoutCalls)
+  }
+
+  /**
+   * Sets whether to allow clients to send keep-alive HTTP/ 2 PINGs even if 
there are no outstanding
+   * RPCs on the connection.
+   */
+  public fun permitKeepAliveWithoutCalls(permitKeepAliveWithoutCalls: Boolean) 
{
+    it.property("permitKeepAliveWithoutCalls", 
permitKeepAliveWithoutCalls.toString())
+  }
+
   /**
    * Lets the route to take control over stream observer. If this value is set 
to true, then the
    * response observer of gRPC call will be set with the name 
GrpcConstants.GRPC_RESPONSE_OBSERVER in

Reply via email to