# GenerableProvider


```
interface GenerableProvider
```

<br />

*** ** * ** ***

Interface used by the `https://developer.android.com/reference/java/util/ServiceLoader.html` for runtime discovery of generated schemas.

During compilation, the KSP (Kotlin Symbol Processing) plugin automatically generates an implementation of this interface for each class annotated with `@Generable`. The generated implementation acts as a provider, exposing the structural metadata (like guide details and constraints) of the target class via `https://developers.google.com/android/reference/kotlin/com/google/mlkit/genai/schema/guided/GenerableDetail`.

Example of reading the generated providers at runtime:

```kotlin
val generableProviders: Map<KClass<*>, GenerableProvider> by lazy {
  ServiceLoader.load(GenerableProvider::class.java, GenerableProvider::class.java.classLoader)
    .associateBy { it.targetClass }
}
```

## Summary

| ### Public functions |
|---|---|
| `https://developers.google.com/android/reference/kotlin/com/google/mlkit/genai/schema/guided/GenerableDetail<*>` | `https://developers.google.com/android/reference/kotlin/com/google/mlkit/genai/schema/guided/GenerableProvider#getGenerableDetail()()` Returns the `https://developers.google.com/android/reference/kotlin/com/google/mlkit/genai/schema/guided/GenerableDetail` for the `https://developers.google.com/android/reference/kotlin/com/google/mlkit/genai/schema/guided/GenerableProvider#targetClass()`. |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html<*>` | `https://developers.google.com/android/reference/kotlin/com/google/mlkit/genai/schema/guided/GenerableProvider#targetClass()` The class type this provider is for. |

## Public functions

### getGenerableDetail

```
fun getGenerableDetail(): GenerableDetail<*>
```

Returns the `https://developers.google.com/android/reference/kotlin/com/google/mlkit/genai/schema/guided/GenerableDetail` for the `https://developers.google.com/android/reference/kotlin/com/google/mlkit/genai/schema/guided/GenerableProvider#targetClass()`.

## Public properties

### targetClass

```
val targetClass: KClass<*>
```

The class type this provider is for.