Interface AccessDelegationModeResolver

All Known Implementing Classes:
DefaultAccessDelegationModeResolver

public interface AccessDelegationModeResolver
Resolves the optimal AccessDelegationMode to use based on the client's requested modes and the catalog's capabilities.
  • Method Summary

    Modifier and Type
    Method
    Description
    resolve(@NonNull EnumSet<AccessDelegationMode> requestedModes, @Nullable org.apache.polaris.core.entity.CatalogEntity catalogEntity)
    Resolves the optimal access delegation mode based on the requested modes and catalog capabilities.
  • Method Details

    • resolve

      @NonNull Optional<AccessDelegationMode> resolve(@NonNull EnumSet<AccessDelegationMode> requestedModes, @Nullable org.apache.polaris.core.entity.CatalogEntity catalogEntity)
      Resolves the optimal access delegation mode based on the requested modes and catalog capabilities.
      Parameters:
      requestedModes - The set of delegation modes requested by the client
      catalogEntity - The catalog entity, used to determine storage configuration and capabilities
      Returns:
      The resolved access delegation mode, or empty if no suitable mode is available.
      Throws:
      IllegalArgumentException - if the client requests a mode that is explicitly disallowed for the catalog and no viable fallback mode exists (e.g., AccessDelegationMode.VENDED_CREDENTIALS on an external catalog whose credential vending feature is disabled).