# `Derive.SideEffect.Insert`
[🔗](https://github.com/rwillians/derive/blob/v0.5.4/lib/derive/side_effect/insert.ex#L1)

@todo add documentation

# `t`
[🔗](https://github.com/rwillians/derive/blob/v0.5.4/lib/derive/side_effect/insert.ex#L16)
*since 0.1.0* 

```elixir
@type t() :: %Derive.SideEffect.Insert{
  conflict_target: atom() | [atom()],
  on_conflict:
    :nothing
    | :raise
    | :replace_all
    | :replace_all_except_primary_key
    | {:replace, [atom(), ...]}
    | [{:inc, keyword()} | {:set, keyword()}, ...],
  record: Ecto.Schema.schema()
}
```

@todo add documentation

# `conflict_target`
[🔗](https://github.com/rwillians/derive/blob/v0.5.4/lib/derive/side_effect/insert.ex#L109)
*since 0.1.0* 

```elixir
@spec conflict_target(
  %Derive.SideEffect.Insert{
    conflict_target: term(),
    on_conflict: term(),
    record: term()
  },
  [field, ...]
) :: t()
when field: atom()
```

@todo add documentation

# `insert`
[🔗](https://github.com/rwillians/derive/blob/v0.5.4/lib/derive/side_effect/insert.ex#L44)
*since 0.1.0* 

```elixir
@spec insert(record) :: t() when record: Ecto.Schema.schema()
```

@todo add documentation

# `merge`
[🔗](https://github.com/rwillians/derive/blob/v0.5.4/lib/derive/side_effect/insert.ex#L60)
*since 0.1.0* 

```elixir
@spec merge(record) :: t() when record: Ecto.Schema.schema()
```

@todo add documentation

# `on_conflict`
[🔗](https://github.com/rwillians/derive/blob/v0.5.4/lib/derive/side_effect/insert.ex#L125)
*since 0.1.0* 

```elixir
@spec on_conflict(
  %Derive.SideEffect.Insert{
    conflict_target: term(),
    on_conflict: term(),
    record: term()
  },
  action
) :: t()
when action:
       :raise
       | :nothing
       | :replace_all
       | :replace_all_except_primary_key
       | {:replace, [atom(), ...]}
       | [{:inc, keyword()} | {:set, keyword()}, ...]
```

@todo add documentation

# `upsert`
[🔗](https://github.com/rwillians/derive/blob/v0.5.4/lib/derive/side_effect/insert.ex#L91)
*since 0.1.0* 

```elixir
@spec upsert(record) :: t() when record: Ecto.Schema.schema()
```

@todo add documentation

---

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