blob: feb78c3a9ca2a63f051a86a508bada0841d04b78 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.builder.component.dsl;
import javax.annotation.Generated;
import org.apache.camel.Component;
import org.apache.camel.builder.component.AbstractComponentBuilder;
import org.apache.camel.builder.component.ComponentBuilder;
import org.apache.camel.component.minio.MinioComponent;
/**
* Store and retrieve objects from Minio Storage Service using Minio SDK.
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
public interface MinioComponentBuilderFactory {
/**
* Minio (camel-minio)
* Store and retrieve objects from Minio Storage Service using Minio SDK.
*
* Category: cloud,file
* Since: 3.5
* Maven coordinates: org.apache.camel:camel-minio
*/
static MinioComponentBuilder minio() {
return new MinioComponentBuilderImpl();
}
/**
* Builder for the Minio component.
*/
interface MinioComponentBuilder extends ComponentBuilder<MinioComponent> {
/**
* Setting the autocreation of the bucket if bucket name not exist.
*
* The option is a: <code>boolean</code> type.
*
* Default: true
* Group: common
*/
default MinioComponentBuilder autoCreateBucket(boolean autoCreateBucket) {
doSetProperty("autoCreateBucket", autoCreateBucket);
return this;
}
/**
* The component configuration.
*
* The option is a:
* <code>org.apache.camel.component.minio.MinioConfiguration</code>
* type.
*
* Group: common
*/
default MinioComponentBuilder configuration(
org.apache.camel.component.minio.MinioConfiguration configuration) {
doSetProperty("configuration", configuration);
return this;
}
/**
* Set custom HTTP client for authenticated access.
*
* The option is a: <code>okhttp3.OkHttpClient</code> type.
*
* Group: common
*/
default MinioComponentBuilder customHttpClient(
okhttp3.OkHttpClient customHttpClient) {
doSetProperty("customHttpClient", customHttpClient);
return this;
}
/**
* Endpoint can be an URL, domain name, IPv4 address or IPv6 address.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: common
*/
default MinioComponentBuilder endpoint(java.lang.String endpoint) {
doSetProperty("endpoint", endpoint);
return this;
}
/**
* Reference to a Minio Client object in the registry.
*
* The option is a: <code>io.minio.MinioClient</code> type.
*
* Group: common
*/
default MinioComponentBuilder minioClient(
io.minio.MinioClient minioClient) {
doSetProperty("minioClient", minioClient);
return this;
}
/**
* Set when creating new bucket.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: common
*/
default MinioComponentBuilder objectLock(boolean objectLock) {
doSetProperty("objectLock", objectLock);
return this;
}
/**
* The policy for this queue to set in the method.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: common
*/
default MinioComponentBuilder policy(java.lang.String policy) {
doSetProperty("policy", policy);
return this;
}
/**
* TCP/IP port number. 80 and 443 are used as defaults for HTTP and
* HTTPS.
*
* The option is a: <code>java.lang.Integer</code> type.
*
* Group: common
*/
default MinioComponentBuilder proxyPort(java.lang.Integer proxyPort) {
doSetProperty("proxyPort", proxyPort);
return this;
}
/**
* The region in which Minio client needs to work. When using this
* parameter, the configuration will expect the lowercase name of the
* region (for example ap-east-1). You'll need to use the name
* Region.EU_WEST_1.id().
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: common
*/
default MinioComponentBuilder region(java.lang.String region) {
doSetProperty("region", region);
return this;
}
/**
* Flag to indicate to use secure connection to minio service or not.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: common
*/
default MinioComponentBuilder secure(boolean secure) {
doSetProperty("secure", secure);
return this;
}
/**
* Server-side encryption.
*
* The option is a: <code>io.minio.ServerSideEncryption</code> type.
*
* Group: common
*/
default MinioComponentBuilder serverSideEncryption(
io.minio.ServerSideEncryption serverSideEncryption) {
doSetProperty("serverSideEncryption", serverSideEncryption);
return this;
}
/**
* Server-side encryption for source object while copy/move objects.
*
* The option is a:
* <code>io.minio.ServerSideEncryptionCustomerKey</code> type.
*
* Group: common
*/
default MinioComponentBuilder serverSideEncryptionCustomerKey(
io.minio.ServerSideEncryptionCustomerKey serverSideEncryptionCustomerKey) {
doSetProperty("serverSideEncryptionCustomerKey", serverSideEncryptionCustomerKey);
return this;
}
/**
* If this option is true and includeBody is true, then the
* MinioObject.close() method will be called on exchange completion.
* This option is strongly related to includeBody option. In case of
* setting includeBody to true and autocloseBody to false, it will be up
* to the caller to close the MinioObject stream. Setting autocloseBody
* to true, will close the MinioObject stream automatically.
*
* The option is a: <code>boolean</code> type.
*
* Default: true
* Group: consumer
*/
default MinioComponentBuilder autoCloseBody(boolean autoCloseBody) {
doSetProperty("autoCloseBody", autoCloseBody);
return this;
}
/**
* 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.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: consumer
*/
default MinioComponentBuilder bridgeErrorHandler(
boolean bridgeErrorHandler) {
doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
return this;
}
/**
* Set this flag if you want to bypassGovernanceMode when deleting a
* particular object.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: consumer
*/
default MinioComponentBuilder bypassGovernanceMode(
boolean bypassGovernanceMode) {
doSetProperty("bypassGovernanceMode", bypassGovernanceMode);
return this;
}
/**
* Delete objects from Minio after they have been retrieved. The delete
* is only performed if the Exchange is committed. If a rollback occurs,
* the object is not deleted. If this option is false, then the same
* objects will be retrieve over and over again on the polls. Therefore
* you need to use the Idempotent Consumer EIP in the route to filter
* out duplicates. You can filter using the MinioConstants#BUCKET_NAME
* and MinioConstants#OBJECT_NAME headers, or only the
* MinioConstants#OBJECT_NAME header.
*
* The option is a: <code>boolean</code> type.
*
* Default: true
* Group: consumer
*/
default MinioComponentBuilder deleteAfterRead(boolean deleteAfterRead) {
doSetProperty("deleteAfterRead", deleteAfterRead);
return this;
}
/**
* The delimiter which is used in the ListObjectsRequest to only consume
* objects we are interested in.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder delimiter(java.lang.String delimiter) {
doSetProperty("delimiter", delimiter);
return this;
}
/**
* Source bucket name.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder destinationBucketName(
java.lang.String destinationBucketName) {
doSetProperty("destinationBucketName", destinationBucketName);
return this;
}
/**
* Source object name.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder destinationObjectName(
java.lang.String destinationObjectName) {
doSetProperty("destinationObjectName", destinationObjectName);
return this;
}
/**
* If it is true, the exchange body will be set to a stream to the
* contents of the file. If false, the headers will be set with the
* Minio object metadata, but the body will be null. This option is
* strongly related to autocloseBody option. In case of setting
* includeBody to true and autocloseBody to false, it will be up to the
* caller to close the MinioObject stream. Setting autocloseBody to
* true, will close the MinioObject stream automatically.
*
* The option is a: <code>boolean</code> type.
*
* Default: true
* Group: consumer
*/
default MinioComponentBuilder includeBody(boolean includeBody) {
doSetProperty("includeBody", includeBody);
return this;
}
/**
* The flag which is used in the ListObjectsRequest to set include
* folders.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: consumer
*/
default MinioComponentBuilder includeFolders(boolean includeFolders) {
doSetProperty("includeFolders", includeFolders);
return this;
}
/**
* The flag which is used in the ListObjectsRequest to get objects with
* user meta data.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: consumer
*/
default MinioComponentBuilder includeUserMetadata(
boolean includeUserMetadata) {
doSetProperty("includeUserMetadata", includeUserMetadata);
return this;
}
/**
* The flag which is used in the ListObjectsRequest to get objects with
* versioning.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: consumer
*/
default MinioComponentBuilder includeVersions(boolean includeVersions) {
doSetProperty("includeVersions", includeVersions);
return this;
}
/**
* Number of bytes of object data from offset.
*
* The option is a: <code>long</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder length(long length) {
doSetProperty("length", length);
return this;
}
/**
* Set match ETag parameter for get object(s).
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder matchETag(java.lang.String matchETag) {
doSetProperty("matchETag", matchETag);
return this;
}
/**
* Set the maxConnections parameter in the minio client configuration.
*
* The option is a: <code>int</code> type.
*
* Default: 60
* Group: consumer
*/
default MinioComponentBuilder maxConnections(int maxConnections) {
doSetProperty("maxConnections", maxConnections);
return this;
}
/**
* Gets the maximum number of messages as a limit to poll at each
* polling. Gets the maximum number of messages as a limit to poll at
* each polling. The default value is 10. Use 0 or a negative number to
* set it as unlimited.
*
* The option is a: <code>int</code> type.
*
* Default: 10
* Group: consumer
*/
default MinioComponentBuilder maxMessagesPerPoll(int maxMessagesPerPoll) {
doSetProperty("maxMessagesPerPoll", maxMessagesPerPoll);
return this;
}
/**
* Set modified since parameter for get object(s).
*
* The option is a: <code>java.time.ZonedDateTime</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder modifiedSince(
java.time.ZonedDateTime modifiedSince) {
doSetProperty("modifiedSince", modifiedSince);
return this;
}
/**
* Move objects from bucket to a different bucket after they have been
* retrieved. To accomplish the operation the destinationBucket option
* must be set. The copy bucket operation is only performed if the
* Exchange is committed. If a rollback occurs, the object is not moved.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: consumer
*/
default MinioComponentBuilder moveAfterRead(boolean moveAfterRead) {
doSetProperty("moveAfterRead", moveAfterRead);
return this;
}
/**
* Set not match ETag parameter for get object(s).
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder notMatchETag(java.lang.String notMatchETag) {
doSetProperty("notMatchETag", notMatchETag);
return this;
}
/**
* To get the object from the bucket with the given object name.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder objectName(java.lang.String objectName) {
doSetProperty("objectName", objectName);
return this;
}
/**
* Start byte position of object data.
*
* The option is a: <code>long</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder offset(long offset) {
doSetProperty("offset", offset);
return this;
}
/**
* Object name starts with prefix.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder prefix(java.lang.String prefix) {
doSetProperty("prefix", prefix);
return this;
}
/**
* List recursively than directory structure emulation.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: consumer
*/
default MinioComponentBuilder recursive(boolean recursive) {
doSetProperty("recursive", recursive);
return this;
}
/**
* list objects in bucket after this object name.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder startAfter(java.lang.String startAfter) {
doSetProperty("startAfter", startAfter);
return this;
}
/**
* Set un modified since parameter for get object(s).
*
* The option is a: <code>java.time.ZonedDateTime</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder unModifiedSince(
java.time.ZonedDateTime unModifiedSince) {
doSetProperty("unModifiedSince", unModifiedSince);
return this;
}
/**
* when true, version 1 of REST API is used.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: consumer
*/
default MinioComponentBuilder useVersion1(boolean useVersion1) {
doSetProperty("useVersion1", useVersion1);
return this;
}
/**
* Set specific version_ID of a object when deleting the object.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: consumer
*/
default MinioComponentBuilder versionId(java.lang.String versionId) {
doSetProperty("versionId", versionId);
return this;
}
/**
* Delete file object after the Minio file has been uploaded.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: producer
*/
default MinioComponentBuilder deleteAfterWrite(boolean deleteAfterWrite) {
doSetProperty("deleteAfterWrite", deleteAfterWrite);
return this;
}
/**
* Setting the key name for an element in the bucket through endpoint
* parameter.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: producer
*/
default MinioComponentBuilder keyName(java.lang.String keyName) {
doSetProperty("keyName", keyName);
return this;
}
/**
* 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 starting the
* producer may take a little time and prolong the total processing time
* of the processing.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: producer
*/
default MinioComponentBuilder lazyStartProducer(
boolean lazyStartProducer) {
doSetProperty("lazyStartProducer", lazyStartProducer);
return this;
}
/**
* The operation to do in case the user don't want to do only an upload.
*
* The option is a:
* <code>org.apache.camel.component.minio.MinioOperations</code> type.
*
* Group: producer
*/
default MinioComponentBuilder operation(
org.apache.camel.component.minio.MinioOperations operation) {
doSetProperty("operation", operation);
return this;
}
/**
* If we want to use a POJO request as body or not.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: producer
*/
default MinioComponentBuilder pojoRequest(boolean pojoRequest) {
doSetProperty("pojoRequest", pojoRequest);
return this;
}
/**
* The storage class to set in the request.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: producer
*/
default MinioComponentBuilder storageClass(java.lang.String storageClass) {
doSetProperty("storageClass", storageClass);
return this;
}
/**
* Whether the component should use basic property binding (Camel 2.x)
* or the newer property binding with additional capabilities.
*
* The option is a: <code>boolean</code> type.
*
* Default: false
* Group: advanced
*/
default MinioComponentBuilder basicPropertyBinding(
boolean basicPropertyBinding) {
doSetProperty("basicPropertyBinding", basicPropertyBinding);
return this;
}
/**
* Amazon AWS Secret Access Key or Minio Access Key. If not set camel
* will connect to service for anonymous access.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: security
*/
default MinioComponentBuilder accessKey(java.lang.String accessKey) {
doSetProperty("accessKey", accessKey);
return this;
}
/**
* Amazon AWS Access Key Id or Minio Secret Key. If not set camel will
* connect to service for anonymous access.
*
* The option is a: <code>java.lang.String</code> type.
*
* Group: security
*/
default MinioComponentBuilder secretKey(java.lang.String secretKey) {
doSetProperty("secretKey", secretKey);
return this;
}
}
class MinioComponentBuilderImpl
extends
AbstractComponentBuilder<MinioComponent>
implements
MinioComponentBuilder {
@Override
protected MinioComponent buildConcreteComponent() {
return new MinioComponent();
}
private org.apache.camel.component.minio.MinioConfiguration getOrCreateConfiguration(
org.apache.camel.component.minio.MinioComponent component) {
if (component.getConfiguration() == null) {
component.setConfiguration(new org.apache.camel.component.minio.MinioConfiguration());
}
return component.getConfiguration();
}
@Override
protected boolean setPropertyOnComponent(
Component component,
String name,
Object value) {
switch (name) {
case "autoCreateBucket": getOrCreateConfiguration((MinioComponent) component).setAutoCreateBucket((boolean) value); return true;
case "configuration": ((MinioComponent) component).setConfiguration((org.apache.camel.component.minio.MinioConfiguration) value); return true;
case "customHttpClient": getOrCreateConfiguration((MinioComponent) component).setCustomHttpClient((okhttp3.OkHttpClient) value); return true;
case "endpoint": getOrCreateConfiguration((MinioComponent) component).setEndpoint((java.lang.String) value); return true;
case "minioClient": getOrCreateConfiguration((MinioComponent) component).setMinioClient((io.minio.MinioClient) value); return true;
case "objectLock": getOrCreateConfiguration((MinioComponent) component).setObjectLock((boolean) value); return true;
case "policy": getOrCreateConfiguration((MinioComponent) component).setPolicy((java.lang.String) value); return true;
case "proxyPort": getOrCreateConfiguration((MinioComponent) component).setProxyPort((java.lang.Integer) value); return true;
case "region": getOrCreateConfiguration((MinioComponent) component).setRegion((java.lang.String) value); return true;
case "secure": getOrCreateConfiguration((MinioComponent) component).setSecure((boolean) value); return true;
case "serverSideEncryption": getOrCreateConfiguration((MinioComponent) component).setServerSideEncryption((io.minio.ServerSideEncryption) value); return true;
case "serverSideEncryptionCustomerKey": getOrCreateConfiguration((MinioComponent) component).setServerSideEncryptionCustomerKey((io.minio.ServerSideEncryptionCustomerKey) value); return true;
case "autoCloseBody": getOrCreateConfiguration((MinioComponent) component).setAutoCloseBody((boolean) value); return true;
case "bridgeErrorHandler": ((MinioComponent) component).setBridgeErrorHandler((boolean) value); return true;
case "bypassGovernanceMode": getOrCreateConfiguration((MinioComponent) component).setBypassGovernanceMode((boolean) value); return true;
case "deleteAfterRead": getOrCreateConfiguration((MinioComponent) component).setDeleteAfterRead((boolean) value); return true;
case "delimiter": getOrCreateConfiguration((MinioComponent) component).setDelimiter((java.lang.String) value); return true;
case "destinationBucketName": getOrCreateConfiguration((MinioComponent) component).setDestinationBucketName((java.lang.String) value); return true;
case "destinationObjectName": getOrCreateConfiguration((MinioComponent) component).setDestinationObjectName((java.lang.String) value); return true;
case "includeBody": getOrCreateConfiguration((MinioComponent) component).setIncludeBody((boolean) value); return true;
case "includeFolders": getOrCreateConfiguration((MinioComponent) component).setIncludeFolders((boolean) value); return true;
case "includeUserMetadata": getOrCreateConfiguration((MinioComponent) component).setIncludeUserMetadata((boolean) value); return true;
case "includeVersions": getOrCreateConfiguration((MinioComponent) component).setIncludeVersions((boolean) value); return true;
case "length": getOrCreateConfiguration((MinioComponent) component).setLength((long) value); return true;
case "matchETag": getOrCreateConfiguration((MinioComponent) component).setMatchETag((java.lang.String) value); return true;
case "maxConnections": getOrCreateConfiguration((MinioComponent) component).setMaxConnections((int) value); return true;
case "maxMessagesPerPoll": getOrCreateConfiguration((MinioComponent) component).setMaxMessagesPerPoll((int) value); return true;
case "modifiedSince": getOrCreateConfiguration((MinioComponent) component).setModifiedSince((java.time.ZonedDateTime) value); return true;
case "moveAfterRead": getOrCreateConfiguration((MinioComponent) component).setMoveAfterRead((boolean) value); return true;
case "notMatchETag": getOrCreateConfiguration((MinioComponent) component).setNotMatchETag((java.lang.String) value); return true;
case "objectName": getOrCreateConfiguration((MinioComponent) component).setObjectName((java.lang.String) value); return true;
case "offset": getOrCreateConfiguration((MinioComponent) component).setOffset((long) value); return true;
case "prefix": getOrCreateConfiguration((MinioComponent) component).setPrefix((java.lang.String) value); return true;
case "recursive": getOrCreateConfiguration((MinioComponent) component).setRecursive((boolean) value); return true;
case "startAfter": getOrCreateConfiguration((MinioComponent) component).setStartAfter((java.lang.String) value); return true;
case "unModifiedSince": getOrCreateConfiguration((MinioComponent) component).setUnModifiedSince((java.time.ZonedDateTime) value); return true;
case "useVersion1": getOrCreateConfiguration((MinioComponent) component).setUseVersion1((boolean) value); return true;
case "versionId": getOrCreateConfiguration((MinioComponent) component).setVersionId((java.lang.String) value); return true;
case "deleteAfterWrite": getOrCreateConfiguration((MinioComponent) component).setDeleteAfterWrite((boolean) value); return true;
case "keyName": getOrCreateConfiguration((MinioComponent) component).setKeyName((java.lang.String) value); return true;
case "lazyStartProducer": ((MinioComponent) component).setLazyStartProducer((boolean) value); return true;
case "operation": getOrCreateConfiguration((MinioComponent) component).setOperation((org.apache.camel.component.minio.MinioOperations) value); return true;
case "pojoRequest": getOrCreateConfiguration((MinioComponent) component).setPojoRequest((boolean) value); return true;
case "storageClass": getOrCreateConfiguration((MinioComponent) component).setStorageClass((java.lang.String) value); return true;
case "basicPropertyBinding": ((MinioComponent) component).setBasicPropertyBinding((boolean) value); return true;
case "accessKey": getOrCreateConfiguration((MinioComponent) component).setAccessKey((java.lang.String) value); return true;
case "secretKey": getOrCreateConfiguration((MinioComponent) component).setSecretKey((java.lang.String) value); return true;
default: return false;
}
}
}
}