Skip to main content

Documentation for the avro-schema Generator

METADATA​

PropertyValueNotes
generator nameavro-schemapass this to the generate command after -g
generator stabilityBETA
generator typeSCHEMA
generator languageJava
generator default templating enginemustache
helpTxtGenerates a Avro model (beta).

CONFIG OPTIONS​

These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to configuration docs for more details.

OptionDescriptionValuesDefault
allowUnicodeIdentifiersboolean, toggles whether unicode identifiers are allowed in names or not, default is falsefalse
disallowAdditionalPropertiesIfNotPresentIf false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.
false
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
true
Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.
true
ensureUniqueParamsWhether to ensure parameter names are unique in an operation (rename parameters that are not).true
enumUnknownDefaultCaseIf the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response. With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.
false
No changes to the enums are made, this is the default option.
true
With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.
false
legacyDiscriminatorBehaviorSet to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default).
true
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
false
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
true
logicalTypeTimeQuantifierThe quantifier for time-related logical types (timestamp and local-timestamp).
nanos
nanoseconds
micros
microseconds
millis
milliseconds
millis
packageNamepackage for generated classes (where supported)null
prependFormOrBodyParametersAdd form or body parameters to the beginning of the parameter list.false
sortModelPropertiesByRequiredFlagSort model properties to place required parameters before optional parameters.true
sortParamsByRequiredFlagSort method arguments to place required parameters before optional parameters.true
useLogicalTypesUse logical types for fields, when matching OpenAPI types. Currently supported: date-time, date.false

IMPORT MAPPING​

Type/AliasImports

INSTANTIATION TYPES​

Type/AliasInstantiated By
arrayArray
listArray
mapObject

LANGUAGE PRIMITIVES​

  • BigDecimal
  • DateTime
  • UUID
  • boolean
  • bytes
  • date
  • double
  • float
  • int
  • integer
  • long
  • null
  • number
  • string

RESERVED WORDS​

    FEATURE SET​

    Client Modification Feature​

    NameSupportedDefined By
    BasePath✗ToolingExtension
    Authorizations✗ToolingExtension
    UserAgent✗ToolingExtension
    MockServer✗ToolingExtension

    Data Type Feature​

    NameSupportedDefined By
    Custom✗OAS2,OAS3
    Int32✓OAS2,OAS3
    Int64✓OAS2,OAS3
    Float✓OAS2,OAS3
    Double✓OAS2,OAS3
    Decimal✓ToolingExtension
    String✓OAS2,OAS3
    Byte✓OAS2,OAS3
    Binary✓OAS2,OAS3
    Boolean✓OAS2,OAS3
    Date✓OAS2,OAS3
    DateTime✓OAS2,OAS3
    Password✓OAS2,OAS3
    File✓OAS2
    Uuid✗
    Array✓OAS2,OAS3
    Null✗OAS3
    AnyType✗OAS2,OAS3
    Object✓OAS2,OAS3
    Maps✓ToolingExtension
    CollectionFormat✓OAS2
    CollectionFormatMulti✓OAS2
    Enum✓OAS2,OAS3
    ArrayOfEnum✓ToolingExtension
    ArrayOfModel✓ToolingExtension
    ArrayOfCollectionOfPrimitives✓ToolingExtension
    ArrayOfCollectionOfModel✓ToolingExtension
    ArrayOfCollectionOfEnum✓ToolingExtension
    MapOfEnum✓ToolingExtension
    MapOfModel✓ToolingExtension
    MapOfCollectionOfPrimitives✓ToolingExtension
    MapOfCollectionOfModel✓ToolingExtension
    MapOfCollectionOfEnum✓ToolingExtension

    Documentation Feature​

    NameSupportedDefined By
    Readme✗ToolingExtension
    Model✗ToolingExtension
    Api✗ToolingExtension

    Global Feature​

    NameSupportedDefined By
    Host✗OAS2,OAS3
    BasePath✗OAS2,OAS3
    Info✗OAS2,OAS3
    Schemes✗OAS2,OAS3
    PartialSchemes✗OAS2,OAS3
    Consumes✗OAS2
    Produces✗OAS2
    ExternalDocumentation✗OAS2,OAS3
    Examples✗OAS2,OAS3
    XMLStructureDefinitions✗OAS2,OAS3
    MultiServer✗OAS3
    ParameterizedServer✗OAS3
    ParameterStyling✗OAS3
    Callbacks✗OAS3
    LinkObjects✗OAS3

    Parameter Feature​

    NameSupportedDefined By
    Path✗OAS2,OAS3
    Query✗OAS2,OAS3
    Header✗OAS2,OAS3
    Body✗OAS2
    FormUnencoded✗OAS2
    FormMultipart✗OAS2
    Cookie✗OAS3

    Schema Support Feature​

    NameSupportedDefined By
    Simple✓OAS2,OAS3
    Composite✓OAS2,OAS3
    Polymorphism✗OAS2,OAS3
    Union✗OAS3
    allOf✗OAS2,OAS3
    anyOf✗OAS3
    oneOf✗OAS3
    not✗OAS3

    Security Feature​

    NameSupportedDefined By
    BasicAuth✗OAS2,OAS3
    ApiKey✗OAS2,OAS3
    OpenIDConnect✗OAS3
    BearerToken✗OAS3
    OAuth2_Implicit✗OAS2,OAS3
    OAuth2_Password✗OAS2,OAS3
    OAuth2_ClientCredentials✗OAS2,OAS3
    OAuth2_AuthorizationCode✗OAS2,OAS3
    SignatureAuth✗OAS3
    AWSV4Signature✗ToolingExtension

    Wire Format Feature​

    NameSupportedDefined By
    JSON✗OAS2,OAS3
    XML✗OAS2,OAS3
    PROTOBUF✗ToolingExtension
    Custom✗OAS2,OAS3