This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 2d29747f70a097b916d26382430c9f0b9cc7becb Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Tue Jun 15 21:38:51 2021 +0200 Regen docs for huawei-iam --- .../org/apache/camel/catalog/components.properties | 1 + .../camel/catalog/components/hwcloud-iam.json | 48 +++++++ .../org/apache/camel/catalog/docs.properties | 1 + .../camel/catalog/docs/hwcloud-iam-component.adoc | 146 +++++++++++++++++++++ .../org/apache/camel/main/components.properties | 1 + .../camel/maven/packaging/PrepareCatalogMojo.java | 3 +- 6 files changed, 199 insertions(+), 1 deletion(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties index 16498aa..1604e0a 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties @@ -146,6 +146,7 @@ hdfs http https hwcloud-functiongraph +hwcloud-iam hwcloud-smn iec60870-client iec60870-server diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hwcloud-iam.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hwcloud-iam.json new file mode 100644 index 0000000..e599f7a --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/hwcloud-iam.json @@ -0,0 +1,48 @@ +{ + "component": { + "kind": "component", + "name": "hwcloud-iam", + "title": "IAM", + "description": "To securely manage users on Huawei Cloud", + "deprecated": false, + "firstVersion": "3.11.0", + "label": "cloud", + "javaType": "org.apache.camel.component.huaweicloud.iam.IAMComponent", + "supportLevel": "Preview", + "groupId": "org.apache.camel", + "artifactId": "camel-huaweicloud-iam", + "version": "3.11.0-SNAPSHOT", + "scheme": "hwcloud-iam", + "extendsScheme": "", + "syntax": "hwcloud-iam:operation", + "async": false, + "api": false, + "consumerOnly": false, + "producerOnly": false, + "lenientProperties": false + }, + "componentProperties": { + "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "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 occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a me [...] + "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "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 producer may otherwise fail during star [...] + "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 [...] + }, + "properties": { + "operation": { "kind": "path", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Operation to be performed" }, + "authenticationKey": { "kind": "parameter", "displayName": "API authentication key (AK)", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "Authentication key for the cloud user" }, + "endpoint": { "kind": "parameter", "displayName": "Service endpoint", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "IAM endpoint url. Carries higher precedence than region parameter based client initialization" }, + "groupId": { "kind": "parameter", "displayName": "Group ID", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "Group ID to perform operation with" }, + "ignoreSslVerification": { "kind": "parameter", "displayName": "SSL Verification Ignored", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "Ignore SSL verification" }, + "proxyHost": { "kind": "parameter", "displayName": "Proxy server host", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Proxy server ip\/hostname" }, + "proxyPassword": { "kind": "parameter", "displayName": "Proxy password", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "Proxy authentication password" }, + "proxyPort": { "kind": "parameter", "displayName": "Proxy server port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Proxy server port" }, + "proxyUser": { "kind": "parameter", "displayName": "Proxy user", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "Proxy authentication user" }, + "region": { "kind": "parameter", "displayName": "Service region", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "IAM service region. This is lower precedence than endpoint based configuration" }, + "secretKey": { "kind": "parameter", "displayName": "API secret key (SK)", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "Secret key for the cloud user" }, + "serviceKeys": { "kind": "parameter", "displayName": "Service Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.huaweicloud.iam.models.ServiceKeys", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "Configuration object for cloud service authentication" }, + "userId": { "kind": "parameter", "displayName": "User ID", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "User ID to perform operation with" }, + "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "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 occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...] + "exceptionHandler": { "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 default the con [...] + "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, + "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "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 producer may otherwise fail during sta [...] + } +} diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties index 7419baf..ae70635 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties @@ -209,6 +209,7 @@ hl7-dataformat hl7terser-language http-component hwcloud-functiongraph-component +hwcloud-iam-component hwcloud-smn-component hwcloud-summary hystrix diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-iam-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-iam-component.adoc new file mode 100644 index 0000000..21024a0 --- /dev/null +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/hwcloud-iam-component.adoc @@ -0,0 +1,146 @@ +[[hwcloud-iam-component]] += IAM Component +:docTitle: IAM +:artifactId: camel-huaweicloud-iam +:description: To securely manage users on Huawei Cloud +:since: 3.11 +:supportLevel: Preview +:component-header: Both producer and consumer are supported +include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/hwcloud-iam.adoc[opts=optional] +//Manually maintained attributes +:group: Huawei Cloud + +*Since Camel {since}* + +*{component-header}* + +Huawei Cloud Identity and Access Management (IAM) component allows you to integrate with https://www.huaweicloud.com/intl/en-us/product/iam.html[IAM] provided by Huawei Cloud. + +Maven users will need to add the following dependency to their `pom.xml` for this component: + +[source,xml] +---- +<dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-huaweicloud-iam</artifactId> + <version>x.x.x</version> + <!-- use the same version as your Camel core version --> +</dependency> +---- + +== URI Format + +[source,text] +---- +hwcloud-iam:operation[?options] +---- + +== URI Options + +// component options: START +The IAM component supports 3 options, which are listed below. + + + +[width="100%",cols="2,5,^1,2",options="header"] +|=== +| Name | Description | Default | Type +| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean +| *lazyStartProducer* (producer) | 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 producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] +| *autowiredEnabled* (advanced) | 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 then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean +|=== +// component options: END + +// endpoint options: START +The IAM endpoint is configured using URI syntax: + +---- +hwcloud-iam:operation +---- + +with the following path and query parameters: + +=== Path Parameters (1 parameters): + + +[width="100%",cols="2,5,^1,2",options="header"] +|=== +| Name | Description | Default | Type +| *operation* | *Required* Operation to be performed | | String +|=== + + +=== Query Parameters (16 parameters): + + +[width="100%",cols="2,5,^1,2",options="header"] +|=== +| Name | Description | Default | Type +| *authenticationKey* (common) | *Required* Authentication key for the cloud user | | String +| *endpoint* (common) | IAM endpoint url. Carries higher precedence than region parameter based client initialization | | String +| *groupId* (common) | Group ID to perform operation with | | String +| *ignoreSslVerification* (common) | Ignore SSL verification | false | boolean +| *proxyHost* (common) | Proxy server ip/hostname | | String +| *proxyPassword* (common) | Proxy authentication password | | String +| *proxyPort* (common) | Proxy server port | | int +| *proxyUser* (common) | Proxy authentication user | | String +| *region* (common) | *Required* IAM service region. This is lower precedence than endpoint based configuration | | String +| *secretKey* (common) | *Required* Secret key for the cloud user | | String +| *serviceKeys* (common) | Configuration object for cloud service authentication | | ServiceKeys +| *userId* (common) | User ID to perform operation with | | String +| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean +| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | | ExceptionHandler +| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut | | ExchangePattern +| *lazyStartProducer* (producer) | 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 producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] +|=== +// endpoint options: END + + +== Usage + +=== Message properties evaluated by the IAM producer + +[width="100%",cols="10%,10%,80%",options="header",] +|======================================================================= +|Header |Type |Description + +|`CamelHwCloudIamOperation` |`String` | Name of operation to invoke + +|`CamelHwCloudIamUserId` |`String` | User ID to invoke operation on + +|`CamelHwCloudIamGroupId` |`String` | Group ID to invoke operation on + +|======================================================================= + +If any of the above properties are set, they will override their corresponding query parameter. + +== List of Supported IAM Operations + +- listUsers +- getUsers +- listGroups +- getGroupUsers + +== Using ServiceKey Configuration Bean + +Authentication key and secret keys are required to authenticate against cloud IAM service. You can avoid having them being exposed +and scattered over in your endpoint uri by wrapping them inside a bean of class `org.apache.camel.component.huaweicloud.iam.models.ServiceKeys`. +Add it to the registry and let Camel look it up by referring the object via endpoint query parameter `serviceKeys`. + +Check the following code snippets: + +[source,xml] +---- +<bean id="myServiceKeyConfig" class="org.apache.camel.component.huaweicloud.iam.models.ServiceKeys"> + <property name="authenticationKey" value="your_authentication_key" /> + <property name="secretKey" value="your_secret_key" /> +</bean> +---- +[source,java] +---- +from("direct:triggerRoute") + .setProperty(IAMPropeties.OPERATION, constant("listUsers")) + .setProperty(IAMPropeties.USER_ID ,constant("your_user_id")) + .setProperty(IAMPropeties.GROUP_ID, constant("your_group_id)) + .to("hwcloud-iam:listUsers?region=cn-north-4&serviceKeys=#myServiceKeyConfig") +---- diff --git a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties index 16498aa..1604e0a 100644 --- a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties +++ b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties @@ -146,6 +146,7 @@ hdfs http https hwcloud-functiongraph +hwcloud-iam hwcloud-smn iec60870-client iec60870-server diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java index 5eae4d5..7091236 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java @@ -1208,7 +1208,8 @@ public class PrepareCatalogMojo extends AbstractMojo { dir.resolve("camel-vertx-kafka").resolve("camel-vertx-kafka-component"), dir.resolve("camel-vertx-websocket")); case "camel-huawei": - return Arrays.asList(dir.resolve("camel-huaweicloud-functiongraph"), dir.resolve("camel-huaweicloud-smn"), dir.resolve("camel-huaweicloud-iam")); + return Arrays.asList(dir.resolve("camel-huaweicloud-functiongraph"), dir.resolve("camel-huaweicloud-smn"), + dir.resolve("camel-huaweicloud-iam")); default: return Collections.singletonList(dir); }