# `Jido.AI.Signal.RequestCompleted`
[🔗](https://github.com/agentjido/jido_ai/blob/v2.4.0/lib/jido_ai/signals/request_completed.ex#L1)

Signal for request lifecycle completion.

# `__signal_metadata__`

```elixir
@spec __signal_metadata__() :: map()
```

Returns this signal definition as metadata.

# `datacontenttype`

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

Returns the configured data content type, if present.

# `dataschema`

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

Returns the configured data schema URI, if present.

# `default_source`

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

Returns the default CloudEvents source for this signal module.

# `extension_policy`

```elixir
@spec extension_policy() :: map()
```

Returns the extension policy for this signal module.

# `new`

```elixir
@spec new(map(), keyword()) :: {:ok, Jido.Signal.t()} | {:error, term()}
```

Builds a validated `Jido.Signal` from signal data.

# `new!`

```elixir
@spec new!(map(), keyword()) :: Jido.Signal.t() | no_return()
```

Builds a validated `Jido.Signal` or raises when validation fails.

# `schema`

```elixir
@spec schema() :: keyword(keyword())
```

Returns the field schema used to validate signal data.

# `to_json`

```elixir
@spec to_json() :: map()
```

Returns this signal definition as metadata.

# `type`

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

Returns the CloudEvents type emitted by this signal module.

# `validate_data`

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

Validates data against this signal module's schema.

---

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