# `ASM.InferenceEndpoint.EndpointDescriptor`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.9.2/lib/asm/inference_endpoint/contracts.ex#L75)

Shared endpoint publication contract for CLI-backed ASM inference routes.

# `t`

```elixir
@type t() :: %ASM.InferenceEndpoint.EndpointDescriptor{
  base_url: String.t(),
  boundary_ref: String.t() | nil,
  capabilities: map(),
  contract_version: String.t(),
  endpoint_id: String.t(),
  headers: %{optional(String.t()) =&gt; String.t()},
  health_ref: String.t() | nil,
  lease_ref: String.t() | nil,
  management_mode: atom(),
  metadata: map(),
  model_identity: String.t() | nil,
  protocol: atom(),
  provider_identity: atom() | String.t() | nil,
  runtime_kind: :client | :task | :service,
  source_runtime: atom(),
  source_runtime_ref: String.t() | nil,
  target_class: :cloud_provider | :cli_endpoint | :self_hosted_endpoint
}
```

# `new`

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

# `new!`

```elixir
@spec new!(keyword() | map()) :: t()
```

---

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