Skip to main content

Documentation for the protobuf-schema Generator

METADATA​

PropertyValueNotes
generator nameprotobuf-schemapass this to the generate command after -g
generator stabilityBETA
generator typeSCHEMA
generator languageProtocol Buffers (Protobuf)
generator default templating enginemustache
helpTxtGenerates gRPC and protocol buffer schema files (beta)

CONFIG OPTIONS​

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

OptionDescriptionValuesDefault
addJsonNameAnnotationAppend "json_name" annotation to message field when the specification name differs from the protobuf field namefalse
aggregateModelsNameAggregated model filename. If set, all generated models will be combined into this single file.null
customOptionsApiCustom options for the api files.null
customOptionsModelCustom options for the model files.null
extractEnumsToSeparateFilesExtract enums to separate protobuf files and import them in modelsfalse
numberedFieldNumberListField numbers in order.false
startEnumsWithUnspecifiedIntroduces "UNSPECIFIED" as the first element of enumerations.false
supportMultipleResponsesSupport multiple responsestrue
useSimplifiedEnumNamesUse a simple name for enumsfalse
wrapComplexTypeGenerate Additional message for complex typetrue

IMPORT MAPPING​

Type/AliasImports

INSTANTIATION TYPES​

Type/AliasInstantiated By
arrayrepeat
setrepeat

LANGUAGE PRIMITIVES​

  • array
  • bool
  • bytes
  • double
  • fixed32
  • fixed64
  • float
  • int32
  • int64
  • map
  • set
  • sfixed32
  • sfixed64
  • sint32
  • sint64
  • string
  • uint32
  • uint64

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