# `Gemini.Types.RagStore`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/document.ex#L228)

Type definitions for RAG stores (FileSearchStores).

RAG stores contain documents that can be searched semantically
and used for retrieval-augmented generation.

# `store_state`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/document.ex#L241)

```elixir
@type store_state() :: :state_unspecified | :creating | :active | :deleting | :failed
```

RAG store state enumeration.

# `t`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/document.ex#L249)

```elixir
@type t() :: %Gemini.Types.RagStore{
  create_time: String.t() | nil,
  description: String.t() | nil,
  display_name: String.t() | nil,
  document_count: integer() | nil,
  name: String.t() | nil,
  state: store_state() | nil,
  total_size_bytes: integer() | nil,
  update_time: String.t() | nil,
  vector_config: map() | nil
}
```

Represents a RAG store.

## Fields

- `name` - Resource name (e.g., "ragStores/abc123")
- `display_name` - Human-readable name
- `description` - Store description
- `state` - Current state
- `create_time` - When the store was created
- `update_time` - Last update timestamp
- `document_count` - Number of documents in the store
- `total_size_bytes` - Total size of all documents
- `vector_config` - Vector embedding configuration

# `active?`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/document.ex#L311)

```elixir
@spec active?(t()) :: boolean()
```

Checks if the store is active.

# `from_api_response`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/document.ex#L281)

```elixir
@spec from_api_response(map()) :: t()
```

Creates a RagStore from API response.

# `get_id`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/document.ex#L318)

```elixir
@spec get_id(t()) :: String.t() | nil
```

Extracts the store ID from the full name.

# `parse_state`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/document.ex#L299)

```elixir
@spec parse_state(String.t() | nil) :: store_state() | nil
```

Parses store state from API string.

---

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