Class PluginProtos.CodeGeneratorRequest.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder<MessageType,BuilderType>
com.google.protobuf.GeneratedMessageLite.Builder<PluginProtos.CodeGeneratorRequest,PluginProtos.CodeGeneratorRequest.Builder>
com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder
All Implemented Interfaces:
PluginProtos.CodeGeneratorRequestOrBuilder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, Cloneable
Enclosing class:
PluginProtos.CodeGeneratorRequest

public static final class PluginProtos.CodeGeneratorRequest.Builder extends com.google.protobuf.GeneratedMessageLite.Builder<PluginProtos.CodeGeneratorRequest,PluginProtos.CodeGeneratorRequest.Builder> implements PluginProtos.CodeGeneratorRequestOrBuilder
 An encoded CodeGeneratorRequest is written to the plugin's stdin.
 
Protobuf type google.protobuf.compiler.CodeGeneratorRequest
  • Method Details

    • getFileToGenerateList

      public List<String> getFileToGenerateList()
       The .proto files that were explicitly listed on the command-line.  The
       code generator should generate code only for these files.  Each file's
       descriptor will be included in proto_file, below.
       
      repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
      Specified by:
      getFileToGenerateList in interface PluginProtos.CodeGeneratorRequestOrBuilder
      Returns:
      A list containing the fileToGenerate.
    • getFileToGenerateCount

      public int getFileToGenerateCount()
       The .proto files that were explicitly listed on the command-line.  The
       code generator should generate code only for these files.  Each file's
       descriptor will be included in proto_file, below.
       
      repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
      Specified by:
      getFileToGenerateCount in interface PluginProtos.CodeGeneratorRequestOrBuilder
      Returns:
      The count of fileToGenerate.
    • getFileToGenerate

      public String getFileToGenerate(int index)
       The .proto files that were explicitly listed on the command-line.  The
       code generator should generate code only for these files.  Each file's
       descriptor will be included in proto_file, below.
       
      repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
      Specified by:
      getFileToGenerate in interface PluginProtos.CodeGeneratorRequestOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The fileToGenerate at the given index.
    • getFileToGenerateBytes

      public com.google.protobuf.ByteString getFileToGenerateBytes(int index)
       The .proto files that were explicitly listed on the command-line.  The
       code generator should generate code only for these files.  Each file's
       descriptor will be included in proto_file, below.
       
      repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
      Specified by:
      getFileToGenerateBytes in interface PluginProtos.CodeGeneratorRequestOrBuilder
      Parameters:
      index - The index of the value to return.
      Returns:
      The bytes of the fileToGenerate at the given index.
    • setFileToGenerate

      public PluginProtos.CodeGeneratorRequest.Builder setFileToGenerate(int index, String value)
       The .proto files that were explicitly listed on the command-line.  The
       code generator should generate code only for these files.  Each file's
       descriptor will be included in proto_file, below.
       
      repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
      Parameters:
      index - The index to set the value at.
      value - The fileToGenerate to set.
      Returns:
      This builder for chaining.
    • addFileToGenerate

      public PluginProtos.CodeGeneratorRequest.Builder addFileToGenerate(String value)
       The .proto files that were explicitly listed on the command-line.  The
       code generator should generate code only for these files.  Each file's
       descriptor will be included in proto_file, below.
       
      repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
      Parameters:
      value - The fileToGenerate to add.
      Returns:
      This builder for chaining.
    • addAllFileToGenerate

      public PluginProtos.CodeGeneratorRequest.Builder addAllFileToGenerate(Iterable<String> values)
       The .proto files that were explicitly listed on the command-line.  The
       code generator should generate code only for these files.  Each file's
       descriptor will be included in proto_file, below.
       
      repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
      Parameters:
      values - The fileToGenerate to add.
      Returns:
      This builder for chaining.
    • clearFileToGenerate

      public PluginProtos.CodeGeneratorRequest.Builder clearFileToGenerate()
       The .proto files that were explicitly listed on the command-line.  The
       code generator should generate code only for these files.  Each file's
       descriptor will be included in proto_file, below.
       
      repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
      Returns:
      This builder for chaining.
    • addFileToGenerateBytes

      public PluginProtos.CodeGeneratorRequest.Builder addFileToGenerateBytes(com.google.protobuf.ByteString value)
       The .proto files that were explicitly listed on the command-line.  The
       code generator should generate code only for these files.  Each file's
       descriptor will be included in proto_file, below.
       
      repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
      Parameters:
      value - The bytes of the fileToGenerate to add.
      Returns:
      This builder for chaining.
    • hasParameter

      public boolean hasParameter()
       The generator parameter passed on the command-line.
       
      optional string parameter = 2 [json_name = "parameter"];
      Specified by:
      hasParameter in interface PluginProtos.CodeGeneratorRequestOrBuilder
      Returns:
      Whether the parameter field is set.
    • getParameter

      public String getParameter()
       The generator parameter passed on the command-line.
       
      optional string parameter = 2 [json_name = "parameter"];
      Specified by:
      getParameter in interface PluginProtos.CodeGeneratorRequestOrBuilder
      Returns:
      The parameter.
    • getParameterBytes

      public com.google.protobuf.ByteString getParameterBytes()
       The generator parameter passed on the command-line.
       
      optional string parameter = 2 [json_name = "parameter"];
      Specified by:
      getParameterBytes in interface PluginProtos.CodeGeneratorRequestOrBuilder
      Returns:
      The bytes for parameter.
    • setParameter

       The generator parameter passed on the command-line.
       
      optional string parameter = 2 [json_name = "parameter"];
      Parameters:
      value - The parameter to set.
      Returns:
      This builder for chaining.
    • clearParameter

       The generator parameter passed on the command-line.
       
      optional string parameter = 2 [json_name = "parameter"];
      Returns:
      This builder for chaining.
    • setParameterBytes

      public PluginProtos.CodeGeneratorRequest.Builder setParameterBytes(com.google.protobuf.ByteString value)
       The generator parameter passed on the command-line.
       
      optional string parameter = 2 [json_name = "parameter"];
      Parameters:
      value - The bytes for parameter to set.
      Returns:
      This builder for chaining.
    • getProtoFileList

      public List<DescriptorProtos.FileDescriptorProto> getProtoFileList()
       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
      Specified by:
      getProtoFileList in interface PluginProtos.CodeGeneratorRequestOrBuilder
    • getProtoFileCount

      public int getProtoFileCount()
       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
      Specified by:
      getProtoFileCount in interface PluginProtos.CodeGeneratorRequestOrBuilder
    • getProtoFile

      public DescriptorProtos.FileDescriptorProto getProtoFile(int index)
       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
      Specified by:
      getProtoFile in interface PluginProtos.CodeGeneratorRequestOrBuilder
    • setProtoFile

       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
    • setProtoFile

       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
    • addProtoFile

       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
    • addProtoFile

       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
    • addProtoFile

       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
    • addProtoFile

       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
    • addAllProtoFile

       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
    • clearProtoFile

       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
    • removeProtoFile

      public PluginProtos.CodeGeneratorRequest.Builder removeProtoFile(int index)
       FileDescriptorProtos for all files in files_to_generate and everything
       they import.  The files will appear in topological order, so each file
       appears before any file that imports it.
      
       Note: the files listed in files_to_generate will include runtime-retention
       options only, but all other files will include source-retention options.
       The source_file_descriptors field below is available in case you need
       source-retention options for files_to_generate.
      
       protoc guarantees that all proto_files will be written after
       the fields above, even though this is not technically guaranteed by the
       protobuf wire format.  This theoretically could allow a plugin to stream
       in the FileDescriptorProtos and handle them one by one rather than read
       the entire set into memory at once.  However, as of this writing, this
       is not similarly optimized on protoc's end -- it will store all fields in
       memory at once before sending them to the plugin.
      
       Type names of fields and extensions in the FileDescriptorProto are always
       fully qualified.
       
      repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
    • getSourceFileDescriptorsList

      public List<DescriptorProtos.FileDescriptorProto> getSourceFileDescriptorsList()
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
      Specified by:
      getSourceFileDescriptorsList in interface PluginProtos.CodeGeneratorRequestOrBuilder
    • getSourceFileDescriptorsCount

      public int getSourceFileDescriptorsCount()
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
      Specified by:
      getSourceFileDescriptorsCount in interface PluginProtos.CodeGeneratorRequestOrBuilder
    • getSourceFileDescriptors

      public DescriptorProtos.FileDescriptorProto getSourceFileDescriptors(int index)
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
      Specified by:
      getSourceFileDescriptors in interface PluginProtos.CodeGeneratorRequestOrBuilder
    • setSourceFileDescriptors

      public PluginProtos.CodeGeneratorRequest.Builder setSourceFileDescriptors(int index, DescriptorProtos.FileDescriptorProto value)
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
    • setSourceFileDescriptors

      public PluginProtos.CodeGeneratorRequest.Builder setSourceFileDescriptors(int index, DescriptorProtos.FileDescriptorProto.Builder builderForValue)
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
    • addSourceFileDescriptors

       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
    • addSourceFileDescriptors

      public PluginProtos.CodeGeneratorRequest.Builder addSourceFileDescriptors(int index, DescriptorProtos.FileDescriptorProto value)
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
    • addSourceFileDescriptors

       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
    • addSourceFileDescriptors

      public PluginProtos.CodeGeneratorRequest.Builder addSourceFileDescriptors(int index, DescriptorProtos.FileDescriptorProto.Builder builderForValue)
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
    • addAllSourceFileDescriptors

      public PluginProtos.CodeGeneratorRequest.Builder addAllSourceFileDescriptors(Iterable<? extends DescriptorProtos.FileDescriptorProto> values)
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
    • clearSourceFileDescriptors

      public PluginProtos.CodeGeneratorRequest.Builder clearSourceFileDescriptors()
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
    • removeSourceFileDescriptors

      public PluginProtos.CodeGeneratorRequest.Builder removeSourceFileDescriptors(int index)
       File descriptors with all options, including source-retention options.
       These descriptors are only provided for the files listed in
       files_to_generate.
       
      repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
    • hasCompilerVersion

      public boolean hasCompilerVersion()
       The version number of protocol compiler.
       
      optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
      Specified by:
      hasCompilerVersion in interface PluginProtos.CodeGeneratorRequestOrBuilder
      Returns:
      Whether the compilerVersion field is set.
    • getCompilerVersion

      public PluginProtos.Version getCompilerVersion()
       The version number of protocol compiler.
       
      optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
      Specified by:
      getCompilerVersion in interface PluginProtos.CodeGeneratorRequestOrBuilder
      Returns:
      The compilerVersion.
    • setCompilerVersion

       The version number of protocol compiler.
       
      optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
    • setCompilerVersion

      public PluginProtos.CodeGeneratorRequest.Builder setCompilerVersion(PluginProtos.Version.Builder builderForValue)
       The version number of protocol compiler.
       
      optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
    • mergeCompilerVersion

       The version number of protocol compiler.
       
      optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
    • clearCompilerVersion

      public PluginProtos.CodeGeneratorRequest.Builder clearCompilerVersion()
       The version number of protocol compiler.
       
      optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];