25#include <unordered_map>
29#include "iceberg/catalog/rest/iceberg_rest_export.h"
31#include "iceberg/file_io.h"
32#include "iceberg/file_io_registry.h"
33#include "iceberg/result.h"
35namespace iceberg::rest {
37enum class BuiltinFileIOKind : uint8_t {
42ICEBERG_REST_EXPORT Result<BuiltinFileIOKind> DetectBuiltinFileIO(
43 std::string_view location);
45ICEBERG_REST_EXPORT std::string_view BuiltinFileIOName(BuiltinFileIOKind kind);
47ICEBERG_REST_EXPORT Result<std::unique_ptr<FileIO>> MakeCatalogFileIO(
48 const RestCatalogProperties& config);
51ICEBERG_REST_EXPORT Result<std::unique_ptr<FileIO>> MakeTableFileIO(
52 const std::unordered_map<std::string, std::string>& catalog_config,
53 const std::unordered_map<std::string, std::string>& table_config,
54 const std::vector<StorageCredential>& storage_credentials);
RestCatalogProperties implementation for Iceberg REST API.