package io.example.interface_.v0.models import com.fasterxml.jackson.annotation.JsonIgnoreProperties import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.annotation.JsonSubTypes import com.fasterxml.jackson.annotation.JsonTypeInfo import java.io.Serializable import kotlin.String import org.threeten.bp.Instant /** * This code was generated by [models.generator.kotlin.KotlinGenerator] */ @JsonIgnoreProperties(ignoreUnknown=true) @JsonTypeInfo( use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY, property = "discriminator", defaultImpl = io.example.interface_.v0.models.Person.PersonUndefined::class ) @JsonSubTypes( JsonSubTypes.Type(value = io.example.interface_.v0.models.Person.Guest::class, name = "guest"), JsonSubTypes.Type(value = io.example.interface_.v0.models.Person.User::class, name = "user"), JsonSubTypes.Type(value = io.example.interface_.v0.models.Person.PersonUndefined::class) ) sealed class Person { /** * This code was generated by [models.generator.kotlin.KotlinGenerator] */ @JsonIgnoreProperties(ignoreUnknown=true) @JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NONE) data class Guest( @JsonProperty("session_id") @get:JsonProperty("session_id") val sessionId: String, @JsonProperty("email") @get:JsonProperty("email") val email: String?, @JsonProperty("name") @get:JsonProperty("name") val name: String? ) : Person(), Serializable { fun toJsonString(): String = io.example.interface_.v0.models.JacksonObjectMapperFactory.create().writeValueAsString(this) companion object { fun parseJson(json: String): Guest = io.example.interface_.v0.models.JacksonObjectMapperFactory.create().readValue( json, Guest::class.java) } } /** * This code was generated by [models.generator.kotlin.KotlinGenerator] */ @JsonIgnoreProperties(ignoreUnknown=true) @JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NONE) data class User( @JsonProperty("id") @get:JsonProperty("id") val id: String, @JsonProperty("email") @get:JsonProperty("email") val email: String?, @JsonProperty("name") @get:JsonProperty("name") val name: String?, @JsonProperty("registration_date") @get:JsonProperty("registration_date") val registrationDate: Instant ) : Person(), Serializable { fun toJsonString(): String = io.example.interface_.v0.models.JacksonObjectMapperFactory.create().writeValueAsString(this) companion object { fun parseJson(json: String): User = io.example.interface_.v0.models.JacksonObjectMapperFactory.create().readValue( json, User::class.java) } } @JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NONE) object PersonUndefined : Person() companion object { fun parseJson(json: String): Person = io.example.interface_.v0.models.JacksonObjectMapperFactory.create().readValue( json, Person::class.java) } }