public static ConfigDef configDef() {
        return new ConfigDef()
                .define(REMOTE_LOG_STORAGE_SYSTEM_ENABLE_PROP,
                        BOOLEAN,
                        DEFAULT_REMOTE_LOG_STORAGE_SYSTEM_ENABLE,
                        null,
                        MEDIUM,
                        REMOTE_LOG_STORAGE_SYSTEM_ENABLE_DOC)
                .define(REMOTE_STORAGE_MANAGER_CONFIG_PREFIX_PROP,
                        STRING,
                        DEFAULT_REMOTE_STORAGE_MANAGER_CONFIG_PREFIX,
                        new ConfigDef.NonEmptyString(),
                        MEDIUM,
                        REMOTE_STORAGE_MANAGER_CONFIG_PREFIX_DOC)
                .define(REMOTE_LOG_METADATA_MANAGER_CONFIG_PREFIX_PROP,
                        STRING,
                        DEFAULT_REMOTE_LOG_METADATA_MANAGER_CONFIG_PREFIX,
                        new ConfigDef.NonEmptyString(),
                        MEDIUM,
                        REMOTE_LOG_METADATA_MANAGER_CONFIG_PREFIX_DOC)
                .define(REMOTE_STORAGE_MANAGER_CLASS_NAME_PROP, STRING,
                        null,
                        new ConfigDef.NonEmptyString(),
                        MEDIUM,
                        REMOTE_STORAGE_MANAGER_CLASS_NAME_DOC)
                .define(REMOTE_STORAGE_MANAGER_CLASS_PATH_PROP, STRING,
                        null,
                        null,
                        MEDIUM,
                        REMOTE_STORAGE_MANAGER_CLASS_PATH_DOC)
                .define(REMOTE_LOG_METADATA_MANAGER_CLASS_NAME_PROP,
                        STRING,
                        DEFAULT_REMOTE_LOG_METADATA_MANAGER_CLASS_NAME,
                        new ConfigDef.NonEmptyString(),
                        MEDIUM,
                        REMOTE_LOG_METADATA_MANAGER_CLASS_NAME_DOC)
                .define(REMOTE_LOG_METADATA_MANAGER_CLASS_PATH_PROP,
                        STRING,
                        null,
                        null,
                        MEDIUM,
                        REMOTE_LOG_METADATA_MANAGER_CLASS_PATH_DOC)
                .define(REMOTE_LOG_METADATA_MANAGER_LISTENER_NAME_PROP, STRING,
                        null,
                        new ConfigDef.NonEmptyString(),
                        MEDIUM,
                        REMOTE_LOG_METADATA_MANAGER_LISTENER_NAME_DOC)
                .define(REMOTE_LOG_METADATA_CUSTOM_METADATA_MAX_BYTES_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_METADATA_CUSTOM_METADATA_MAX_BYTES,
                        atLeast(0),
                        LOW,
                        REMOTE_LOG_METADATA_CUSTOM_METADATA_MAX_BYTES_DOC)
                .define(REMOTE_LOG_INDEX_FILE_CACHE_TOTAL_SIZE_BYTES_PROP,
                        LONG,
                        DEFAULT_REMOTE_LOG_INDEX_FILE_CACHE_TOTAL_SIZE_BYTES,
                        atLeast(1),
                        LOW,
                        REMOTE_LOG_INDEX_FILE_CACHE_TOTAL_SIZE_BYTES_DOC)
                .define(REMOTE_LOG_MANAGER_THREAD_POOL_SIZE_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_MANAGER_THREAD_POOL_SIZE,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_MANAGER_THREAD_POOL_SIZE_DOC)
                .defineInternal(REMOTE_LOG_MANAGER_COPIER_THREAD_POOL_SIZE_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_MANAGER_COPIER_THREAD_POOL_SIZE,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_MANAGER_COPIER_THREAD_POOL_SIZE_DOC)
                .defineInternal(REMOTE_LOG_MANAGER_EXPIRATION_THREAD_POOL_SIZE_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_MANAGER_EXPIRATION_THREAD_POOL_SIZE,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_MANAGER_EXPIRATION_THREAD_POOL_SIZE_DOC)
                .define(REMOTE_LOG_MANAGER_TASK_INTERVAL_MS_PROP,
                        LONG,
                        DEFAULT_REMOTE_LOG_MANAGER_TASK_INTERVAL_MS,
                        atLeast(1),
                        LOW,
                        REMOTE_LOG_MANAGER_TASK_INTERVAL_MS_DOC)
                .defineInternal(REMOTE_LOG_MANAGER_TASK_RETRY_BACK_OFF_MS_PROP,
                        LONG,
                        DEFAULT_REMOTE_LOG_MANAGER_TASK_RETRY_BACK_OFF_MS,
                        atLeast(1),
                        LOW,
                        REMOTE_LOG_MANAGER_TASK_RETRY_BACK_OFF_MS_DOC)
                .defineInternal(REMOTE_LOG_MANAGER_TASK_RETRY_BACK_OFF_MAX_MS_PROP,
                        LONG,
                        DEFAULT_REMOTE_LOG_MANAGER_TASK_RETRY_BACK_OFF_MAX_MS,
                        atLeast(1), LOW,
                        REMOTE_LOG_MANAGER_TASK_RETRY_BACK_OFF_MAX_MS_DOC)
                .defineInternal(REMOTE_LOG_MANAGER_TASK_RETRY_JITTER_PROP,
                        DOUBLE,
                        DEFAULT_REMOTE_LOG_MANAGER_TASK_RETRY_JITTER,
                        between(0, 0.5),
                        LOW,
                        REMOTE_LOG_MANAGER_TASK_RETRY_JITTER_DOC)
                .define(REMOTE_LOG_READER_THREADS_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_READER_THREADS,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_READER_THREADS_DOC)
                .define(REMOTE_LOG_READER_MAX_PENDING_TASKS_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_READER_MAX_PENDING_TASKS,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_READER_MAX_PENDING_TASKS_DOC)
                .define(LOG_LOCAL_RETENTION_MS_PROP,
                        LONG,
                        DEFAULT_LOG_LOCAL_RETENTION_MS,
                        atLeast(DEFAULT_LOG_LOCAL_RETENTION_MS),
                        MEDIUM,
                        LOG_LOCAL_RETENTION_MS_DOC)
                .define(LOG_LOCAL_RETENTION_BYTES_PROP,
                        LONG,
                        DEFAULT_LOG_LOCAL_RETENTION_BYTES,
                        atLeast(DEFAULT_LOG_LOCAL_RETENTION_BYTES),
                        MEDIUM,
                        LOG_LOCAL_RETENTION_BYTES_DOC)
                .define(REMOTE_LOG_MANAGER_COPY_MAX_BYTES_PER_SECOND_PROP,
                        LONG,
                        DEFAULT_REMOTE_LOG_MANAGER_COPY_MAX_BYTES_PER_SECOND,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_MANAGER_COPY_MAX_BYTES_PER_SECOND_DOC)
                .define(REMOTE_LOG_MANAGER_COPY_QUOTA_WINDOW_NUM_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_MANAGER_COPY_QUOTA_WINDOW_NUM,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_MANAGER_COPY_QUOTA_WINDOW_NUM_DOC)
                .define(REMOTE_LOG_MANAGER_COPY_QUOTA_WINDOW_SIZE_SECONDS_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_MANAGER_COPY_QUOTA_WINDOW_SIZE_SECONDS,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_MANAGER_COPY_QUOTA_WINDOW_SIZE_SECONDS_DOC)
                .define(REMOTE_LOG_MANAGER_FETCH_MAX_BYTES_PER_SECOND_PROP,
                        LONG,
                        DEFAULT_REMOTE_LOG_MANAGER_FETCH_MAX_BYTES_PER_SECOND,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_MANAGER_FETCH_MAX_BYTES_PER_SECOND_DOC)
                .define(REMOTE_LOG_MANAGER_FETCH_QUOTA_WINDOW_NUM_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_MANAGER_FETCH_QUOTA_WINDOW_NUM,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_MANAGER_FETCH_QUOTA_WINDOW_NUM_DOC)
                .define(REMOTE_LOG_MANAGER_FETCH_QUOTA_WINDOW_SIZE_SECONDS_PROP,
                        INT,
                        DEFAULT_REMOTE_LOG_MANAGER_FETCH_QUOTA_WINDOW_SIZE_SECONDS,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_LOG_MANAGER_FETCH_QUOTA_WINDOW_SIZE_SECONDS_DOC)
                .define(REMOTE_FETCH_MAX_WAIT_MS_PROP,
                        INT,
                        DEFAULT_REMOTE_FETCH_MAX_WAIT_MS,
                        atLeast(1),
                        MEDIUM,
                        REMOTE_FETCH_MAX_WAIT_MS_DOC);
    }
Prefix used for properties to be passed to {@link RemoteLogMetadataManager} implementation. Remote log subsystem collects all the properties having
this prefix and passed to {@code RemoteLogMetadataManager} using {@link RemoteLogMetadataManager#configure(Map)}.
storage/src/main/java/org/apache/kafka/server/log/remote/storage/RemoteLogManagerConfig.java