// source: google/api/client.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {messageConventions} JS Compiler reports an error if a variable or
 *     field starts with 'MSG_' and isn't a translatable message.
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!

var jspb = require('google-protobuf');
var goog = jspb;
var global = Function('return this')();

var google_api_launch_stage_pb = require('../../google/api/launch_stage_pb.js');
goog.object.extend(proto, google_api_launch_stage_pb);
var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js');
goog.object.extend(proto, google_protobuf_descriptor_pb);
var google_protobuf_duration_pb = require('google-protobuf/google/protobuf/duration_pb.js');
goog.object.extend(proto, google_protobuf_duration_pb);
goog.exportSymbol('proto.google.api.ClientLibraryDestination', null, global);
goog.exportSymbol('proto.google.api.ClientLibraryOrganization', null, global);
goog.exportSymbol('proto.google.api.ClientLibrarySettings', null, global);
goog.exportSymbol('proto.google.api.CommonLanguageSettings', null, global);
goog.exportSymbol('proto.google.api.CppSettings', null, global);
goog.exportSymbol('proto.google.api.DotnetSettings', null, global);
goog.exportSymbol('proto.google.api.GoSettings', null, global);
goog.exportSymbol('proto.google.api.JavaSettings', null, global);
goog.exportSymbol('proto.google.api.MethodSettings', null, global);
goog.exportSymbol('proto.google.api.MethodSettings.LongRunning', null, global);
goog.exportSymbol('proto.google.api.NodeSettings', null, global);
goog.exportSymbol('proto.google.api.PhpSettings', null, global);
goog.exportSymbol('proto.google.api.Publishing', null, global);
goog.exportSymbol('proto.google.api.PythonSettings', null, global);
goog.exportSymbol('proto.google.api.RubySettings', null, global);
goog.exportSymbol('proto.google.api.defaultHost', null, global);
goog.exportSymbol('proto.google.api.methodSignatureList', null, global);
goog.exportSymbol('proto.google.api.oauthScopes', null, global);
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.CommonLanguageSettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.CommonLanguageSettings.repeatedFields_, null);
};
goog.inherits(proto.google.api.CommonLanguageSettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.CommonLanguageSettings.displayName = 'proto.google.api.CommonLanguageSettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.ClientLibrarySettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.ClientLibrarySettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.ClientLibrarySettings.displayName = 'proto.google.api.ClientLibrarySettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.Publishing = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Publishing.repeatedFields_, null);
};
goog.inherits(proto.google.api.Publishing, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.Publishing.displayName = 'proto.google.api.Publishing';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.JavaSettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.JavaSettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.JavaSettings.displayName = 'proto.google.api.JavaSettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.CppSettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.CppSettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.CppSettings.displayName = 'proto.google.api.CppSettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.PhpSettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.PhpSettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.PhpSettings.displayName = 'proto.google.api.PhpSettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.PythonSettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.PythonSettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.PythonSettings.displayName = 'proto.google.api.PythonSettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.NodeSettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.NodeSettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.NodeSettings.displayName = 'proto.google.api.NodeSettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.DotnetSettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.DotnetSettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.DotnetSettings.displayName = 'proto.google.api.DotnetSettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.RubySettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.RubySettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.RubySettings.displayName = 'proto.google.api.RubySettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.GoSettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.GoSettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.GoSettings.displayName = 'proto.google.api.GoSettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.MethodSettings = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.MethodSettings, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.MethodSettings.displayName = 'proto.google.api.MethodSettings';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.google.api.MethodSettings.LongRunning = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.api.MethodSettings.LongRunning, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.google.api.MethodSettings.LongRunning.displayName = 'proto.google.api.MethodSettings.LongRunning';
}

/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.google.api.CommonLanguageSettings.repeatedFields_ = [2];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.CommonLanguageSettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.CommonLanguageSettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.CommonLanguageSettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.CommonLanguageSettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    referenceDocsUri: jspb.Message.getFieldWithDefault(msg, 1, ""),
    destinationsList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.CommonLanguageSettings}
 */
proto.google.api.CommonLanguageSettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.CommonLanguageSettings;
  return proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.CommonLanguageSettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.CommonLanguageSettings}
 */
proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setReferenceDocsUri(value);
      break;
    case 2:
      var value = /** @type {!Array<!proto.google.api.ClientLibraryDestination>} */ (reader.readPackedEnum());
      msg.setDestinationsList(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.CommonLanguageSettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.CommonLanguageSettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.CommonLanguageSettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.CommonLanguageSettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getReferenceDocsUri();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getDestinationsList();
  if (f.length > 0) {
    writer.writePackedEnum(
      2,
      f
    );
  }
};


/**
 * optional string reference_docs_uri = 1;
 * @return {string}
 */
proto.google.api.CommonLanguageSettings.prototype.getReferenceDocsUri = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.google.api.CommonLanguageSettings} returns this
 */
proto.google.api.CommonLanguageSettings.prototype.setReferenceDocsUri = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * repeated ClientLibraryDestination destinations = 2;
 * @return {!Array<!proto.google.api.ClientLibraryDestination>}
 */
proto.google.api.CommonLanguageSettings.prototype.getDestinationsList = function() {
  return /** @type {!Array<!proto.google.api.ClientLibraryDestination>} */ (jspb.Message.getRepeatedField(this, 2));
};


/**
 * @param {!Array<!proto.google.api.ClientLibraryDestination>} value
 * @return {!proto.google.api.CommonLanguageSettings} returns this
 */
proto.google.api.CommonLanguageSettings.prototype.setDestinationsList = function(value) {
  return jspb.Message.setField(this, 2, value || []);
};


/**
 * @param {!proto.google.api.ClientLibraryDestination} value
 * @param {number=} opt_index
 * @return {!proto.google.api.CommonLanguageSettings} returns this
 */
proto.google.api.CommonLanguageSettings.prototype.addDestinations = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.google.api.CommonLanguageSettings} returns this
 */
proto.google.api.CommonLanguageSettings.prototype.clearDestinationsList = function() {
  return this.setDestinationsList([]);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.ClientLibrarySettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.ClientLibrarySettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.ClientLibrarySettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.ClientLibrarySettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    version: jspb.Message.getFieldWithDefault(msg, 1, ""),
    launchStage: jspb.Message.getFieldWithDefault(msg, 2, 0),
    restNumericEnums: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
    javaSettings: (f = msg.getJavaSettings()) && proto.google.api.JavaSettings.toObject(includeInstance, f),
    cppSettings: (f = msg.getCppSettings()) && proto.google.api.CppSettings.toObject(includeInstance, f),
    phpSettings: (f = msg.getPhpSettings()) && proto.google.api.PhpSettings.toObject(includeInstance, f),
    pythonSettings: (f = msg.getPythonSettings()) && proto.google.api.PythonSettings.toObject(includeInstance, f),
    nodeSettings: (f = msg.getNodeSettings()) && proto.google.api.NodeSettings.toObject(includeInstance, f),
    dotnetSettings: (f = msg.getDotnetSettings()) && proto.google.api.DotnetSettings.toObject(includeInstance, f),
    rubySettings: (f = msg.getRubySettings()) && proto.google.api.RubySettings.toObject(includeInstance, f),
    goSettings: (f = msg.getGoSettings()) && proto.google.api.GoSettings.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.ClientLibrarySettings}
 */
proto.google.api.ClientLibrarySettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.ClientLibrarySettings;
  return proto.google.api.ClientLibrarySettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.ClientLibrarySettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.ClientLibrarySettings}
 */
proto.google.api.ClientLibrarySettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setVersion(value);
      break;
    case 2:
      var value = /** @type {!proto.google.api.LaunchStage} */ (reader.readEnum());
      msg.setLaunchStage(value);
      break;
    case 3:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setRestNumericEnums(value);
      break;
    case 21:
      var value = new proto.google.api.JavaSettings;
      reader.readMessage(value,proto.google.api.JavaSettings.deserializeBinaryFromReader);
      msg.setJavaSettings(value);
      break;
    case 22:
      var value = new proto.google.api.CppSettings;
      reader.readMessage(value,proto.google.api.CppSettings.deserializeBinaryFromReader);
      msg.setCppSettings(value);
      break;
    case 23:
      var value = new proto.google.api.PhpSettings;
      reader.readMessage(value,proto.google.api.PhpSettings.deserializeBinaryFromReader);
      msg.setPhpSettings(value);
      break;
    case 24:
      var value = new proto.google.api.PythonSettings;
      reader.readMessage(value,proto.google.api.PythonSettings.deserializeBinaryFromReader);
      msg.setPythonSettings(value);
      break;
    case 25:
      var value = new proto.google.api.NodeSettings;
      reader.readMessage(value,proto.google.api.NodeSettings.deserializeBinaryFromReader);
      msg.setNodeSettings(value);
      break;
    case 26:
      var value = new proto.google.api.DotnetSettings;
      reader.readMessage(value,proto.google.api.DotnetSettings.deserializeBinaryFromReader);
      msg.setDotnetSettings(value);
      break;
    case 27:
      var value = new proto.google.api.RubySettings;
      reader.readMessage(value,proto.google.api.RubySettings.deserializeBinaryFromReader);
      msg.setRubySettings(value);
      break;
    case 28:
      var value = new proto.google.api.GoSettings;
      reader.readMessage(value,proto.google.api.GoSettings.deserializeBinaryFromReader);
      msg.setGoSettings(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.ClientLibrarySettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.ClientLibrarySettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.ClientLibrarySettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.ClientLibrarySettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getVersion();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getLaunchStage();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
  f = message.getRestNumericEnums();
  if (f) {
    writer.writeBool(
      3,
      f
    );
  }
  f = message.getJavaSettings();
  if (f != null) {
    writer.writeMessage(
      21,
      f,
      proto.google.api.JavaSettings.serializeBinaryToWriter
    );
  }
  f = message.getCppSettings();
  if (f != null) {
    writer.writeMessage(
      22,
      f,
      proto.google.api.CppSettings.serializeBinaryToWriter
    );
  }
  f = message.getPhpSettings();
  if (f != null) {
    writer.writeMessage(
      23,
      f,
      proto.google.api.PhpSettings.serializeBinaryToWriter
    );
  }
  f = message.getPythonSettings();
  if (f != null) {
    writer.writeMessage(
      24,
      f,
      proto.google.api.PythonSettings.serializeBinaryToWriter
    );
  }
  f = message.getNodeSettings();
  if (f != null) {
    writer.writeMessage(
      25,
      f,
      proto.google.api.NodeSettings.serializeBinaryToWriter
    );
  }
  f = message.getDotnetSettings();
  if (f != null) {
    writer.writeMessage(
      26,
      f,
      proto.google.api.DotnetSettings.serializeBinaryToWriter
    );
  }
  f = message.getRubySettings();
  if (f != null) {
    writer.writeMessage(
      27,
      f,
      proto.google.api.RubySettings.serializeBinaryToWriter
    );
  }
  f = message.getGoSettings();
  if (f != null) {
    writer.writeMessage(
      28,
      f,
      proto.google.api.GoSettings.serializeBinaryToWriter
    );
  }
};


/**
 * optional string version = 1;
 * @return {string}
 */
proto.google.api.ClientLibrarySettings.prototype.getVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.setVersion = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional LaunchStage launch_stage = 2;
 * @return {!proto.google.api.LaunchStage}
 */
proto.google.api.ClientLibrarySettings.prototype.getLaunchStage = function() {
  return /** @type {!proto.google.api.LaunchStage} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {!proto.google.api.LaunchStage} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.setLaunchStage = function(value) {
  return jspb.Message.setProto3EnumField(this, 2, value);
};


/**
 * optional bool rest_numeric_enums = 3;
 * @return {boolean}
 */
proto.google.api.ClientLibrarySettings.prototype.getRestNumericEnums = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
};


/**
 * @param {boolean} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.setRestNumericEnums = function(value) {
  return jspb.Message.setProto3BooleanField(this, 3, value);
};


/**
 * optional JavaSettings java_settings = 21;
 * @return {?proto.google.api.JavaSettings}
 */
proto.google.api.ClientLibrarySettings.prototype.getJavaSettings = function() {
  return /** @type{?proto.google.api.JavaSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.JavaSettings, 21));
};


/**
 * @param {?proto.google.api.JavaSettings|undefined} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
*/
proto.google.api.ClientLibrarySettings.prototype.setJavaSettings = function(value) {
  return jspb.Message.setWrapperField(this, 21, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.clearJavaSettings = function() {
  return this.setJavaSettings(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.ClientLibrarySettings.prototype.hasJavaSettings = function() {
  return jspb.Message.getField(this, 21) != null;
};


/**
 * optional CppSettings cpp_settings = 22;
 * @return {?proto.google.api.CppSettings}
 */
proto.google.api.ClientLibrarySettings.prototype.getCppSettings = function() {
  return /** @type{?proto.google.api.CppSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.CppSettings, 22));
};


/**
 * @param {?proto.google.api.CppSettings|undefined} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
*/
proto.google.api.ClientLibrarySettings.prototype.setCppSettings = function(value) {
  return jspb.Message.setWrapperField(this, 22, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.clearCppSettings = function() {
  return this.setCppSettings(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.ClientLibrarySettings.prototype.hasCppSettings = function() {
  return jspb.Message.getField(this, 22) != null;
};


/**
 * optional PhpSettings php_settings = 23;
 * @return {?proto.google.api.PhpSettings}
 */
proto.google.api.ClientLibrarySettings.prototype.getPhpSettings = function() {
  return /** @type{?proto.google.api.PhpSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.PhpSettings, 23));
};


/**
 * @param {?proto.google.api.PhpSettings|undefined} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
*/
proto.google.api.ClientLibrarySettings.prototype.setPhpSettings = function(value) {
  return jspb.Message.setWrapperField(this, 23, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.clearPhpSettings = function() {
  return this.setPhpSettings(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.ClientLibrarySettings.prototype.hasPhpSettings = function() {
  return jspb.Message.getField(this, 23) != null;
};


/**
 * optional PythonSettings python_settings = 24;
 * @return {?proto.google.api.PythonSettings}
 */
proto.google.api.ClientLibrarySettings.prototype.getPythonSettings = function() {
  return /** @type{?proto.google.api.PythonSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.PythonSettings, 24));
};


/**
 * @param {?proto.google.api.PythonSettings|undefined} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
*/
proto.google.api.ClientLibrarySettings.prototype.setPythonSettings = function(value) {
  return jspb.Message.setWrapperField(this, 24, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.clearPythonSettings = function() {
  return this.setPythonSettings(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.ClientLibrarySettings.prototype.hasPythonSettings = function() {
  return jspb.Message.getField(this, 24) != null;
};


/**
 * optional NodeSettings node_settings = 25;
 * @return {?proto.google.api.NodeSettings}
 */
proto.google.api.ClientLibrarySettings.prototype.getNodeSettings = function() {
  return /** @type{?proto.google.api.NodeSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.NodeSettings, 25));
};


/**
 * @param {?proto.google.api.NodeSettings|undefined} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
*/
proto.google.api.ClientLibrarySettings.prototype.setNodeSettings = function(value) {
  return jspb.Message.setWrapperField(this, 25, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.clearNodeSettings = function() {
  return this.setNodeSettings(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.ClientLibrarySettings.prototype.hasNodeSettings = function() {
  return jspb.Message.getField(this, 25) != null;
};


/**
 * optional DotnetSettings dotnet_settings = 26;
 * @return {?proto.google.api.DotnetSettings}
 */
proto.google.api.ClientLibrarySettings.prototype.getDotnetSettings = function() {
  return /** @type{?proto.google.api.DotnetSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.DotnetSettings, 26));
};


/**
 * @param {?proto.google.api.DotnetSettings|undefined} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
*/
proto.google.api.ClientLibrarySettings.prototype.setDotnetSettings = function(value) {
  return jspb.Message.setWrapperField(this, 26, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.clearDotnetSettings = function() {
  return this.setDotnetSettings(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.ClientLibrarySettings.prototype.hasDotnetSettings = function() {
  return jspb.Message.getField(this, 26) != null;
};


/**
 * optional RubySettings ruby_settings = 27;
 * @return {?proto.google.api.RubySettings}
 */
proto.google.api.ClientLibrarySettings.prototype.getRubySettings = function() {
  return /** @type{?proto.google.api.RubySettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.RubySettings, 27));
};


/**
 * @param {?proto.google.api.RubySettings|undefined} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
*/
proto.google.api.ClientLibrarySettings.prototype.setRubySettings = function(value) {
  return jspb.Message.setWrapperField(this, 27, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.clearRubySettings = function() {
  return this.setRubySettings(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.ClientLibrarySettings.prototype.hasRubySettings = function() {
  return jspb.Message.getField(this, 27) != null;
};


/**
 * optional GoSettings go_settings = 28;
 * @return {?proto.google.api.GoSettings}
 */
proto.google.api.ClientLibrarySettings.prototype.getGoSettings = function() {
  return /** @type{?proto.google.api.GoSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.GoSettings, 28));
};


/**
 * @param {?proto.google.api.GoSettings|undefined} value
 * @return {!proto.google.api.ClientLibrarySettings} returns this
*/
proto.google.api.ClientLibrarySettings.prototype.setGoSettings = function(value) {
  return jspb.Message.setWrapperField(this, 28, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.ClientLibrarySettings} returns this
 */
proto.google.api.ClientLibrarySettings.prototype.clearGoSettings = function() {
  return this.setGoSettings(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.ClientLibrarySettings.prototype.hasGoSettings = function() {
  return jspb.Message.getField(this, 28) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.google.api.Publishing.repeatedFields_ = [2,105,109];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.Publishing.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.Publishing.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.Publishing} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.Publishing.toObject = function(includeInstance, msg) {
  var f, obj = {
    methodSettingsList: jspb.Message.toObjectList(msg.getMethodSettingsList(),
    proto.google.api.MethodSettings.toObject, includeInstance),
    newIssueUri: jspb.Message.getFieldWithDefault(msg, 101, ""),
    documentationUri: jspb.Message.getFieldWithDefault(msg, 102, ""),
    apiShortName: jspb.Message.getFieldWithDefault(msg, 103, ""),
    githubLabel: jspb.Message.getFieldWithDefault(msg, 104, ""),
    codeownerGithubTeamsList: (f = jspb.Message.getRepeatedField(msg, 105)) == null ? undefined : f,
    docTagPrefix: jspb.Message.getFieldWithDefault(msg, 106, ""),
    organization: jspb.Message.getFieldWithDefault(msg, 107, 0),
    librarySettingsList: jspb.Message.toObjectList(msg.getLibrarySettingsList(),
    proto.google.api.ClientLibrarySettings.toObject, includeInstance)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.Publishing}
 */
proto.google.api.Publishing.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.Publishing;
  return proto.google.api.Publishing.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.Publishing} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.Publishing}
 */
proto.google.api.Publishing.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 2:
      var value = new proto.google.api.MethodSettings;
      reader.readMessage(value,proto.google.api.MethodSettings.deserializeBinaryFromReader);
      msg.addMethodSettings(value);
      break;
    case 101:
      var value = /** @type {string} */ (reader.readString());
      msg.setNewIssueUri(value);
      break;
    case 102:
      var value = /** @type {string} */ (reader.readString());
      msg.setDocumentationUri(value);
      break;
    case 103:
      var value = /** @type {string} */ (reader.readString());
      msg.setApiShortName(value);
      break;
    case 104:
      var value = /** @type {string} */ (reader.readString());
      msg.setGithubLabel(value);
      break;
    case 105:
      var value = /** @type {string} */ (reader.readString());
      msg.addCodeownerGithubTeams(value);
      break;
    case 106:
      var value = /** @type {string} */ (reader.readString());
      msg.setDocTagPrefix(value);
      break;
    case 107:
      var value = /** @type {!proto.google.api.ClientLibraryOrganization} */ (reader.readEnum());
      msg.setOrganization(value);
      break;
    case 109:
      var value = new proto.google.api.ClientLibrarySettings;
      reader.readMessage(value,proto.google.api.ClientLibrarySettings.deserializeBinaryFromReader);
      msg.addLibrarySettings(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.Publishing.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.Publishing.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.Publishing} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.Publishing.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMethodSettingsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.google.api.MethodSettings.serializeBinaryToWriter
    );
  }
  f = message.getNewIssueUri();
  if (f.length > 0) {
    writer.writeString(
      101,
      f
    );
  }
  f = message.getDocumentationUri();
  if (f.length > 0) {
    writer.writeString(
      102,
      f
    );
  }
  f = message.getApiShortName();
  if (f.length > 0) {
    writer.writeString(
      103,
      f
    );
  }
  f = message.getGithubLabel();
  if (f.length > 0) {
    writer.writeString(
      104,
      f
    );
  }
  f = message.getCodeownerGithubTeamsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      105,
      f
    );
  }
  f = message.getDocTagPrefix();
  if (f.length > 0) {
    writer.writeString(
      106,
      f
    );
  }
  f = message.getOrganization();
  if (f !== 0.0) {
    writer.writeEnum(
      107,
      f
    );
  }
  f = message.getLibrarySettingsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      109,
      f,
      proto.google.api.ClientLibrarySettings.serializeBinaryToWriter
    );
  }
};


/**
 * repeated MethodSettings method_settings = 2;
 * @return {!Array<!proto.google.api.MethodSettings>}
 */
proto.google.api.Publishing.prototype.getMethodSettingsList = function() {
  return /** @type{!Array<!proto.google.api.MethodSettings>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.google.api.MethodSettings, 2));
};


/**
 * @param {!Array<!proto.google.api.MethodSettings>} value
 * @return {!proto.google.api.Publishing} returns this
*/
proto.google.api.Publishing.prototype.setMethodSettingsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.google.api.MethodSettings=} opt_value
 * @param {number=} opt_index
 * @return {!proto.google.api.MethodSettings}
 */
proto.google.api.Publishing.prototype.addMethodSettings = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.google.api.MethodSettings, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.clearMethodSettingsList = function() {
  return this.setMethodSettingsList([]);
};


/**
 * optional string new_issue_uri = 101;
 * @return {string}
 */
proto.google.api.Publishing.prototype.getNewIssueUri = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 101, ""));
};


/**
 * @param {string} value
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.setNewIssueUri = function(value) {
  return jspb.Message.setProto3StringField(this, 101, value);
};


/**
 * optional string documentation_uri = 102;
 * @return {string}
 */
proto.google.api.Publishing.prototype.getDocumentationUri = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 102, ""));
};


/**
 * @param {string} value
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.setDocumentationUri = function(value) {
  return jspb.Message.setProto3StringField(this, 102, value);
};


/**
 * optional string api_short_name = 103;
 * @return {string}
 */
proto.google.api.Publishing.prototype.getApiShortName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 103, ""));
};


/**
 * @param {string} value
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.setApiShortName = function(value) {
  return jspb.Message.setProto3StringField(this, 103, value);
};


/**
 * optional string github_label = 104;
 * @return {string}
 */
proto.google.api.Publishing.prototype.getGithubLabel = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 104, ""));
};


/**
 * @param {string} value
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.setGithubLabel = function(value) {
  return jspb.Message.setProto3StringField(this, 104, value);
};


/**
 * repeated string codeowner_github_teams = 105;
 * @return {!Array<string>}
 */
proto.google.api.Publishing.prototype.getCodeownerGithubTeamsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 105));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.setCodeownerGithubTeamsList = function(value) {
  return jspb.Message.setField(this, 105, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.addCodeownerGithubTeams = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 105, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.clearCodeownerGithubTeamsList = function() {
  return this.setCodeownerGithubTeamsList([]);
};


/**
 * optional string doc_tag_prefix = 106;
 * @return {string}
 */
proto.google.api.Publishing.prototype.getDocTagPrefix = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 106, ""));
};


/**
 * @param {string} value
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.setDocTagPrefix = function(value) {
  return jspb.Message.setProto3StringField(this, 106, value);
};


/**
 * optional ClientLibraryOrganization organization = 107;
 * @return {!proto.google.api.ClientLibraryOrganization}
 */
proto.google.api.Publishing.prototype.getOrganization = function() {
  return /** @type {!proto.google.api.ClientLibraryOrganization} */ (jspb.Message.getFieldWithDefault(this, 107, 0));
};


/**
 * @param {!proto.google.api.ClientLibraryOrganization} value
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.setOrganization = function(value) {
  return jspb.Message.setProto3EnumField(this, 107, value);
};


/**
 * repeated ClientLibrarySettings library_settings = 109;
 * @return {!Array<!proto.google.api.ClientLibrarySettings>}
 */
proto.google.api.Publishing.prototype.getLibrarySettingsList = function() {
  return /** @type{!Array<!proto.google.api.ClientLibrarySettings>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.google.api.ClientLibrarySettings, 109));
};


/**
 * @param {!Array<!proto.google.api.ClientLibrarySettings>} value
 * @return {!proto.google.api.Publishing} returns this
*/
proto.google.api.Publishing.prototype.setLibrarySettingsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 109, value);
};


/**
 * @param {!proto.google.api.ClientLibrarySettings=} opt_value
 * @param {number=} opt_index
 * @return {!proto.google.api.ClientLibrarySettings}
 */
proto.google.api.Publishing.prototype.addLibrarySettings = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 109, opt_value, proto.google.api.ClientLibrarySettings, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.google.api.Publishing} returns this
 */
proto.google.api.Publishing.prototype.clearLibrarySettingsList = function() {
  return this.setLibrarySettingsList([]);
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.JavaSettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.JavaSettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.JavaSettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.JavaSettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    libraryPackage: jspb.Message.getFieldWithDefault(msg, 1, ""),
    serviceClassNamesMap: (f = msg.getServiceClassNamesMap()) ? f.toObject(includeInstance, undefined) : [],
    common: (f = msg.getCommon()) && proto.google.api.CommonLanguageSettings.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.JavaSettings}
 */
proto.google.api.JavaSettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.JavaSettings;
  return proto.google.api.JavaSettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.JavaSettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.JavaSettings}
 */
proto.google.api.JavaSettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setLibraryPackage(value);
      break;
    case 2:
      var value = msg.getServiceClassNamesMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
         });
      break;
    case 3:
      var value = new proto.google.api.CommonLanguageSettings;
      reader.readMessage(value,proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader);
      msg.setCommon(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.JavaSettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.JavaSettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.JavaSettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.JavaSettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getLibraryPackage();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getServiceClassNamesMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(2, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
  }
  f = message.getCommon();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      proto.google.api.CommonLanguageSettings.serializeBinaryToWriter
    );
  }
};


/**
 * optional string library_package = 1;
 * @return {string}
 */
proto.google.api.JavaSettings.prototype.getLibraryPackage = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.google.api.JavaSettings} returns this
 */
proto.google.api.JavaSettings.prototype.setLibraryPackage = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * map<string, string> service_class_names = 2;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,string>}
 */
proto.google.api.JavaSettings.prototype.getServiceClassNamesMap = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,string>} */ (
      jspb.Message.getMapField(this, 2, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.google.api.JavaSettings} returns this
 */
proto.google.api.JavaSettings.prototype.clearServiceClassNamesMap = function() {
  this.getServiceClassNamesMap().clear();
  return this;};


/**
 * optional CommonLanguageSettings common = 3;
 * @return {?proto.google.api.CommonLanguageSettings}
 */
proto.google.api.JavaSettings.prototype.getCommon = function() {
  return /** @type{?proto.google.api.CommonLanguageSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.CommonLanguageSettings, 3));
};


/**
 * @param {?proto.google.api.CommonLanguageSettings|undefined} value
 * @return {!proto.google.api.JavaSettings} returns this
*/
proto.google.api.JavaSettings.prototype.setCommon = function(value) {
  return jspb.Message.setWrapperField(this, 3, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.JavaSettings} returns this
 */
proto.google.api.JavaSettings.prototype.clearCommon = function() {
  return this.setCommon(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.JavaSettings.prototype.hasCommon = function() {
  return jspb.Message.getField(this, 3) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.CppSettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.CppSettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.CppSettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.CppSettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    common: (f = msg.getCommon()) && proto.google.api.CommonLanguageSettings.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.CppSettings}
 */
proto.google.api.CppSettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.CppSettings;
  return proto.google.api.CppSettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.CppSettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.CppSettings}
 */
proto.google.api.CppSettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.google.api.CommonLanguageSettings;
      reader.readMessage(value,proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader);
      msg.setCommon(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.CppSettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.CppSettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.CppSettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.CppSettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCommon();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.google.api.CommonLanguageSettings.serializeBinaryToWriter
    );
  }
};


/**
 * optional CommonLanguageSettings common = 1;
 * @return {?proto.google.api.CommonLanguageSettings}
 */
proto.google.api.CppSettings.prototype.getCommon = function() {
  return /** @type{?proto.google.api.CommonLanguageSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.CommonLanguageSettings, 1));
};


/**
 * @param {?proto.google.api.CommonLanguageSettings|undefined} value
 * @return {!proto.google.api.CppSettings} returns this
*/
proto.google.api.CppSettings.prototype.setCommon = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.CppSettings} returns this
 */
proto.google.api.CppSettings.prototype.clearCommon = function() {
  return this.setCommon(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.CppSettings.prototype.hasCommon = function() {
  return jspb.Message.getField(this, 1) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.PhpSettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.PhpSettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.PhpSettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.PhpSettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    common: (f = msg.getCommon()) && proto.google.api.CommonLanguageSettings.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.PhpSettings}
 */
proto.google.api.PhpSettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.PhpSettings;
  return proto.google.api.PhpSettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.PhpSettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.PhpSettings}
 */
proto.google.api.PhpSettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.google.api.CommonLanguageSettings;
      reader.readMessage(value,proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader);
      msg.setCommon(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.PhpSettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.PhpSettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.PhpSettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.PhpSettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCommon();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.google.api.CommonLanguageSettings.serializeBinaryToWriter
    );
  }
};


/**
 * optional CommonLanguageSettings common = 1;
 * @return {?proto.google.api.CommonLanguageSettings}
 */
proto.google.api.PhpSettings.prototype.getCommon = function() {
  return /** @type{?proto.google.api.CommonLanguageSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.CommonLanguageSettings, 1));
};


/**
 * @param {?proto.google.api.CommonLanguageSettings|undefined} value
 * @return {!proto.google.api.PhpSettings} returns this
*/
proto.google.api.PhpSettings.prototype.setCommon = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.PhpSettings} returns this
 */
proto.google.api.PhpSettings.prototype.clearCommon = function() {
  return this.setCommon(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.PhpSettings.prototype.hasCommon = function() {
  return jspb.Message.getField(this, 1) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.PythonSettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.PythonSettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.PythonSettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.PythonSettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    common: (f = msg.getCommon()) && proto.google.api.CommonLanguageSettings.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.PythonSettings}
 */
proto.google.api.PythonSettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.PythonSettings;
  return proto.google.api.PythonSettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.PythonSettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.PythonSettings}
 */
proto.google.api.PythonSettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.google.api.CommonLanguageSettings;
      reader.readMessage(value,proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader);
      msg.setCommon(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.PythonSettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.PythonSettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.PythonSettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.PythonSettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCommon();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.google.api.CommonLanguageSettings.serializeBinaryToWriter
    );
  }
};


/**
 * optional CommonLanguageSettings common = 1;
 * @return {?proto.google.api.CommonLanguageSettings}
 */
proto.google.api.PythonSettings.prototype.getCommon = function() {
  return /** @type{?proto.google.api.CommonLanguageSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.CommonLanguageSettings, 1));
};


/**
 * @param {?proto.google.api.CommonLanguageSettings|undefined} value
 * @return {!proto.google.api.PythonSettings} returns this
*/
proto.google.api.PythonSettings.prototype.setCommon = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.PythonSettings} returns this
 */
proto.google.api.PythonSettings.prototype.clearCommon = function() {
  return this.setCommon(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.PythonSettings.prototype.hasCommon = function() {
  return jspb.Message.getField(this, 1) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.NodeSettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.NodeSettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.NodeSettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.NodeSettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    common: (f = msg.getCommon()) && proto.google.api.CommonLanguageSettings.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.NodeSettings}
 */
proto.google.api.NodeSettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.NodeSettings;
  return proto.google.api.NodeSettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.NodeSettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.NodeSettings}
 */
proto.google.api.NodeSettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.google.api.CommonLanguageSettings;
      reader.readMessage(value,proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader);
      msg.setCommon(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.NodeSettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.NodeSettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.NodeSettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.NodeSettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCommon();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.google.api.CommonLanguageSettings.serializeBinaryToWriter
    );
  }
};


/**
 * optional CommonLanguageSettings common = 1;
 * @return {?proto.google.api.CommonLanguageSettings}
 */
proto.google.api.NodeSettings.prototype.getCommon = function() {
  return /** @type{?proto.google.api.CommonLanguageSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.CommonLanguageSettings, 1));
};


/**
 * @param {?proto.google.api.CommonLanguageSettings|undefined} value
 * @return {!proto.google.api.NodeSettings} returns this
*/
proto.google.api.NodeSettings.prototype.setCommon = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.NodeSettings} returns this
 */
proto.google.api.NodeSettings.prototype.clearCommon = function() {
  return this.setCommon(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.NodeSettings.prototype.hasCommon = function() {
  return jspb.Message.getField(this, 1) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.DotnetSettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.DotnetSettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.DotnetSettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.DotnetSettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    common: (f = msg.getCommon()) && proto.google.api.CommonLanguageSettings.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.DotnetSettings}
 */
proto.google.api.DotnetSettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.DotnetSettings;
  return proto.google.api.DotnetSettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.DotnetSettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.DotnetSettings}
 */
proto.google.api.DotnetSettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.google.api.CommonLanguageSettings;
      reader.readMessage(value,proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader);
      msg.setCommon(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.DotnetSettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.DotnetSettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.DotnetSettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.DotnetSettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCommon();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.google.api.CommonLanguageSettings.serializeBinaryToWriter
    );
  }
};


/**
 * optional CommonLanguageSettings common = 1;
 * @return {?proto.google.api.CommonLanguageSettings}
 */
proto.google.api.DotnetSettings.prototype.getCommon = function() {
  return /** @type{?proto.google.api.CommonLanguageSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.CommonLanguageSettings, 1));
};


/**
 * @param {?proto.google.api.CommonLanguageSettings|undefined} value
 * @return {!proto.google.api.DotnetSettings} returns this
*/
proto.google.api.DotnetSettings.prototype.setCommon = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.DotnetSettings} returns this
 */
proto.google.api.DotnetSettings.prototype.clearCommon = function() {
  return this.setCommon(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.DotnetSettings.prototype.hasCommon = function() {
  return jspb.Message.getField(this, 1) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.RubySettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.RubySettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.RubySettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.RubySettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    common: (f = msg.getCommon()) && proto.google.api.CommonLanguageSettings.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.RubySettings}
 */
proto.google.api.RubySettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.RubySettings;
  return proto.google.api.RubySettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.RubySettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.RubySettings}
 */
proto.google.api.RubySettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.google.api.CommonLanguageSettings;
      reader.readMessage(value,proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader);
      msg.setCommon(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.RubySettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.RubySettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.RubySettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.RubySettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCommon();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.google.api.CommonLanguageSettings.serializeBinaryToWriter
    );
  }
};


/**
 * optional CommonLanguageSettings common = 1;
 * @return {?proto.google.api.CommonLanguageSettings}
 */
proto.google.api.RubySettings.prototype.getCommon = function() {
  return /** @type{?proto.google.api.CommonLanguageSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.CommonLanguageSettings, 1));
};


/**
 * @param {?proto.google.api.CommonLanguageSettings|undefined} value
 * @return {!proto.google.api.RubySettings} returns this
*/
proto.google.api.RubySettings.prototype.setCommon = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.RubySettings} returns this
 */
proto.google.api.RubySettings.prototype.clearCommon = function() {
  return this.setCommon(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.RubySettings.prototype.hasCommon = function() {
  return jspb.Message.getField(this, 1) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.GoSettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.GoSettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.GoSettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.GoSettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    common: (f = msg.getCommon()) && proto.google.api.CommonLanguageSettings.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.GoSettings}
 */
proto.google.api.GoSettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.GoSettings;
  return proto.google.api.GoSettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.GoSettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.GoSettings}
 */
proto.google.api.GoSettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.google.api.CommonLanguageSettings;
      reader.readMessage(value,proto.google.api.CommonLanguageSettings.deserializeBinaryFromReader);
      msg.setCommon(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.GoSettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.GoSettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.GoSettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.GoSettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCommon();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.google.api.CommonLanguageSettings.serializeBinaryToWriter
    );
  }
};


/**
 * optional CommonLanguageSettings common = 1;
 * @return {?proto.google.api.CommonLanguageSettings}
 */
proto.google.api.GoSettings.prototype.getCommon = function() {
  return /** @type{?proto.google.api.CommonLanguageSettings} */ (
    jspb.Message.getWrapperField(this, proto.google.api.CommonLanguageSettings, 1));
};


/**
 * @param {?proto.google.api.CommonLanguageSettings|undefined} value
 * @return {!proto.google.api.GoSettings} returns this
*/
proto.google.api.GoSettings.prototype.setCommon = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.GoSettings} returns this
 */
proto.google.api.GoSettings.prototype.clearCommon = function() {
  return this.setCommon(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.GoSettings.prototype.hasCommon = function() {
  return jspb.Message.getField(this, 1) != null;
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.MethodSettings.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.MethodSettings.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.MethodSettings} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.MethodSettings.toObject = function(includeInstance, msg) {
  var f, obj = {
    selector: jspb.Message.getFieldWithDefault(msg, 1, ""),
    longRunning: (f = msg.getLongRunning()) && proto.google.api.MethodSettings.LongRunning.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.MethodSettings}
 */
proto.google.api.MethodSettings.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.MethodSettings;
  return proto.google.api.MethodSettings.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.MethodSettings} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.MethodSettings}
 */
proto.google.api.MethodSettings.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setSelector(value);
      break;
    case 2:
      var value = new proto.google.api.MethodSettings.LongRunning;
      reader.readMessage(value,proto.google.api.MethodSettings.LongRunning.deserializeBinaryFromReader);
      msg.setLongRunning(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.MethodSettings.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.MethodSettings.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.MethodSettings} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.MethodSettings.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSelector();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getLongRunning();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.google.api.MethodSettings.LongRunning.serializeBinaryToWriter
    );
  }
};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.api.MethodSettings.LongRunning.prototype.toObject = function(opt_includeInstance) {
  return proto.google.api.MethodSettings.LongRunning.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.api.MethodSettings.LongRunning} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.MethodSettings.LongRunning.toObject = function(includeInstance, msg) {
  var f, obj = {
    initialPollDelay: (f = msg.getInitialPollDelay()) && google_protobuf_duration_pb.Duration.toObject(includeInstance, f),
    pollDelayMultiplier: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0),
    maxPollDelay: (f = msg.getMaxPollDelay()) && google_protobuf_duration_pb.Duration.toObject(includeInstance, f),
    totalPollTimeout: (f = msg.getTotalPollTimeout()) && google_protobuf_duration_pb.Duration.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.google.api.MethodSettings.LongRunning}
 */
proto.google.api.MethodSettings.LongRunning.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.api.MethodSettings.LongRunning;
  return proto.google.api.MethodSettings.LongRunning.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.api.MethodSettings.LongRunning} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.api.MethodSettings.LongRunning}
 */
proto.google.api.MethodSettings.LongRunning.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_duration_pb.Duration;
      reader.readMessage(value,google_protobuf_duration_pb.Duration.deserializeBinaryFromReader);
      msg.setInitialPollDelay(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setPollDelayMultiplier(value);
      break;
    case 3:
      var value = new google_protobuf_duration_pb.Duration;
      reader.readMessage(value,google_protobuf_duration_pb.Duration.deserializeBinaryFromReader);
      msg.setMaxPollDelay(value);
      break;
    case 4:
      var value = new google_protobuf_duration_pb.Duration;
      reader.readMessage(value,google_protobuf_duration_pb.Duration.deserializeBinaryFromReader);
      msg.setTotalPollTimeout(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.api.MethodSettings.LongRunning.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.api.MethodSettings.LongRunning.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.google.api.MethodSettings.LongRunning} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.api.MethodSettings.LongRunning.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getInitialPollDelay();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_duration_pb.Duration.serializeBinaryToWriter
    );
  }
  f = message.getPollDelayMultiplier();
  if (f !== 0.0) {
    writer.writeFloat(
      2,
      f
    );
  }
  f = message.getMaxPollDelay();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_duration_pb.Duration.serializeBinaryToWriter
    );
  }
  f = message.getTotalPollTimeout();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      google_protobuf_duration_pb.Duration.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.Duration initial_poll_delay = 1;
 * @return {?proto.google.protobuf.Duration}
 */
proto.google.api.MethodSettings.LongRunning.prototype.getInitialPollDelay = function() {
  return /** @type{?proto.google.protobuf.Duration} */ (
    jspb.Message.getWrapperField(this, google_protobuf_duration_pb.Duration, 1));
};


/**
 * @param {?proto.google.protobuf.Duration|undefined} value
 * @return {!proto.google.api.MethodSettings.LongRunning} returns this
*/
proto.google.api.MethodSettings.LongRunning.prototype.setInitialPollDelay = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.MethodSettings.LongRunning} returns this
 */
proto.google.api.MethodSettings.LongRunning.prototype.clearInitialPollDelay = function() {
  return this.setInitialPollDelay(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.MethodSettings.LongRunning.prototype.hasInitialPollDelay = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional float poll_delay_multiplier = 2;
 * @return {number}
 */
proto.google.api.MethodSettings.LongRunning.prototype.getPollDelayMultiplier = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.google.api.MethodSettings.LongRunning} returns this
 */
proto.google.api.MethodSettings.LongRunning.prototype.setPollDelayMultiplier = function(value) {
  return jspb.Message.setProto3FloatField(this, 2, value);
};


/**
 * optional google.protobuf.Duration max_poll_delay = 3;
 * @return {?proto.google.protobuf.Duration}
 */
proto.google.api.MethodSettings.LongRunning.prototype.getMaxPollDelay = function() {
  return /** @type{?proto.google.protobuf.Duration} */ (
    jspb.Message.getWrapperField(this, google_protobuf_duration_pb.Duration, 3));
};


/**
 * @param {?proto.google.protobuf.Duration|undefined} value
 * @return {!proto.google.api.MethodSettings.LongRunning} returns this
*/
proto.google.api.MethodSettings.LongRunning.prototype.setMaxPollDelay = function(value) {
  return jspb.Message.setWrapperField(this, 3, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.MethodSettings.LongRunning} returns this
 */
proto.google.api.MethodSettings.LongRunning.prototype.clearMaxPollDelay = function() {
  return this.setMaxPollDelay(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.MethodSettings.LongRunning.prototype.hasMaxPollDelay = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional google.protobuf.Duration total_poll_timeout = 4;
 * @return {?proto.google.protobuf.Duration}
 */
proto.google.api.MethodSettings.LongRunning.prototype.getTotalPollTimeout = function() {
  return /** @type{?proto.google.protobuf.Duration} */ (
    jspb.Message.getWrapperField(this, google_protobuf_duration_pb.Duration, 4));
};


/**
 * @param {?proto.google.protobuf.Duration|undefined} value
 * @return {!proto.google.api.MethodSettings.LongRunning} returns this
*/
proto.google.api.MethodSettings.LongRunning.prototype.setTotalPollTimeout = function(value) {
  return jspb.Message.setWrapperField(this, 4, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.MethodSettings.LongRunning} returns this
 */
proto.google.api.MethodSettings.LongRunning.prototype.clearTotalPollTimeout = function() {
  return this.setTotalPollTimeout(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.MethodSettings.LongRunning.prototype.hasTotalPollTimeout = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional string selector = 1;
 * @return {string}
 */
proto.google.api.MethodSettings.prototype.getSelector = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.google.api.MethodSettings} returns this
 */
proto.google.api.MethodSettings.prototype.setSelector = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional LongRunning long_running = 2;
 * @return {?proto.google.api.MethodSettings.LongRunning}
 */
proto.google.api.MethodSettings.prototype.getLongRunning = function() {
  return /** @type{?proto.google.api.MethodSettings.LongRunning} */ (
    jspb.Message.getWrapperField(this, proto.google.api.MethodSettings.LongRunning, 2));
};


/**
 * @param {?proto.google.api.MethodSettings.LongRunning|undefined} value
 * @return {!proto.google.api.MethodSettings} returns this
*/
proto.google.api.MethodSettings.prototype.setLongRunning = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.google.api.MethodSettings} returns this
 */
proto.google.api.MethodSettings.prototype.clearLongRunning = function() {
  return this.setLongRunning(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.google.api.MethodSettings.prototype.hasLongRunning = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * @enum {number}
 */
proto.google.api.ClientLibraryOrganization = {
  CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED: 0,
  CLOUD: 1,
  ADS: 2,
  PHOTOS: 3,
  STREET_VIEW: 4
};

/**
 * @enum {number}
 */
proto.google.api.ClientLibraryDestination = {
  CLIENT_LIBRARY_DESTINATION_UNSPECIFIED: 0,
  GITHUB: 10,
  PACKAGE_MANAGER: 20
};


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `methodSignatureList`.
 * @type {!jspb.ExtensionFieldInfo<!Array<string>>}
 */
proto.google.api.methodSignatureList = new jspb.ExtensionFieldInfo(
    1051,
    {methodSignatureList: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    1);

google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1051] = new jspb.ExtensionFieldBinaryInfo(
    proto.google.api.methodSignatureList,
    jspb.BinaryReader.prototype.readString,
    jspb.BinaryWriter.prototype.writeRepeatedString,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.MethodOptions.extensions[1051] = proto.google.api.methodSignatureList;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `defaultHost`.
 * @type {!jspb.ExtensionFieldInfo<string>}
 */
proto.google.api.defaultHost = new jspb.ExtensionFieldInfo(
    1049,
    {defaultHost: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1049] = new jspb.ExtensionFieldBinaryInfo(
    proto.google.api.defaultHost,
    jspb.BinaryReader.prototype.readString,
    jspb.BinaryWriter.prototype.writeString,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.ServiceOptions.extensions[1049] = proto.google.api.defaultHost;


/**
 * A tuple of {field number, class constructor} for the extension
 * field named `oauthScopes`.
 * @type {!jspb.ExtensionFieldInfo<string>}
 */
proto.google.api.oauthScopes = new jspb.ExtensionFieldInfo(
    1050,
    {oauthScopes: 0},
    null,
     /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (
         null),
    0);

google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1050] = new jspb.ExtensionFieldBinaryInfo(
    proto.google.api.oauthScopes,
    jspb.BinaryReader.prototype.readString,
    jspb.BinaryWriter.prototype.writeString,
    undefined,
    undefined,
    false);
// This registers the extension field with the extended class, so that
// toObject() will function correctly.
google_protobuf_descriptor_pb.ServiceOptions.extensions[1050] = proto.google.api.oauthScopes;

goog.object.extend(exports, proto.google.api);
