# `ASM.Extensions.ProviderSDK.Extension`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.9.2/lib/asm/extensions/provider_sdk/extension.ex#L1)

Metadata contract for an optional provider-native ASM extension namespace.

# `t`

```elixir
@type t() :: %ASM.Extensions.ProviderSDK.Extension{
  description: String.t(),
  id: atom(),
  namespace: module(),
  native_capabilities: [atom()],
  native_surface_modules: [module()],
  provider: ASM.Provider.provider_name(),
  sdk_app: atom(),
  sdk_available?: boolean(),
  sdk_module: module()
}
```

# `new!`

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

---

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