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

nfilotto pushed a commit to branch CAMEL-17792/doc-message-headers
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 4b50966916948cf34df176c584085c27722d61e0
Author: Nicolas Filotto <[email protected]>
AuthorDate: Tue Mar 15 19:05:50 2022 +0100

    CAMEL-17792: Add doc about the message headers of camel-aws2-athena
---
 .../camel/component/aws2/athena/aws2-athena.json   | 24 ++++++
 .../src/main/docs/aws2-athena-component.adoc       | 91 +---------------------
 .../component/aws2/athena/Athena2Constants.java    | 83 +++++++++++++++++++-
 .../component/aws2/athena/Athena2Endpoint.java     |  3 +-
 4 files changed, 109 insertions(+), 92 deletions(-)

diff --git 
a/components/camel-aws/camel-aws2-athena/src/generated/resources/org/apache/camel/component/aws2/athena/aws2-athena.json
 
b/components/camel-aws/camel-aws2-athena/src/generated/resources/org/apache/camel/component/aws2/athena/aws2-athena.json
index 053e4a0..65d93c4 100644
--- 
a/components/camel-aws/camel-aws2-athena/src/generated/resources/org/apache/camel/component/aws2/athena/aws2-athena.json
+++ 
b/components/camel-aws/camel-aws2-athena/src/generated/resources/org/apache/camel/component/aws2/athena/aws2-athena.json
@@ -53,6 +53,30 @@
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired 
Enabled", "group": "advanced", "label": "advanced", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Whether autowiring is 
enabled. This is used for automatic autowiring options (the option must be 
marked as autowired) by looking up in the registry to find if there is a single 
instance of matching type, which t [...]
     "clientRequestToken": { "kind": "property", "displayName": "Client Request 
Token", "group": "advanced", "label": "advanced", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.athena.Athena2Configuration", 
"configurationField": "configuration", "description": "A unique string to 
ensure issues queries are idempotent. It is unlikely you will need to set 
this." }
   },
+  "headers": {
+    "CamelAwsAthenaOperation": { "kind": "header", "displayName": "", "group": 
"all", "label": "all", "required": false, "javaType": 
"org.apache.camel.component.aws2.athena.Athena2Operations", "enum": [ 
"getQueryExecution", "getQueryResults", "listQueryExecutions", 
"startQueryExecution" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "defaultValue": "startQueryExecution", 
"description": "The operation to perform. Permitted values are 
getQueryExecution, [...]
+    "CamelAwsAthenaDatabase": { "kind": "header", "displayName": "", "group": 
"startQueryExecution", "label": "startQueryExecution", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The Athena database to use." },
+    "CamelAwsAthenaQueryExecutionId": { "kind": "header", "displayName": "", 
"group": "getQueryExecution getQueryResults startQueryExecution", "label": 
"getQueryExecution getQueryResults startQueryExecution", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The unique ID identifying the query 
execution." },
+    "CamelAwsAthenaWorkGroup": { "kind": "header", "displayName": "", "group": 
"listQueryExecutions startQueryExecution", "label": "listQueryExecutions 
startQueryExecution", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "The workgroup to use for running the query." },
+    "CamelAwsAthenaNextToken": { "kind": "header", "displayName": "", "group": 
"getQueryResults listQueryExecutions", "label": "getQueryResults 
listQueryExecutions", "required": false, "javaType": "String", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Pagination token to use in the case where the response from the 
previous request was truncated." },
+    "CamelAwsAthenaMaxResults": { "kind": "header", "displayName": "", 
"group": "getQueryResults listQueryExecutions", "label": "getQueryResults 
listQueryExecutions", "required": false, "javaType": "Integer", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Max number of results to return for the given operation (if 
supported by the Athena API endpoint).\nIf not set, will use the Athena API 
default for the given operation." },
+    "CamelAwsAthenaIncludeTrace": { "kind": "header", "displayName": "", 
"group": "startQueryExecution", "label": "startQueryExecution", "required": 
false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Include useful trace 
information at the beginning of queries as an SQL comment (prefixed with 
\"--\")." },
+    "CamelAwsAthenaOutputLocation": { "kind": "header", "displayName": "", 
"group": "getQueryExecution getQueryResults startQueryExecution", "label": 
"getQueryExecution getQueryResults startQueryExecution", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "The location in Amazon S3 where query 
results are stored, such as s3:\/\/path\/to\/query\/bucket\/.\nEnsure this 
value ends with a forward slash (' [...]
+    "CamelAwsAthenaOutputType": { "kind": "header", "displayName": "", 
"group": "getQueryResults", "label": "getQueryResults", "required": false, 
"javaType": "org.apache.camel.component.aws2.athena.Athena2OutputType", "enum": 
[ "StreamList", "SelectList", "S3Pointer" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "How 
query results should be returned.  One of\nStreamList (default - return a 
GetQueryResultsIterable that can page through  [...]
+    "CamelAwsAthenaQueryExecutionState": { "kind": "header", "displayName": 
"", "group": "getQueryExecution getQueryResults startQueryExecution", "label": 
"getQueryExecution getQueryResults startQueryExecution", "required": false, 
"javaType": "software.amazon.awssdk.services.athena.model.QueryExecutionState", 
"enum": [ "QUEUED", "RUNNING", "SUCCEEDED", "FAILED", "CANCELLED", "null" ], 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The sta [...]
+    "CamelAwsAthenaClientRequestToken": { "kind": "header", "displayName": "", 
"group": "startQueryExecution", "label": "startQueryExecution", "required": 
false, "javaType": "String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "A unique string to ensure 
issues queries are idempotent.  It is unlikely you will need to set this." },
+    "CamelAwsAthenaQueryString": { "kind": "header", "displayName": "", 
"group": "startQueryExecution", "label": "startQueryExecution", "required": 
false, "javaType": "String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The SQL query to run.  
Except for simple queries, prefer setting this as the `body` of the\nExchange 
or as this header to avoid having to deal with URL encoding issues." },
+    "CamelAwsAthenaEncryptionOption": { "kind": "header", "displayName": "", 
"group": "startQueryExecution", "label": "startQueryExecution", "required": 
false, "javaType": 
"software.amazon.awssdk.services.athena.model.EncryptionOption", "enum": [ 
"SSE_S3", "SSE_KMS", "CSE_KMS", "null" ], "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
encryption type to use when storing query results in S3." },
+    "CamelAwsAthenaKmsKey": { "kind": "header", "displayName": "", "group": 
"startQueryExecution", "label": "startQueryExecution", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "For SSE-KMS and CSE-KMS, this is the 
KMS key ARN or ID." },
+    "CamelAwsAthenaWaitTimeout": { "kind": "header", "displayName": "", 
"group": "startQueryExecution", "label": "startQueryExecution", "required": 
false, "javaType": "long", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Optional max wait time in 
millis to wait for a successful query completion.\nSee the section 'Waiting for 
Query Completion and Retrying Failed Queries' to learn more." },
+    "CamelAwsAthenaInitialDelay": { "kind": "header", "displayName": "", 
"group": "startQueryExecution", "label": "startQueryExecution", "required": 
false, "javaType": "long", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Milliseconds before the 
first poll for query execution status.\nSee the section 'Waiting for Query 
Completion and Retrying Failed Queries' to learn more." },
+    "CamelAwsAthenaDelay": { "kind": "header", "displayName": "", "group": 
"startQueryExecution", "label": "startQueryExecution", "required": false, 
"javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Milliseconds before the next poll for 
query execution status.\nSee the section 'Waiting for Query Completion and 
Retrying Failed Queries' to learn more." },
+    "CamelAwsAthenaMaxAttempts": { "kind": "header", "displayName": "", 
"group": "startQueryExecution", "label": "startQueryExecution", "required": 
false, "javaType": "int", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "Maximum number of times to 
attempt a query.  Set to 1 to disable retries.\nSee the section 'Waiting for 
Query Completion and Retrying Failed Queries' to learn more." },
+    "CamelAwsAthenaRetry": { "kind": "header", "displayName": "", "group": 
"startQueryExecution", "label": "startQueryExecution", "required": false, 
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Optional comma separated list of error 
types to retry the query for.  Use\n'retryable' to retry all retryable failure 
conditions (e.g. generic errors and resources exhausted),\n'generic' to retry 
'GENERIC_INTERNAL_ERROR' fai [...]
+    "CamelAwsAthenaResetWaitTimeoutOnRetry": { "kind": "header", 
"displayName": "", "group": "startQueryExecution", "label": 
"startQueryExecution", "required": false, "javaType": "boolean", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Reset the waitTimeout countdown in the event of a query 
retry.\nIf set to true, potential max time spent waiting for queries is equal 
to waitTimeout x maxAttempts.\nSee the section 'Waiting for Query Compl [...]
+    "CamelAwsAthenaStartQueryExecutionAttempts": { "kind": "header", 
"displayName": "", "group": "startQueryExecution", "label": 
"startQueryExecution", "required": false, "javaType": "int", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Total number of attempts made to run the query.  Will be 
greater than 1 if the query is retried." },
+    "CamelAwsAthenaStartQueryExecutionElapsedMillis": { "kind": "header", 
"displayName": "", "group": "startQueryExecution", "label": 
"startQueryExecution", "required": false, "javaType": "long", "deprecated": 
false, "deprecationNote": "", "autowired": false, "secret": false, 
"description": "Total time in millis taken in startQueryExecution (mostly 
relevant when waiting for query completion within startQueryExecution)." }
+  },
   "properties": {
     "label": { "kind": "path", "displayName": "Label", "group": "producer", 
"label": "producer", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.aws2.athena.Athena2Configuration", 
"configurationField": "configuration", "description": "Logical name" },
     "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": 
"producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "configurationClass": 
"org.apache.camel.component.aws2.athena.Athena2Configuration", 
"configurationField": "configuration", "description": "Amazon AWS Access Key." 
},
diff --git 
a/components/camel-aws/camel-aws2-athena/src/main/docs/aws2-athena-component.adoc
 
b/components/camel-aws/camel-aws2-athena/src/main/docs/aws2-athena-component.adoc
index 18e945f..96cf586 100644
--- 
a/components/camel-aws/camel-aws2-athena/src/main/docs/aws2-athena-component.adoc
+++ 
b/components/camel-aws/camel-aws2-athena/src/main/docs/aws2-athena-component.adoc
@@ -79,94 +79,9 @@ from("direct:start")
     .to("mock:result");
 
--------------------------------------------------------------------------------
 
-=== Message headers evaluated by the Athena producer
-
-Message headers listed here override the corresponding
-query parameters listed in "Query Parameters".
-
-[width="100%",cols="5%,5%,10%,75%,5%",options="header",]
-|=======================================================================
-|Operation |Header |Type |Description |Required
-
-|All |`CamelAwsAthenaOperation` |`String` |The operation to perform. Permitted 
values are getQueryExecution, getQueryResults, listQueryExecutions, 
startQueryExecution. Default is startQueryExecution. | No
-
-|startQueryExecution |`CamelAwsAthenaDatabase` |`String` |The Athena database 
to use. | No
-
-|getQueryExecution, getQueryResults |`CamelAwsAthenaQueryExecutionId` 
|`String` |The unique ID identifying the query execution. | No
-
-|listQueryExecutions, startQueryExecution |`CamelAwsAthenaWorkGroup` |`String` 
|The workgroup to use for running the query. | No
-
-|getQueryResults, listQueryExecutions |`CamelAwsAthenaNextToken` |`String` 
|Pagination token to use in the case where the response from the previous 
request was truncated. | No
-
-|getQueryResults, listQueryExecutions |`CamelAwsAthenaMaxResults` |`Integer` 
|Max number of results to return for the given operation (if supported by the 
Athena API endpoint).
-If not set, will use the Athena API default for the given operation. | No
-
-|startQueryExecution |`CamelAwsAthenaIncludeTrace` |`boolean` |Include useful 
trace information at the beginning of queries as an SQL comment (prefixed with 
"--"). | No
-
-|startQueryExecution |`CamelAwsAthenaOutputLocation` |`String` |The location 
in Amazon S3 where query results are stored, such as s3://path/to/query/bucket/.
-Ensure this value ends with a forward slash ('/'). | No
-
-|getQueryResults |`CamelAwsAthenaOutputType` |`Athena2OutputType` |How query 
results should be returned.  One of
-StreamList (default - return a GetQueryResultsIterable that can page through 
all results),
-SelectList (returns at most 1,000 rows at a time, plus a NextToken value as a 
header than can be used for manual pagination of results),
-S3Pointer (return an S3 path pointing to the results). | No
-
-|startQueryExecution |`CamelAwsAthenaClientRequestToken` |`String` |A unique 
string to ensure issues queries are idempotent.  It is unlikely you will need 
to set this. | No
-
-|startQueryExecution |`CamelAwsAthenaQueryString` |`String` |The SQL query to 
run.  Except for simple queries, prefer setting this as the `body` of the
-Exchange or as this header to avoid having to deal with URL encoding issues. | 
No
-
-|startQueryExecution |`CamelAwsAthenaEncryptionOption` |`String` |The 
encryption type to use when storing query results in S3.  One of SSE_S3, 
SSE_KMS, or CSE_KMS. | No
-
-|startQueryExecution |`CamelAwsAthenaKmsKey` |`String` |For SSE-KMS and 
CSE-KMS, this is the KMS key ARN or ID. | No
-
-|startQueryExecution |`CamelAwsAthenaWaitTimeout` |`long` |Optional max wait 
time in millis to wait for a successful query completion.
-See the section 'Waiting for Query Completion and Retrying Failed Queries' to 
learn more. | No
-
-|startQueryExecution |`CamelAwsAthenaInitialDelay` |`long` |Milliseconds 
before the first poll for query execution status.
-See the section 'Waiting for Query Completion and Retrying Failed Queries' to 
learn more. | No
-
-|startQueryExecution |`CamelAwsAthenaDelay` |`long` |Milliseconds before the 
next poll for query execution status.
-See the section 'Waiting for Query Completion and Retrying Failed Queries' to 
learn more. | No
-
-|startQueryExecution |`CamelAwsAthenaMaxAttempts` |`int` |Maximum number of 
times to attempt a query.  Set to 1 to disable retries.
-See the section 'Waiting for Query Completion and Retrying Failed Queries' to 
learn more. | No
-
-|startQueryExecution |`CamelAwsAthenaRetry` |`String` |Optional comma 
separated list of error types to retry the query for.  Use
-'retryable' to retry all retryable failure conditions (e.g. generic errors and 
resources exhausted),
-'generic' to retry 'GENERIC_INTERNAL_ERROR' failures,
-'exhausted' to retry queries that have exhausted resource limits,
-'always' to always retry regardless of failure condition, or
-'never' or null to never retry (default).
-See the section 'Waiting for Query Completion and Retrying Failed Queries' to 
learn more. | No
-
-|startQueryExecution |`CamelAwsAthenaResetWaitTimeoutOnRetry` |`boolean` 
|Reset the waitTimeout countdown in the event of a query retry.
-If set to true, potential max time spent waiting for queries is equal to 
waitTimeout x maxAttempts.
-See the section 'Waiting for Query Completion and Retrying Failed Queries' to 
learn more. | No
-
-|=======================================================================
-
-=== Message headers set by the Athena producer
-
-[width="100%",cols="5%,5%,10%,80%",options="header",]
-|=======================================================================
-|Operation |Header |Type |Description
-
-|getQueryExecution, getQueryResults, startQueryExecution 
|`CamelAwsAthenaQueryExecutionId` |`String` |The unique ID identifying the 
query execution.
-
-|getQueryExecution, getQueryResults, startQueryExecution 
|`CamelAwsAthenaQueryExecutionState` 
|`software.amazon.awssdk.services.athena.model.QueryExecutionState` |The state 
of the query execution.  One of `QUEUED`, `RUNNING`, `SUCCEEDED`, `FAILED`, 
`CANCELLED`.
-
-|getQueryExecution, getQueryResults, startQueryExecution 
|`CamelAwsAthenaOutputLocation` |`String` |The location in Amazon S3 where 
query results are stored, such as s3://path/to/query/bucket/.
-
-|getQueryExecution, getQueryResults, startQueryExecution 
|`CamelAwsAthenaQueryExecutionId` |`String` |The unique ID identifying the 
query execution.
-
-|getQueryResults, listQueryExecutions |`CamelAwsAthenaNextToken` |`String` 
|Pagination token to use in the case where the response from the previous 
request was truncated.
-
-|startQueryExecution |`CamelAwsAthenaStartQueryExecutionAttempts` |`int` 
|Total number of attempts made to run the query.  Will be greater than 1 if the 
query is retried.
-
-|startQueryExecution |`CamelAwsAthenaStartQueryExecutionElapsedMillis` |`long` 
|Total time in millis taken in startQueryExecution (mostly relevant when 
waiting for query completion within startQueryExecution).
-
-|=======================================================================
+// component headers: START
+include::partial$component-endpoint-headers.adoc[]
+// component headers: END
 
 === Static credentials vs Default Credential Provider
 
diff --git 
a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2Constants.java
 
b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2Constants.java
index 7a73470..e051097 100644
--- 
a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2Constants.java
+++ 
b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2Constants.java
@@ -16,37 +16,116 @@
  */
 package org.apache.camel.component.aws2.athena;
 
+import org.apache.camel.spi.Metadata;
+
 /**
  * Constants used in Camel AWS Athena module SDK v2.
  */
 public interface Athena2Constants {
 
     // common
+    @Metadata(label = "all",
+              description = "The operation to perform. Permitted values are 
getQueryExecution, getQueryResults, listQueryExecutions, startQueryExecution.",
+              javaType = 
"org.apache.camel.component.aws2.athena.Athena2Operations", defaultValue = 
"startQueryExecution")
     String OPERATION = "CamelAwsAthenaOperation";
+    @Metadata(label = "startQueryExecution", description = "The Athena 
database to use.", javaType = "String")
     String DATABASE = "CamelAwsAthenaDatabase";
+    @Metadata(label = "getQueryExecution getQueryResults startQueryExecution",
+              description = "The unique ID identifying the query execution.", 
javaType = "String")
     String QUERY_EXECUTION_ID = "CamelAwsAthenaQueryExecutionId";
+    @Metadata(label = "listQueryExecutions startQueryExecution", description = 
"The workgroup to use for running the query.",
+              javaType = "String")
     String WORK_GROUP = "CamelAwsAthenaWorkGroup";
+    @Metadata(label = "getQueryResults listQueryExecutions",
+              description = "Pagination token to use in the case where the 
response from the previous request was truncated.",
+              javaType = "String")
     String NEXT_TOKEN = "CamelAwsAthenaNextToken";
+    @Metadata(label = "getQueryResults listQueryExecutions",
+              description = "Max number of results to return for the given 
operation (if supported by the Athena API endpoint).\n"
+                            +
+                            "If not set, will use the Athena API default for 
the given operation.",
+              javaType = "Integer")
     String MAX_RESULTS = "CamelAwsAthenaMaxResults";
+    @Metadata(label = "startQueryExecution",
+              description = "Include useful trace information at the beginning 
of queries as an SQL comment (prefixed with \"--\").",
+              javaType = "boolean")
     String INCLUDE_TRACE = "CamelAwsAthenaIncludeTrace";
+    @Metadata(label = "getQueryExecution getQueryResults startQueryExecution",
+              description = "The location in Amazon S3 where query results are 
stored, such as s3://path/to/query/bucket/.\n" +
+                            "Ensure this value ends with a forward slash 
('/').",
+              javaType = "String")
     String OUTPUT_LOCATION = "CamelAwsAthenaOutputLocation";
+    @Metadata(label = "getQueryResults", description = "How query results 
should be returned.  One of\n" +
+                                                       "StreamList (default - 
return a GetQueryResultsIterable that can page through all results),\n"
+                                                       +
+                                                       "SelectList (returns at 
most 1,000 rows at a time, plus a NextToken value as a header than can be used 
for manual pagination of results),\n"
+                                                       +
+                                                       "S3Pointer (return an 
S3 path pointing to the results).",
+              javaType = 
"org.apache.camel.component.aws2.athena.Athena2OutputType")
     String OUTPUT_TYPE = "CamelAwsAthenaOutputType";
+    @Metadata(label = "getQueryExecution getQueryResults startQueryExecution",
+              description = "The state of the query execution.",
+              javaType = 
"software.amazon.awssdk.services.athena.model.QueryExecutionState")
     String QUERY_EXECUTION_STATE = "CamelAwsAthenaQueryExecutionState"; // 
read only
 
     // startQueryExecution
+    @Metadata(label = "startQueryExecution",
+              description = "A unique string to ensure issues queries are 
idempotent.  It is unlikely you will need to set this.",
+              javaType = "String")
     String CLIENT_REQUEST_TOKEN = "CamelAwsAthenaClientRequestToken";
+    @Metadata(label = "startQueryExecution",
+              description = "The SQL query to run.  Except for simple queries, 
prefer setting this as the `body` of the\n" +
+                            "Exchange or as this header to avoid having to 
deal with URL encoding issues.",
+              javaType = "String")
     String QUERY_STRING = "CamelAwsAthenaQueryString";
+    @Metadata(label = "startQueryExecution", description = "The encryption 
type to use when storing query results in S3.",
+              javaType = 
"software.amazon.awssdk.services.athena.model.EncryptionOption")
     String ENCRYPTION_OPTION = "CamelAwsAthenaEncryptionOption";
+    @Metadata(label = "startQueryExecution", description = "For SSE-KMS and 
CSE-KMS, this is the KMS key ARN or ID.",
+              javaType = "String")
     String KMS_KEY = "CamelAwsAthenaKmsKey";
-
+    @Metadata(label = "startQueryExecution",
+              description = "Optional max wait time in millis to wait for a 
successful query completion.\n" +
+                            "See the section 'Waiting for Query Completion and 
Retrying Failed Queries' to learn more.",
+              javaType = "long")
     String WAIT_TIMEOUT = "CamelAwsAthenaWaitTimeout";
+    @Metadata(label = "startQueryExecution", description = "Milliseconds 
before the first poll for query execution status.\n" +
+                                                           "See the section 
'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+              javaType = "long")
     String INITIAL_DELAY = "CamelAwsAthenaInitialDelay";
+    @Metadata(label = "startQueryExecution", description = "Milliseconds 
before the next poll for query execution status.\n" +
+                                                           "See the section 
'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+              javaType = "long")
     String DELAY = "CamelAwsAthenaDelay";
-
+    @Metadata(label = "startQueryExecution",
+              description = "Maximum number of times to attempt a query.  Set 
to 1 to disable retries.\n" +
+                            "See the section 'Waiting for Query Completion and 
Retrying Failed Queries' to learn more.",
+              javaType = "int")
     String MAX_ATTEMPTS = "CamelAwsAthenaMaxAttempts";
+    @Metadata(label = "startQueryExecution",
+              description = "Optional comma separated list of error types to 
retry the query for.  Use\n" +
+                            "'retryable' to retry all retryable failure 
conditions (e.g. generic errors and resources exhausted),\n"
+                            +
+                            "'generic' to retry 'GENERIC_INTERNAL_ERROR' 
failures,\n" +
+                            "'exhausted' to retry queries that have exhausted 
resource limits,\n" +
+                            "'always' to always retry regardless of failure 
condition, or\n" +
+                            "'never' or null to never retry (default).\n" +
+                            "See the section 'Waiting for Query Completion and 
Retrying Failed Queries' to learn more.",
+              javaType = "String")
     String RETRY = "CamelAwsAthenaRetry";
+    @Metadata(label = "startQueryExecution", description = "Reset the 
waitTimeout countdown in the event of a query retry.\n" +
+                                                           "If set to true, 
potential max time spent waiting for queries is equal to waitTimeout x 
maxAttempts.\n"
+                                                           +
+                                                           "See the section 
'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+              javaType = "boolean")
     String RESET_WAIT_TIMEOUT_ON_RETRY = 
"CamelAwsAthenaResetWaitTimeoutOnRetry";
+    @Metadata(label = "startQueryExecution",
+              description = "Total number of attempts made to run the query.  
Will be greater than 1 if the query is retried.",
+              javaType = "int")
     String START_QUERY_EXECUTION_ATTEMPTS = 
"CamelAwsAthenaStartQueryExecutionAttempts"; // read only
+    @Metadata(label = "startQueryExecution",
+              description = "Total time in millis taken in startQueryExecution 
(mostly relevant when waiting for query completion within 
startQueryExecution).",
+              javaType = "long")
     String START_QUERY_EXECUTION_ELAPSED_MILLIS = 
"CamelAwsAthenaStartQueryExecutionElapsedMillis"; // read only
 
 }
diff --git 
a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2Endpoint.java
 
b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2Endpoint.java
index f74d1e8..797fb34 100644
--- 
a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2Endpoint.java
+++ 
b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2Endpoint.java
@@ -32,8 +32,7 @@ import software.amazon.awssdk.services.athena.AthenaClient;
  * Access AWS Athena service using AWS SDK version 2.x.
  */
 @UriEndpoint(firstVersion = "3.4.0", scheme = "aws2-athena", title = "AWS 
Athena", syntax = "aws2-athena:label",
-             producerOnly = true, category = {
-                     Category.CLOUD, Category.DATABASE })
+             producerOnly = true, category = { Category.CLOUD, 
Category.DATABASE }, headersClass = Athena2Constants.class)
 public class Athena2Endpoint extends DefaultEndpoint {
 
     private AthenaClient athenaClient;

Reply via email to