blob: 174f391bf0c41ab2b507bb59bdf0039e623aa0d2 [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.component.azure.storage.blob.springboot;
import java.time.Duration;
import java.time.OffsetDateTime;
import javax.annotation.Generated;
import com.azure.core.util.Context;
import com.azure.storage.blob.BlobServiceClient;
import com.azure.storage.blob.models.BlockListType;
import com.azure.storage.common.StorageSharedKeyCredential;
import org.apache.camel.component.azure.storage.blob.BlobComponent;
import org.apache.camel.component.azure.storage.blob.BlobConfiguration;
import org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition;
import org.apache.camel.component.azure.storage.blob.BlobType;
import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Store and retrieve blobs from Azure Storage Blob Service using SDK v12.
*
* Generated by camel-package-maven-plugin - do not edit this file!
*/
@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
@ConfigurationProperties(prefix = "camel.component.azure-storage-blob")
public class BlobComponentConfiguration
extends
ComponentConfigurationPropertiesCommon {
/**
* Whether to enable auto configuration of the azure-storage-blob component.
* This is enabled by default.
*/
private Boolean enabled;
/**
* The blob name, to consume specific blob from a container. However on
* producer, is only required for the operations on the blob level
*/
private String blobName;
/**
* Set the blob offset for the upload or download operations, default is 0
*/
private Long blobOffset = 0L;
/**
* The blob type in order to initiate the appropriate settings for each blob
* type
*/
private BlobType blobType = BlobType.blockblob;
/**
* Close the stream after read or keep it open, default is true
*/
private Boolean closeStreamAfterRead = true;
/**
* The component configurations. The option is a
* org.apache.camel.component.azure.storage.blob.BlobConfiguration type.
*/
private BlobConfiguration configuration;
/**
* StorageSharedKeyCredential can be injected to create the azure client,
* this holds the important authentication information. The option is a
* com.azure.storage.common.StorageSharedKeyCredential type.
*/
private StorageSharedKeyCredential credentials;
/**
* How many bytes to include in the range. Must be greater than or equal to
* 0 if specified.
*/
private Long dataCount;
/**
* The file directory where the downloaded blobs will be saved to, this can
* be used in both, producer and consumer
*/
private String fileDir;
/**
* Specifies the maximum number of blobs to return, including all BlobPrefix
* elements. If the request does not specify maxResultsPerPage or specifies
* a value greater than 5,000, the server will return up to 5,000 items.
*/
private Integer maxResultsPerPage;
/**
* Specifies the maximum number of additional HTTP Get requests that will be
* made while reading the data from a response body.
*/
private Integer maxRetryRequests = 0;
/**
* Filters the results to return only blobs whose names begin with the
* specified prefix. May be null to return all blobs.
*/
private String prefix;
/**
* Filters the results to return only blobs whose names match the specified
* regular expression. May be null to return all if both prefix and regex
* are set, regex takes the priority and prefix is ignored.
*/
private String regex;
/**
* Client to a storage account. This client does not hold any state about a
* particular storage account but is instead a convenient way of sending off
* appropriate requests to the resource on the service. It may also be used
* to construct URLs to blobs and containers. This client contains
* operations on a service account. Operations on a container are available
* on BlobContainerClient through
* BlobServiceClient#getBlobContainerClient(String), and operations on a
* blob are available on BlobClient through
* BlobContainerClient#getBlobClient(String). The option is a
* com.azure.storage.blob.BlobServiceClient type.
*/
private BlobServiceClient serviceClient;
/**
* An optional timeout value beyond which a RuntimeException will be raised.
* The option is a java.time.Duration type.
*/
private Duration timeout;
/**
* 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.
*/
private Boolean bridgeErrorHandler = false;
/**
* A user-controlled value that you can use to track requests. The value of
* the sequence number must be between 0 and 263 - 1.The default value is 0.
*/
private Long blobSequenceNumber = 0L;
/**
* Specifies which type of blocks to return.
*/
private BlockListType blockListType = BlockListType.COMMITTED;
/**
* When using getChangeFeed producer operation, this gives additional
* context that is passed through the Http pipeline during the service call.
* The option is a com.azure.core.util.Context type.
*/
private Context changeFeedContext;
/**
* When using getChangeFeed producer operation, this filters the results to
* return events approximately before the end time. Note: A few events
* belonging to the next hour can also be returned. A few events belonging
* to this hour can be missing; to ensure all events from the hour are
* returned, round the end time up by an hour. The option is a
* java.time.OffsetDateTime type.
*/
private OffsetDateTime changeFeedEndTime;
/**
* When using getChangeFeed producer operation, this filters the results to
* return events approximately after the start time. Note: A few events
* belonging to the previous hour can also be returned. A few events
* belonging to this hour can be missing; to ensure all events from the hour
* are returned, round the start time down by an hour. The option is a
* java.time.OffsetDateTime type.
*/
private OffsetDateTime changeFeedStartTime;
/**
* Close the stream after write or keep it open, default is true
*/
private Boolean closeStreamAfterWrite = true;
/**
* When is set to true, the staged blocks will not be committed directly.
*/
private Boolean commitBlockListLater = true;
/**
* When is set to true, the append blocks will be created when committing
* append blocks.
*/
private Boolean createAppendBlob = true;
/**
* When is set to true, the page blob will be created when uploading page
* blob.
*/
private Boolean createPageBlob = true;
/**
* Override the default expiration (millis) of URL download link.
*/
private Long downloadLinkExpiration;
/**
* 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.
*/
private Boolean lazyStartProducer = false;
/**
* The blob operation that can be used with this component on the producer
*/
private BlobOperationsDefinition operation = BlobOperationsDefinition.listBlobContainers;
/**
* Specifies the maximum size for the page blob, up to 8 TB. The page blob
* size must be aligned to a 512-byte boundary.
*/
private Long pageBlobSize = 512L;
/**
* 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.
*/
private Boolean autowiredEnabled = true;
/**
* Access key for the associated azure account name to be used for
* authentication with azure blob services
*/
private String accessKey;
public String getBlobName() {
return blobName;
}
public void setBlobName(String blobName) {
this.blobName = blobName;
}
public Long getBlobOffset() {
return blobOffset;
}
public void setBlobOffset(Long blobOffset) {
this.blobOffset = blobOffset;
}
public BlobType getBlobType() {
return blobType;
}
public void setBlobType(BlobType blobType) {
this.blobType = blobType;
}
public Boolean getCloseStreamAfterRead() {
return closeStreamAfterRead;
}
public void setCloseStreamAfterRead(Boolean closeStreamAfterRead) {
this.closeStreamAfterRead = closeStreamAfterRead;
}
public BlobConfiguration getConfiguration() {
return configuration;
}
public void setConfiguration(BlobConfiguration configuration) {
this.configuration = configuration;
}
public StorageSharedKeyCredential getCredentials() {
return credentials;
}
public void setCredentials(StorageSharedKeyCredential credentials) {
this.credentials = credentials;
}
public Long getDataCount() {
return dataCount;
}
public void setDataCount(Long dataCount) {
this.dataCount = dataCount;
}
public String getFileDir() {
return fileDir;
}
public void setFileDir(String fileDir) {
this.fileDir = fileDir;
}
public Integer getMaxResultsPerPage() {
return maxResultsPerPage;
}
public void setMaxResultsPerPage(Integer maxResultsPerPage) {
this.maxResultsPerPage = maxResultsPerPage;
}
public Integer getMaxRetryRequests() {
return maxRetryRequests;
}
public void setMaxRetryRequests(Integer maxRetryRequests) {
this.maxRetryRequests = maxRetryRequests;
}
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public String getRegex() {
return regex;
}
public void setRegex(String regex) {
this.regex = regex;
}
public BlobServiceClient getServiceClient() {
return serviceClient;
}
public void setServiceClient(BlobServiceClient serviceClient) {
this.serviceClient = serviceClient;
}
public Duration getTimeout() {
return timeout;
}
public void setTimeout(Duration timeout) {
this.timeout = timeout;
}
public Boolean getBridgeErrorHandler() {
return bridgeErrorHandler;
}
public void setBridgeErrorHandler(Boolean bridgeErrorHandler) {
this.bridgeErrorHandler = bridgeErrorHandler;
}
public Long getBlobSequenceNumber() {
return blobSequenceNumber;
}
public void setBlobSequenceNumber(Long blobSequenceNumber) {
this.blobSequenceNumber = blobSequenceNumber;
}
public BlockListType getBlockListType() {
return blockListType;
}
public void setBlockListType(BlockListType blockListType) {
this.blockListType = blockListType;
}
public Context getChangeFeedContext() {
return changeFeedContext;
}
public void setChangeFeedContext(Context changeFeedContext) {
this.changeFeedContext = changeFeedContext;
}
public OffsetDateTime getChangeFeedEndTime() {
return changeFeedEndTime;
}
public void setChangeFeedEndTime(OffsetDateTime changeFeedEndTime) {
this.changeFeedEndTime = changeFeedEndTime;
}
public OffsetDateTime getChangeFeedStartTime() {
return changeFeedStartTime;
}
public void setChangeFeedStartTime(OffsetDateTime changeFeedStartTime) {
this.changeFeedStartTime = changeFeedStartTime;
}
public Boolean getCloseStreamAfterWrite() {
return closeStreamAfterWrite;
}
public void setCloseStreamAfterWrite(Boolean closeStreamAfterWrite) {
this.closeStreamAfterWrite = closeStreamAfterWrite;
}
public Boolean getCommitBlockListLater() {
return commitBlockListLater;
}
public void setCommitBlockListLater(Boolean commitBlockListLater) {
this.commitBlockListLater = commitBlockListLater;
}
public Boolean getCreateAppendBlob() {
return createAppendBlob;
}
public void setCreateAppendBlob(Boolean createAppendBlob) {
this.createAppendBlob = createAppendBlob;
}
public Boolean getCreatePageBlob() {
return createPageBlob;
}
public void setCreatePageBlob(Boolean createPageBlob) {
this.createPageBlob = createPageBlob;
}
public Long getDownloadLinkExpiration() {
return downloadLinkExpiration;
}
public void setDownloadLinkExpiration(Long downloadLinkExpiration) {
this.downloadLinkExpiration = downloadLinkExpiration;
}
public Boolean getLazyStartProducer() {
return lazyStartProducer;
}
public void setLazyStartProducer(Boolean lazyStartProducer) {
this.lazyStartProducer = lazyStartProducer;
}
public BlobOperationsDefinition getOperation() {
return operation;
}
public void setOperation(BlobOperationsDefinition operation) {
this.operation = operation;
}
public Long getPageBlobSize() {
return pageBlobSize;
}
public void setPageBlobSize(Long pageBlobSize) {
this.pageBlobSize = pageBlobSize;
}
public Boolean getAutowiredEnabled() {
return autowiredEnabled;
}
public void setAutowiredEnabled(Boolean autowiredEnabled) {
this.autowiredEnabled = autowiredEnabled;
}
public String getAccessKey() {
return accessKey;
}
public void setAccessKey(String accessKey) {
this.accessKey = accessKey;
}
}