<a id="hoistfield"></a>

# Kafka Connect HoistField SMT Usage Reference for Confluent Cloud

The following provides usage information for the Apache Kafka® SMT `org.apache.kafka.connect.transforms.HoistField`.

## Description

If the data has a schema, wrap data using the specified field name in a Struct; if the data does not have a schema, wrap data using the specified field name in a Map.

Use the concrete transformation type designed for the record key (`org.apache.kafka.connect.transforms.HoistField$Key`) or value (`org.apache.kafka.connect.transforms.HoistField$Value`).

## Example

The configuration snippet below shows how to use `HoistField` to wrap the
field name in a Struct.

```json
"transforms": "HoistField",
"transforms.HoistField.type": "org.apache.kafka.connect.transforms.HoistField$Value",
"transforms.HoistField.field": "line"
```

Messages sent:

```properties
Foo
Bar
```

Topic result:

```properties
{"line":"Foo"}
{"line":"Bar"}
```

## Properties

| Name    | Description                                                                          | Type   | Default   | Valid Values   | Importance   |
|---------|--------------------------------------------------------------------------------------|--------|-----------|----------------|--------------|
| `field` | Field name for the single field that will be created in the resulting Struct or Map. | string |           | non-empty list | medium       |

## Predicates

Transformations can be configured with *predicates* so that the transformation
is applied only to records which satisfy a condition. You can use predicates in
a transformation chain and, when combined with the [Kafka Connect Filter (Kafka) SMT Usage Reference for Confluent Cloud](filter-ak.md#ak-filter), predicates
can conditionally filter out specific records. For details and examples, see [Predicates](filter-ak.md#predicates).
