/*
 * 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.kafkaconnector.cephsource;

import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.kafkaconnector.CamelSourceConnectorConfig;
import org.apache.kafka.common.config.ConfigDef;

@Generated("This class has been generated by camel-kafka-connector-generator-maven-plugin, remove this annotation to prevent it from being generated.")
public class CamelCephsourceSourceConnectorConfig
        extends
            CamelSourceConnectorConfig {

    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_BUCKET_NAME_CONF = "camel.kamelet.ceph-source.bucketName";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_BUCKET_NAME_DOC = "The Ceph Bucket name.";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_BUCKET_NAME_DEFAULT = null;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELETE_AFTER_READ_CONF = "camel.kamelet.ceph-source.deleteAfterRead";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELETE_AFTER_READ_DOC = "Specifies to delete objects after consuming them.";
    public static final Boolean CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELETE_AFTER_READ_DEFAULT = true;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_ACCESS_KEY_CONF = "camel.kamelet.ceph-source.accessKey";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_ACCESS_KEY_DOC = "The access key.";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_ACCESS_KEY_DEFAULT = null;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_SECRET_KEY_CONF = "camel.kamelet.ceph-source.secretKey";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_SECRET_KEY_DOC = "The secret key.";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_SECRET_KEY_DEFAULT = null;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_ZONE_GROUP_CONF = "camel.kamelet.ceph-source.zoneGroup";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_ZONE_GROUP_DOC = "The bucket zone group.";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_ZONE_GROUP_DEFAULT = null;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_AUTO_CREATE_BUCKET_CONF = "camel.kamelet.ceph-source.autoCreateBucket";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_AUTO_CREATE_BUCKET_DOC = "Specifies to automatically create the bucket.";
    public static final Boolean CAMEL_SOURCE_CEPHSOURCE_KAMELET_AUTO_CREATE_BUCKET_DEFAULT = false;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_INCLUDE_BODY_CONF = "camel.kamelet.ceph-source.includeBody";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_INCLUDE_BODY_DOC = "If true, the exchange is consumed and put into the body and closed. If false, the Object stream is put raw into the body and the headers are set with the object metadata.";
    public static final Boolean CAMEL_SOURCE_CEPHSOURCE_KAMELET_INCLUDE_BODY_DEFAULT = true;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_PREFIX_CONF = "camel.kamelet.ceph-source.prefix";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_PREFIX_DOC = "The bucket prefix to consider while searching. Example: folder/";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_PREFIX_DEFAULT = null;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_IGNORE_BODY_CONF = "camel.kamelet.ceph-source.ignoreBody";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_IGNORE_BODY_DOC = "If true, the Object body is ignored. Setting this to true overrides any behavior defined by the `includeBody` option. If false, the object is put in the body.";
    public static final Boolean CAMEL_SOURCE_CEPHSOURCE_KAMELET_IGNORE_BODY_DEFAULT = false;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_CEPH_URL_CONF = "camel.kamelet.ceph-source.cephUrl";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_CEPH_URL_DOC = "Set the Ceph Object Storage Address Url. Example: http://ceph-storage-address.com";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_CEPH_URL_DEFAULT = null;
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELAY_CONF = "camel.kamelet.ceph-source.delay";
    public static final String CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELAY_DOC = "The number of milliseconds before the next poll of the selected bucket.";
    public static final Integer CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELAY_DEFAULT = 500;

    public CamelCephsourceSourceConnectorConfig(
            ConfigDef config,
            Map<String, String> parsedConfig) {
        super(config, parsedConfig);
    }

    public CamelCephsourceSourceConnectorConfig(Map<String, String> parsedConfig) {
        this(conf(), parsedConfig);
    }

    public static ConfigDef conf() {
        ConfigDef conf = new ConfigDef(CamelSourceConnectorConfig.conf());
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_BUCKET_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_CEPHSOURCE_KAMELET_BUCKET_NAME_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SOURCE_CEPHSOURCE_KAMELET_BUCKET_NAME_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELETE_AFTER_READ_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELETE_AFTER_READ_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELETE_AFTER_READ_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_ACCESS_KEY_CONF, ConfigDef.Type.PASSWORD, CAMEL_SOURCE_CEPHSOURCE_KAMELET_ACCESS_KEY_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SOURCE_CEPHSOURCE_KAMELET_ACCESS_KEY_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_SECRET_KEY_CONF, ConfigDef.Type.PASSWORD, CAMEL_SOURCE_CEPHSOURCE_KAMELET_SECRET_KEY_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SOURCE_CEPHSOURCE_KAMELET_SECRET_KEY_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_ZONE_GROUP_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_CEPHSOURCE_KAMELET_ZONE_GROUP_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SOURCE_CEPHSOURCE_KAMELET_ZONE_GROUP_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_AUTO_CREATE_BUCKET_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_CEPHSOURCE_KAMELET_AUTO_CREATE_BUCKET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_CEPHSOURCE_KAMELET_AUTO_CREATE_BUCKET_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_INCLUDE_BODY_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_CEPHSOURCE_KAMELET_INCLUDE_BODY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_CEPHSOURCE_KAMELET_INCLUDE_BODY_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_PREFIX_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_CEPHSOURCE_KAMELET_PREFIX_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_CEPHSOURCE_KAMELET_PREFIX_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_IGNORE_BODY_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_CEPHSOURCE_KAMELET_IGNORE_BODY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_CEPHSOURCE_KAMELET_IGNORE_BODY_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_CEPH_URL_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_CEPHSOURCE_KAMELET_CEPH_URL_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SOURCE_CEPHSOURCE_KAMELET_CEPH_URL_DOC);
        conf.define(CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELAY_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELAY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_CEPHSOURCE_KAMELET_DELAY_DOC);
        return conf;
    }
}