> This page is for version 5.0 (Latest) (default).
> For other versions, use one of these documentation indexes:
> - 5.0 (Latest) (default): https://docs.nvidia.com/holoscan/sdk-user-guide/5-0-latest/llms.txt
> - ltsb-2.0: https://docs.nvidia.com/holoscan/sdk-user-guide/ltsb-2-0/llms.txt
> - 4.6: https://docs.nvidia.com/holoscan/sdk-user-guide/4-6/llms.txt
> - 4.5: https://docs.nvidia.com/holoscan/sdk-user-guide/4-5/llms.txt
> - 4.4: https://docs.nvidia.com/holoscan/sdk-user-guide/4-4/llms.txt
> - 4.3: https://docs.nvidia.com/holoscan/sdk-user-guide/4-3/llms.txt
> - Archives: https://docs.nvidia.com/holoscan/sdk-user-guide/archives/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/holoscan/sdk-user-guide/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/holoscan/sdk-user-guide/_mcp/server.

# holoscan::params::RequiredParamSchemaCodec

> Derive an object codec that requires every field in a complete parameter schema.

```cpp showLineNumbers={false}
template <typename ParamsT>
struct RequiredParamSchemaCodec
```

Derive an object codec that requires every field in a complete parameter schema.

Specialize [`config::ConfigCodec`](../../config/structs/configcodec) for `ParamsT` by inheriting this type when every schema key must be present during whole-value decode. This is useful for nested parameter objects that field-local binding replaces as one value. Other behavior matches [`DefaultedParamSchemaCodec`](defaultedparamschemacodec). Sensitive and transient schema fields are still encoded. The author-asserted completeness warning on [`DefaultedParamSchemaCodec`](defaultedparamschemacodec) also applies here.

```cpp showLineNumbers={false}
#include <holoscan/params/config.hpp>
```

**Template parameters**

**`ParamsT`** `typename`

[Exact](../../../structs/exact) aggregate accepted by [`DefaultedParamSchemaCodec`](defaultedparamschemacodec).

---

**Inherits from:** `holoscan::params::detail::ParamSchemaCodecBase< ParamsT, true >` (public)

---

## Static methods

### decode \[#decode]

```cpp showLineNumbers={false}
static ConfigResult<ParamsT> holoscan::config::ObjectCodec<ParamsT>::decode(
    ConfigView view,
    const DecodeOptions &options,
    DecodeContext &context
)
```

Decode declared object fields through their member codecs.

### encode \[#encode]

```cpp showLineNumbers={false}
static ConfigResult<ConfigValue> holoscan::config::ObjectCodec<ParamsT>::encode(
    const ParamsT &value,
    const EncodeOptions &options,
    EncodeContext &context
)
```

Encode every declared object field through its member codec.