Class IcebergRestCatalogApi

java.lang.Object
org.apache.polaris.service.catalog.api.IcebergRestCatalogApi

@Path("/api/catalog/v1/{prefix}") @Generated(value="org.openapitools.codegen.languages.JavaResteasyServerCodegen", comments="Generator version: 7.12.0") public class IcebergRestCatalogApi extends Object
The CatalogApi API interface This file is automatically generated by the OpenAPI Code Generator based on configuration in the build.gradle file.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    jakarta.ws.rs.core.Response
    commitTransaction(String prefix, org.apache.iceberg.rest.requests.CommitTransactionRequest commitTransactionRequest, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Commit updates to multiple tables in an atomic operation Response type: Void.
    jakarta.ws.rs.core.Response
    createNamespace(String prefix, org.apache.iceberg.rest.requests.CreateNamespaceRequest createNamespaceRequest, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Create a namespace, with an optional set of properties.
    jakarta.ws.rs.core.Response
    createTable(String prefix, String namespace, org.apache.iceberg.rest.requests.CreateTableRequest createTableRequest, String xIcebergAccessDelegation, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Create a table or start a create transaction, like atomic CTAS.
    jakarta.ws.rs.core.Response
    createView(String prefix, String namespace, org.apache.iceberg.rest.requests.CreateViewRequest createViewRequest, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Create a view in the given namespace.
    jakarta.ws.rs.core.Response
    dropNamespace(String prefix, String namespace, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Drop a namespace from the catalog.
    jakarta.ws.rs.core.Response
    dropTable(String prefix, String namespace, String table, UUID idempotencyKey, Boolean purgeRequested, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Remove a table from the catalog Response type: Void.
    jakarta.ws.rs.core.Response
    dropView(String prefix, String namespace, String view, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Remove a view from the catalog Response type: Void.
    jakarta.ws.rs.core.Response
    listNamespaces(String prefix, String pageToken, Integer pageSize, String parent, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    List all namespaces at a certain level, optionally starting from a given parent namespace.
    jakarta.ws.rs.core.Response
    listTables(String prefix, String namespace, String pageToken, Integer pageSize, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Return all table identifiers under this namespace Response type: ListTablesResponse.
    jakarta.ws.rs.core.Response
    listViews(String prefix, String namespace, String pageToken, Integer pageSize, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Return all view identifiers under this namespace Response type: ListTablesResponse.
    jakarta.ws.rs.core.Response
    loadCredentials(String prefix, String namespace, String table, String planId, String referencedBy, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Load vended credentials for a table from the catalog.
    jakarta.ws.rs.core.Response
    loadNamespaceMetadata(String prefix, String namespace, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Return all stored metadata properties for a given namespace Response type: GetNamespaceResponse.
    jakarta.ws.rs.core.Response
    loadTable(String prefix, String namespace, String table, String xIcebergAccessDelegation, String ifNoneMatch, String snapshots, String referencedBy, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Load a table from the catalog.
    jakarta.ws.rs.core.Response
    loadView(String prefix, String namespace, String view, String referencedBy, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Load a view from the catalog.
    jakarta.ws.rs.core.Response
    namespaceExists(String prefix, String namespace, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Check if a namespace exists.
    jakarta.ws.rs.core.Response
    registerTable(String prefix, String namespace, org.apache.iceberg.rest.requests.RegisterTableRequest registerTableRequest, String xIcebergAccessDelegation, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Register a table using given metadata file location.
    jakarta.ws.rs.core.Response
    registerView(String prefix, String namespace, org.apache.iceberg.rest.requests.RegisterViewRequest registerViewRequest, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Register a view in the given namespace using given metadata file location.
    jakarta.ws.rs.core.Response
    renameTable(String prefix, org.apache.iceberg.rest.requests.RenameTableRequest renameTableRequest, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Rename a table from one identifier to another.
    jakarta.ws.rs.core.Response
    renameView(String prefix, org.apache.iceberg.rest.requests.RenameTableRequest renameTableRequest, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Rename a view from one identifier to another.
    jakarta.ws.rs.core.Response
    replaceView(String prefix, String namespace, String view, CommitViewRequest commitViewRequest, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Commit updates to a view.
    jakarta.ws.rs.core.Response
    reportMetrics(String prefix, String namespace, String table, org.apache.iceberg.rest.requests.ReportMetricsRequest reportMetricsRequest, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Send a metrics report to this endpoint to be processed by the backend Response type: Void.
    jakarta.ws.rs.core.Response
    sendNotification(String prefix, String namespace, String table, NotificationRequest notificationRequest, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Sends a notification to the table Response type: Void.
    jakarta.ws.rs.core.Response
    tableExists(String prefix, String namespace, String table, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Check if a table exists within a given namespace.
    jakarta.ws.rs.core.Response
    updateProperties(String prefix, String namespace, org.apache.iceberg.rest.requests.UpdateNamespacePropertiesRequest updateNamespacePropertiesRequest, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Set and/or remove properties on a namespace.
    jakarta.ws.rs.core.Response
    updateTable(String prefix, String namespace, String table, CommitTableRequest commitTableRequest, UUID idempotencyKey, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Commit updates to a table.
    jakarta.ws.rs.core.Response
    viewExists(String prefix, String namespace, String view, org.apache.polaris.core.context.RealmContext realmContext, jakarta.ws.rs.core.SecurityContext securityContext)
    Check if a view exists within a given namespace.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • commitTransaction

      @POST @Path("/transactions/commit") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response commitTransaction(@PathParam("prefix") String prefix, org.apache.iceberg.rest.requests.CommitTransactionRequest commitTransactionRequest, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Commit updates to multiple tables in an atomic operation Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      commitTransactionRequest - Required - Commit updates to multiple tables in an atomic operation A commit for a single table consists of a table identifier with requirements and updates. Requirements are assertions that will be validated before attempting to make and commit changes. For example, `assert-ref-snapshot-id` will check that a named ref's snapshot ID has a certain value. Server implementations are required to fail with a 400 status code if any unknown updates or requirements are received. Updates are changes to make to table metadata. For example, after asserting that the current main ref is at the expected snapshot, a commit may add a new child snapshot and set the ref to the new snapshot id.
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      204 - Success, no content
    • createNamespace

      @POST @Path("/namespaces") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response createNamespace(@PathParam("prefix") String prefix, org.apache.iceberg.rest.requests.CreateNamespaceRequest createNamespaceRequest, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Create a namespace, with an optional set of properties. The server might also add properties, such as `last_modified_time` etc. Response type: CreateNamespaceResponse.
      Parameters:
      prefix - Required - An optional prefix in the path
      createNamespaceRequest - Required -
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      200 - Represents a successful call to create a namespace. Returns the namespace created, as well as any properties that were stored for the namespace, including those the server might have added. Implementations are not required to support namespace properties.
    • createTable

      @POST @Path("/namespaces/{namespace}/tables") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response createTable(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, org.apache.iceberg.rest.requests.CreateTableRequest createTableRequest, @HeaderParam("X-Iceberg-Access-Delegation") String xIcebergAccessDelegation, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Create a table or start a create transaction, like atomic CTAS. If `stage-create` is false, the table is created immediately. If `stage-create` is true, the table is not created, but table metadata is initialized and returned. The service should prepare as needed for a commit to the table commit endpoint to complete the create transaction. The client uses the returned metadata to begin a transaction. To commit the transaction, the client sends all create and subsequent changes to the table commit route. Changes from the table create operation include changes like AddSchemaUpdate and SetCurrentSchemaUpdate that set the initial table state. Response type: LoadTableResult.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      createTableRequest - Required -
      xIcebergAccessDelegation - Optional signal to the server that the client supports delegated access via a comma-separated list of access mechanisms. The server may choose to supply access via any or none of the requested mechanisms. Specific properties and handling for `vended-credentials` and `remote-signing` are documented in the `LoadTableResult` schema section of this spec document.
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      200 - Table metadata result after creating a table
    • createView

      @POST @Path("/namespaces/{namespace}/views") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response createView(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, org.apache.iceberg.rest.requests.CreateViewRequest createViewRequest, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Create a view in the given namespace. Response type: LoadViewResult.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      createViewRequest - Required -
      Returns:
      200 - View metadata result when loading a view
    • dropNamespace

      @DELETE @Path("/namespaces/{namespace}") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response dropNamespace(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Drop a namespace from the catalog. Namespace must be empty. Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      204 - Success, no content
    • dropTable

      @DELETE @Path("/namespaces/{namespace}/tables/{table}") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response dropTable(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("table") String table, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @DefaultValue("false") @QueryParam("purgeRequested") Boolean purgeRequested, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Remove a table from the catalog Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      table - Required - A table name
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      purgeRequested - Whether the user requested to purge the underlying table's data and metadata
      Returns:
      204 - Success, no content
    • dropView

      @DELETE @Path("/namespaces/{namespace}/views/{view}") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response dropView(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("view") String view, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Remove a view from the catalog Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      view - Required - A view name
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      204 - Success, no content
    • listNamespaces

      @GET @Path("/namespaces") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response listNamespaces(@PathParam("prefix") String prefix, @QueryParam("pageToken") String pageToken, @QueryParam("pageSize") Integer pageSize, @QueryParam("parent") String parent, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      List all namespaces at a certain level, optionally starting from a given parent namespace. If table accounting.tax.paid.info exists, using 'SELECT NAMESPACE IN accounting' would translate into `GET /namespaces?parent=accounting` and must return a namespace, [\"accounting\", \"tax\"] only. Using 'SELECT NAMESPACE IN accounting.tax' would translate into `GET /namespaces?parent=accounting%1Ftax` and must return a namespace, [\"accounting\", \"tax\", \"paid\"]. If `parent` is not provided, all top-level namespaces should be listed. Response type: ListNamespacesResponse.
      Parameters:
      prefix - Required - An optional prefix in the path
      pageToken -
      pageSize - For servers that support pagination, this signals an upper bound of the number of results that a client will receive. For servers that do not support pagination, clients may receive results larger than the indicated `pageSize`.
      parent - An optional namespace, underneath which to list namespaces. If not provided, all top-level namespaces should be listed. For backward compatibility, empty string is treated as absent for now. If parent is a multipart namespace, the parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      Returns:
      200 - A list of namespaces
    • listTables

      @GET @Path("/namespaces/{namespace}/tables") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response listTables(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @QueryParam("pageToken") String pageToken, @QueryParam("pageSize") Integer pageSize, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Return all table identifiers under this namespace Response type: ListTablesResponse.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      pageToken -
      pageSize - For servers that support pagination, this signals an upper bound of the number of results that a client will receive. For servers that do not support pagination, clients may receive results larger than the indicated `pageSize`.
      Returns:
      200 - A list of table identifiers
    • listViews

      @GET @Path("/namespaces/{namespace}/views") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response listViews(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @QueryParam("pageToken") String pageToken, @QueryParam("pageSize") Integer pageSize, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Return all view identifiers under this namespace Response type: ListTablesResponse.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      pageToken -
      pageSize - For servers that support pagination, this signals an upper bound of the number of results that a client will receive. For servers that do not support pagination, clients may receive results larger than the indicated `pageSize`.
      Returns:
      200 - A list of table identifiers
    • loadCredentials

      @GET @Path("/namespaces/{namespace}/tables/{table}/credentials") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response loadCredentials(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("table") String table, @QueryParam("planId") String planId, @QueryParam("referenced-by") String referencedBy, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Load vended credentials for a table from the catalog. Response type: LoadCredentialsResponse.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      table - Required - A table name
      planId - The plan ID that has been used for server-side scan planning
      referencedBy - A comma-separated list of fully qualified view names (namespace and view name) representing the view reference chain when an entity (table or view) is loaded via a view. The list should be ordered with the outermost view first, followed by any intermediate views it references, down to the view that directly references the entity. For a simple case where a view directly references the entity, the list contains a single view identifier. For nested views (a view referencing another view which references the entity), the list contains multiple view identifiers representing the complete dependency chain. The view identifier is a composite string of the format {namespace}{separator}{viewName}. The namespace-separator (defined in /config) acts as the delimiter. When parsing, the last occurrence of this separator identifies the boundary between the namespace and the view name. Multipart namespaces must follow the encoding rules of the parent parameter in the list namespaces endpoint. Multiple view identifiers are separated by commas. Servers should split the parameter value on comma characters to parse individual view identifiers. If view names contain commas, they must be url-encoded as %2C. Example with multiple views (where prod%1Fanalytics is a nested namespace which has a quarterly_view which references to monthly_view which then references the entity being loaded) - prod%1Fanalytics%1Fquarterly_view,prod%1Fanalytics%1Fmonthly_view
      Returns:
      200 - Table credentials result when loading credentials for a table
    • loadNamespaceMetadata

      @GET @Path("/namespaces/{namespace}") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response loadNamespaceMetadata(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Return all stored metadata properties for a given namespace Response type: GetNamespaceResponse.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      Returns:
      200 - Returns a namespace, as well as any properties stored on the namespace if namespace properties are supported by the server.
    • loadTable

      @GET @Path("/namespaces/{namespace}/tables/{table}") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response loadTable(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("table") String table, @HeaderParam("X-Iceberg-Access-Delegation") String xIcebergAccessDelegation, @HeaderParam("If-None-Match") String ifNoneMatch, @QueryParam("snapshots") String snapshots, @QueryParam("referenced-by") String referencedBy, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Load a table from the catalog. The response contains both configuration and table metadata. The configuration, if non-empty is used as additional configuration for the table that overrides catalog configuration. For example, this configuration may change the FileIO implementation to be used for the table. The response also contains the table's full metadata, matching the table metadata JSON file. The catalog configuration may contain credentials that should be used for subsequent requests for the table. The configuration key \"token\" is used to pass an access token to be used as a bearer token for table requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration key. For example, \"urn:ietf:params:oauth:token-type:jwt=<JWT-token>\". Response type: LoadTableResult.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      table - Required - A table name
      xIcebergAccessDelegation - Optional signal to the server that the client supports delegated access via a comma-separated list of access mechanisms. The server may choose to supply access via any or none of the requested mechanisms. Specific properties and handling for `vended-credentials` and `remote-signing` are documented in the `LoadTableResult` schema section of this spec document.
      ifNoneMatch - An optional header that allows the server to return 304 (Not Modified) if the metadata is current. The content is the value of the ETag received in a CreateTableResponse, LoadTableResponse or CommitTableResponse.
      snapshots - The snapshots to return in the body of the metadata via the `snapshots` field. Setting the value to `all` would return the full set of snapshots currently valid for the table. Setting the value to `refs` would load all snapshots referenced by branches or tags. Default if no param is provided is `all`.
      referencedBy - A comma-separated list of fully qualified view names (namespace and view name) representing the view reference chain when an entity (table or view) is loaded via a view. The list should be ordered with the outermost view first, followed by any intermediate views it references, down to the view that directly references the entity. For a simple case where a view directly references the entity, the list contains a single view identifier. For nested views (a view referencing another view which references the entity), the list contains multiple view identifiers representing the complete dependency chain. The view identifier is a composite string of the format {namespace}{separator}{viewName}. The namespace-separator (defined in /config) acts as the delimiter. When parsing, the last occurrence of this separator identifies the boundary between the namespace and the view name. Multipart namespaces must follow the encoding rules of the parent parameter in the list namespaces endpoint. Multiple view identifiers are separated by commas. Servers should split the parameter value on comma characters to parse individual view identifiers. If view names contain commas, they must be url-encoded as %2C. Example with multiple views (where prod%1Fanalytics is a nested namespace which has a quarterly_view which references to monthly_view which then references the entity being loaded) - prod%1Fanalytics%1Fquarterly_view,prod%1Fanalytics%1Fmonthly_view
      Returns:
      200 - Table metadata result when loading a table
    • loadView

      @GET @Path("/namespaces/{namespace}/views/{view}") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response loadView(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("view") String view, @QueryParam("referenced-by") String referencedBy, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Load a view from the catalog. The response contains both configuration and view metadata. The configuration, if non-empty is used as additional configuration for the view that overrides catalog configuration. The response also contains the view's full metadata, matching the view metadata JSON file. The catalog configuration may contain credentials that should be used for subsequent requests for the view. The configuration key \"token\" is used to pass an access token to be used as a bearer token for view requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration key. For example, \"urn:ietf:params:oauth:token-type:jwt=<JWT-token>\". Response type: LoadViewResult.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      view - Required - A view name
      referencedBy - A comma-separated list of fully qualified view names (namespace and view name) representing the view reference chain when an entity (table or view) is loaded via a view. The list should be ordered with the outermost view first, followed by any intermediate views it references, down to the view that directly references the entity. For a simple case where a view directly references the entity, the list contains a single view identifier. For nested views (a view referencing another view which references the entity), the list contains multiple view identifiers representing the complete dependency chain. The view identifier is a composite string of the format {namespace}{separator}{viewName}. The namespace-separator (defined in /config) acts as the delimiter. When parsing, the last occurrence of this separator identifies the boundary between the namespace and the view name. Multipart namespaces must follow the encoding rules of the parent parameter in the list namespaces endpoint. Multiple view identifiers are separated by commas. Servers should split the parameter value on comma characters to parse individual view identifiers. If view names contain commas, they must be url-encoded as %2C. Example with multiple views (where prod%1Fanalytics is a nested namespace which has a quarterly_view which references to monthly_view which then references the entity being loaded) - prod%1Fanalytics%1Fquarterly_view,prod%1Fanalytics%1Fmonthly_view
      Returns:
      200 - View metadata result when loading a view
    • namespaceExists

      @HEAD @Path("/namespaces/{namespace}") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response namespaceExists(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Check if a namespace exists. The response does not contain a body. Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      Returns:
      204 - Success, no content
    • registerTable

      @POST @Path("/namespaces/{namespace}/register") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response registerTable(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, org.apache.iceberg.rest.requests.RegisterTableRequest registerTableRequest, @HeaderParam("X-Iceberg-Access-Delegation") String xIcebergAccessDelegation, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Register a table using given metadata file location. Response type: LoadTableResult.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      registerTableRequest - Required -
      xIcebergAccessDelegation - Optional signal to the server that the client supports delegated access via a comma-separated list of access mechanisms. The server may choose to supply access via any or none of the requested mechanisms. Specific properties and handling for `vended-credentials` and `remote-signing` are documented in the `LoadTableResult` schema section of this spec document.
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      200 - Table metadata result when loading a table
    • registerView

      @POST @Path("/namespaces/{namespace}/register-view") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response registerView(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, org.apache.iceberg.rest.requests.RegisterViewRequest registerViewRequest, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Register a view in the given namespace using given metadata file location. Response type: LoadViewResult.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      registerViewRequest - Required -
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      200 - View metadata result when loading a view
    • renameTable

      @POST @Path("/tables/rename") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response renameTable(@PathParam("prefix") String prefix, org.apache.iceberg.rest.requests.RenameTableRequest renameTableRequest, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Rename a table from one identifier to another. It's valid to move a table across namespaces, but the server implementation is not required to support it. Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      renameTableRequest - Required - Current table identifier to rename and new table identifier to rename to
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      204 - Success, no content
    • renameView

      @POST @Path("/views/rename") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response renameView(@PathParam("prefix") String prefix, org.apache.iceberg.rest.requests.RenameTableRequest renameTableRequest, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Rename a view from one identifier to another. It's valid to move a view across namespaces, but the server implementation is not required to support it. Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      renameTableRequest - Required - Current view identifier to rename and new view identifier to rename to
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      204 - Success, no content
    • replaceView

      @POST @Path("/namespaces/{namespace}/views/{view}") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response replaceView(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("view") String view, CommitViewRequest commitViewRequest, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Commit updates to a view. Response type: LoadViewResult.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      view - Required - A view name
      commitViewRequest - Required -
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      200 - View metadata result when loading a view
    • reportMetrics

      @POST @Path("/namespaces/{namespace}/tables/{table}/metrics") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response reportMetrics(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("table") String table, org.apache.iceberg.rest.requests.ReportMetricsRequest reportMetricsRequest, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Send a metrics report to this endpoint to be processed by the backend Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      table - Required - A table name
      reportMetricsRequest - Required - The request containing the metrics report to be sent
      Returns:
      204 - Success, no content
    • sendNotification

      @POST @Path("/namespaces/{namespace}/tables/{table}/notifications") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response sendNotification(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("table") String table, NotificationRequest notificationRequest, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Sends a notification to the table Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      table - Required - A table name
      notificationRequest - Required - The request containing the notification to be sent. For each table, Polaris will reject any notification where the timestamp in the request body is older than or equal to the most recent time Polaris has already processed for the table. The responsibility of ensuring the correct order of timestamps for a sequence of notifications lies with the caller of the API. This includes managing potential clock skew or inconsistencies when notifications are sent from multiple sources. A VALIDATE request behaves like a dry-run of a CREATE or UPDATE request up to but not including loading the contents of a metadata file; this includes validations of permissions, the specified metadata path being within ALLOWED_LOCATIONS, having an EXTERNAL catalog, etc. The intended use case for a VALIDATE notification is to allow a remote catalog to pre-validate the general settings of a receiving catalog against an intended new table location before possibly creating a table intended for sending notifications in the remote catalog at all. For a VALIDATE request, the specified metadata-location can either be a prospective full metadata file path, or a relevant parent directory of the intended table to validate against ALLOWED_LOCATIONS.
      Returns:
      204 - Success, no content
    • tableExists

      @HEAD @Path("/namespaces/{namespace}/tables/{table}") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response tableExists(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("table") String table, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Check if a table exists within a given namespace. The response does not contain a body. Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      table - Required - A table name
      Returns:
      204 - Success, no content
    • updateProperties

      @POST @Path("/namespaces/{namespace}/properties") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response updateProperties(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, org.apache.iceberg.rest.requests.UpdateNamespacePropertiesRequest updateNamespacePropertiesRequest, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Set and/or remove properties on a namespace. The request body specifies a list of properties to remove and a map of key value pairs to update. Properties that are not in the request are not modified or removed by this call. Server implementations are not required to support namespace properties. Response type: UpdateNamespacePropertiesResponse.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      updateNamespacePropertiesRequest - Required -
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      200 - JSON data response for a synchronous update properties request.
    • updateTable

      @POST @Path("/namespaces/{namespace}/tables/{table}") @Consumes("application/json") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response updateTable(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("table") String table, CommitTableRequest commitTableRequest, @HeaderParam("Idempotency-Key") UUID idempotencyKey, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Commit updates to a table. Commits have two parts, requirements and updates. Requirements are assertions that will be validated before attempting to make and commit changes. For example, `assert-ref-snapshot-id` will check that a named ref's snapshot ID has a certain value. Server implementations are required to fail with a 400 status code if any unknown updates or requirements are received. Updates are changes to make to table metadata. For example, after asserting that the current main ref is at the expected snapshot, a commit may add a new child snapshot and set the ref to the new snapshot id. Create table transactions that are started by createTable with `stage-create` set to true are committed using this route. Transactions should include all changes to the table, including table initialization, like AddSchemaUpdate and SetCurrentSchemaUpdate. The `assert-create` requirement is used to ensure that the table was not created concurrently. Response type: CommitTableResponse.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      table - Required - A table name
      commitTableRequest - Required -
      idempotencyKey - Optional client-provided idempotency key for safe request retries. When present, the server ensures no additional effects for requests that carry the same Idempotency-Key. If a prior request with this key has been finalized, the server returns an equivalent final response without re-running the operation. The response body may reflect a newer state of the catalog than existed at the time of the commit. Finalization rules: - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx (including 409 such as AlreadyExists, NamespaceNotEmpty, etc.) - Do not finalize (not stored/replayed): 5xx Key Requirements: - Key format: UUIDv7 in string form (RFC 9562). - The idempotency key must be globally unique (no reuse across different operations). - Catalogs SHOULD NOT expire keys before the end of the advertised token lifetime. - If Idempotency-Key is used, clients MUST reuse the same key when retrying the same logical operation and MUST generate a new key for a different operation.
      Returns:
      200 - Response used when a table is successfully updated. The table metadata JSON is returned in the metadata field. The corresponding file location of table metadata must be returned in the metadata-location field. Clients can check whether metadata has changed by comparing metadata locations.
    • viewExists

      @HEAD @Path("/namespaces/{namespace}/views/{view}") @Produces("application/json") @RolesAllowed("**") @Timeout public jakarta.ws.rs.core.Response viewExists(@PathParam("prefix") String prefix, @PathParam("namespace") String namespace, @PathParam("view") String view, @Context org.apache.polaris.core.context.RealmContext realmContext, @Context jakarta.ws.rs.core.SecurityContext securityContext)
      Check if a view exists within a given namespace. This request does not return a response body. Response type: Void.
      Parameters:
      prefix - Required - An optional prefix in the path
      namespace - Required - A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.
      view - Required - A view name
      Returns:
      204 - Success, no content