#table #rest-client #iceberg #catalog #api-client #generated-client #unofficial

iceberg-rest-catalog

REST catalog for the unofficial Iceberg table format implementation

12 releases

new 0.6.1 Dec 10, 2024
0.6.0 Dec 9, 2024
0.5.8 Oct 18, 2024
0.5.7 Aug 18, 2024
0.4.0 Jun 3, 2024

#508 in Web programming

34 downloads per month
Used in frostbow

Apache-2.0

135KB
2.5K SLoC

Rust API client for iceberg-rest-catalog

Defines the specification for the first version of the REST Catalog API. Implementations should ideally support both Iceberg table specs v1 and v2, with priority given to v2.

Overview

This API client was generated by the OpenAPI Generator project. By using the openapi-spec from a remote server, you can easily generate an API client.

  • API version: 0.0.1
  • Package version: 0.0.1
  • Generator version: 7.6.0-SNAPSHOT
  • Build package: org.openapitools.codegen.languages.RustClientCodegen

Installation

Put the package under your project folder in a directory named iceberg-rest-catalog and add the following to Cargo.toml under [dependencies]:

iceberg-rest-catalog = { path = "./iceberg-rest-catalog" }

Documentation for API Endpoints

All URIs are relative to https://localhost

Class Method HTTP request Description
CatalogApiApi commit_transaction POST /v1/{prefix}/transactions/commit Commit updates to multiple tables in an atomic operation
CatalogApiApi create_namespace POST /v1/{prefix}/namespaces Create a namespace
CatalogApiApi create_table POST /v1/{prefix}/namespaces/{namespace}/tables Create a table in the given namespace
CatalogApiApi create_view POST /v1/{prefix}/namespaces/{namespace}/views Create a view in the given namespace
CatalogApiApi drop_namespace DELETE /v1/{prefix}/namespaces/{namespace} Drop a namespace from the catalog. Namespace must be empty.
CatalogApiApi drop_table DELETE /v1/{prefix}/namespaces/{namespace}/tables/{table} Drop a table from the catalog
CatalogApiApi drop_view DELETE /v1/{prefix}/namespaces/{namespace}/views/{view} Drop a view from the catalog
CatalogApiApi list_namespaces GET /v1/{prefix}/namespaces List namespaces, optionally providing a parent namespace to list underneath
CatalogApiApi list_tables GET /v1/{prefix}/namespaces/{namespace}/tables List all table identifiers underneath a given namespace
CatalogApiApi list_views GET /v1/{prefix}/namespaces/{namespace}/views List all view identifiers underneath a given namespace
CatalogApiApi load_namespace_metadata GET /v1/{prefix}/namespaces/{namespace} Load the metadata properties for a namespace
CatalogApiApi load_table GET /v1/{prefix}/namespaces/{namespace}/tables/{table} Load a table from the catalog
CatalogApiApi load_view GET /v1/{prefix}/namespaces/{namespace}/views/{view} Load a view from the catalog
CatalogApiApi namespace_exists HEAD /v1/{prefix}/namespaces/{namespace} Check if a namespace exists
CatalogApiApi register_table POST /v1/{prefix}/namespaces/{namespace}/register Register a table in the given namespace using given metadata file location
CatalogApiApi rename_table POST /v1/{prefix}/tables/rename Rename a table from its current name to a new name
CatalogApiApi rename_view POST /v1/{prefix}/views/rename Rename a view from its current name to a new name
CatalogApiApi replace_view POST /v1/{prefix}/namespaces/{namespace}/views/{view} Replace a view
CatalogApiApi report_metrics POST /v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics Send a metrics report to this endpoint to be processed by the backend
CatalogApiApi table_exists HEAD /v1/{prefix}/namespaces/{namespace}/tables/{table} Check if a table exists
CatalogApiApi update_properties POST /v1/{prefix}/namespaces/{namespace}/properties Set or remove properties on a namespace
CatalogApiApi update_table POST /v1/{prefix}/namespaces/{namespace}/tables/{table} Commit updates to a table
CatalogApiApi view_exists HEAD /v1/{prefix}/namespaces/{namespace}/views/{view} Check if a view exists
ConfigurationApiApi get_config GET /v1/config List all catalog configuration settings
OAuth2ApiApi get_token POST /v1/oauth/tokens Get a token using an OAuth2 flow

Documentation For Models

To get access to the crate's generated documentation, use:

cargo doc --open

Author

Dependencies

~42–60MB
~1M SLoC