You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2022/03/16 19:12:58 UTC
[camel] 09/33: CAMEL-17792: Add doc about the message headers of camel-aws2-athena
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 <nf...@talend.com>
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;