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 TypeMethodDescription@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.
-
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 clientcatalogEntity- 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_CREDENTIALSon an external catalog whose credential vending feature is disabled).
-