You can use similar in Kotlin class
class InventoryMoveRequest {
    @SerializedName("userEntryStartDate")
    @Expose
    var userEntryStartDate: String? = null
    @SerializedName("userEntryEndDate")
    @Expose
    var userEntryEndDate: String? = null
    @SerializedName("location")
    @Expose
    var location: Location? = null
    @SerializedName("containers")
    @Expose
    var containers: Containers? = null
}
And also for nested class you can use same like if there is nested object. Just provide Serialize name for the Class.
@Entity(tableName = "location")
class Location {
    @SerializedName("rows")
    var rows: List<Row>? = null
    @SerializedName("totalRows")
    var totalRows: Long? = null
}
so if get response from the server each key will map with JOSN.
Alos, convert List to JSON:
val gson = Gson()
val json = gson.toJson(topic)
ndroid convert from JSON to Object:
val json = getJson()
val topic = gson.fromJson(json, Topic::class.java)