LlmProviderDescriptor.java

package com.taxonomy.extension.api.llm;

import java.io.Serializable;
import java.util.List;

/** Serializable capabilities and configuration metadata for an LLM provider. */
public record LlmProviderDescriptor(
        String providerId,
        String providerName,
        boolean requiresApiKey,
        boolean supportsStreaming,
        boolean supportsStructuredOutput,
        boolean supportsLocalExecution,
        List<String> configurationProperties) implements Serializable {

    public LlmProviderDescriptor {
        configurationProperties = configurationProperties == null
                ? List.of() : List.copyOf(configurationProperties);
    }
}