# `Gemini.Types.Request.ListModelsRequest`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.15.0/lib/gemini/types/request/types_request_list_models_request.ex#L1)

Request structure for listing models with pagination support.

# `t`

```elixir
@type t() :: %Gemini.Types.Request.ListModelsRequest{
  page_size: integer() | nil,
  page_token: String.t() | nil
}
```

# `new`

```elixir
@spec new(keyword()) :: {:ok, t()} | {:error, String.t()}
```

Create a new ListModelsRequest with validation.

## Parameters
- `opts` - Keyword list of options:
  - `:page_size` - Number of models per page (1-1000)
  - `:page_token` - Token for pagination

## Examples

    iex> ListModelsRequest.new(page_size: 50)
    {:ok, %ListModelsRequest{page_size: 50}}

    iex> ListModelsRequest.new(page_size: 2000)
    {:error, "Page size must be between 1 and 1000"}

# `to_query_params`

```elixir
@spec to_query_params(t()) :: String.t()
```

Build query parameters string from request.

---

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