# `Buble.Generations`
[🔗](https://github.com/bublehq/sdks/blob/main/lib/buble/generations.ex#L1)

Direct asynchronous image, video, and audio generation methods.

Generation requests use Buble's flat public API shape. Put model-specific
controls at the request root and discover supported names from media model
discovery.

# `create`

```elixir
@spec create(Buble.Client.t(), keyword() | map()) ::
  {:ok, map()} | {:error, Buble.Error.t()}
```

# `create!`

```elixir
@spec create!(Buble.Client.t(), keyword() | map()) :: map()
```

# `retrieve`

```elixir
@spec retrieve(Buble.Client.t(), String.t()) ::
  {:ok, map()} | {:error, Buble.Error.t()}
```

# `retrieve!`

```elixir
@spec retrieve!(Buble.Client.t(), String.t()) :: map()
```

# `wait`

```elixir
@spec wait(Buble.Client.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, Buble.Error.t()}
```

# `wait!`

```elixir
@spec wait!(Buble.Client.t(), String.t(), keyword()) :: map()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
