{{>hooks/pojoHeaderAnnotations}}
{{#if serializedName}}
@{{javax}}.xml.bind.annotation.XmlRootElement(name = {{{stringLiteral serializedName}}})
{{/if}}
{{#if discriminator}}
@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME, include = com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY, property = "{{{discriminator.serializedName}}}")
{{#if discriminator.references}}
@com.fasterxml.jackson.annotation.JsonSubTypes({
{{#each discriminator.references}}
	@com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = {{{schema.nativeType.literalType}}}.class, name = {{{stringLiteral value}}}),
{{/each}}
})
{{/if}}
{{else and (isObject) polymorphic children}}
@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.{{#ifvex 'x-openapi-generator-plus-java-jackson-use'}}{{{vendorExtensions.x-openapi-generator-plus-java-jackson-use}}}{{else}}{{#if __cannotUseDeduction}}NONE{{else}}DEDUCTION{{/if}}{{/ifvex}})
@com.fasterxml.jackson.annotation.JsonSubTypes({
	{{#each children}}
	@com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = {{{nativeType.literalType}}}.class, name = {{{stringLiteral name}}}),
	{{/each}}
})
{{else and (isInterface) polymorphic implementors}}
@com.fasterxml.jackson.annotation.JsonTypeInfo(use = com.fasterxml.jackson.annotation.JsonTypeInfo.Id.{{#ifvex 'x-openapi-generator-plus-java-jackson-use'}}{{{vendorExtensions.x-openapi-generator-plus-java-jackson-use}}}{{else}}{{#if __cannotUseDeduction}}NONE{{else}}DEDUCTION{{/if}}{{/ifvex}})
@com.fasterxml.jackson.annotation.JsonSubTypes({
	{{#each implementors}}
	@com.fasterxml.jackson.annotation.JsonSubTypes.Type(value = {{{nativeType.literalType}}}.class, name = {{{stringLiteral name}}}),
	{{/each}}
})
{{/if}}
{{#if deprecated}}
@java.lang.Deprecated
{{/if}}
