UNPKG

google-ads-node

Version:

Google Ads gRPC Client Library for Node

8,797 lines 321 kB
/**
 * @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_ads_googleads_v0_enums_age_range_type_pb = require('../../../../../google/ads/googleads/v0/enums/age_range_type_pb.js');
var google_ads_googleads_v0_enums_app_payment_model_type_pb = require('../../../../../google/ads/googleads/v0/enums/app_payment_model_type_pb.js');
var google_ads_googleads_v0_enums_content_label_type_pb = require('../../../../../google/ads/googleads/v0/enums/content_label_type_pb.js');
var google_ads_googleads_v0_enums_day_of_week_pb = require('../../../../../google/ads/googleads/v0/enums/day_of_week_pb.js');
var google_ads_googleads_v0_enums_device_pb = require('../../../../../google/ads/googleads/v0/enums/device_pb.js');
var google_ads_googleads_v0_enums_gender_type_pb = require('../../../../../google/ads/googleads/v0/enums/gender_type_pb.js');
var google_ads_googleads_v0_enums_hotel_date_selection_type_pb = require('../../../../../google/ads/googleads/v0/enums/hotel_date_selection_type_pb.js');
var google_ads_googleads_v0_enums_income_range_type_pb = require('../../../../../google/ads/googleads/v0/enums/income_range_type_pb.js');
var google_ads_googleads_v0_enums_interaction_type_pb = require('../../../../../google/ads/googleads/v0/enums/interaction_type_pb.js');
var google_ads_googleads_v0_enums_keyword_match_type_pb = require('../../../../../google/ads/googleads/v0/enums/keyword_match_type_pb.js');
var google_ads_googleads_v0_enums_listing_custom_attribute_index_pb = require('../../../../../google/ads/googleads/v0/enums/listing_custom_attribute_index_pb.js');
var google_ads_googleads_v0_enums_listing_group_type_pb = require('../../../../../google/ads/googleads/v0/enums/listing_group_type_pb.js');
var google_ads_googleads_v0_enums_minute_of_hour_pb = require('../../../../../google/ads/googleads/v0/enums/minute_of_hour_pb.js');
var google_ads_googleads_v0_enums_parental_status_type_pb = require('../../../../../google/ads/googleads/v0/enums/parental_status_type_pb.js');
var google_ads_googleads_v0_enums_preferred_content_type_pb = require('../../../../../google/ads/googleads/v0/enums/preferred_content_type_pb.js');
var google_ads_googleads_v0_enums_product_channel_pb = require('../../../../../google/ads/googleads/v0/enums/product_channel_pb.js');
var google_ads_googleads_v0_enums_product_channel_exclusivity_pb = require('../../../../../google/ads/googleads/v0/enums/product_channel_exclusivity_pb.js');
var google_ads_googleads_v0_enums_product_condition_pb = require('../../../../../google/ads/googleads/v0/enums/product_condition_pb.js');
var google_ads_googleads_v0_enums_product_type_level_pb = require('../../../../../google/ads/googleads/v0/enums/product_type_level_pb.js');
var google_ads_googleads_v0_enums_proximity_radius_units_pb = require('../../../../../google/ads/googleads/v0/enums/proximity_radius_units_pb.js');
var google_ads_googleads_v0_enums_webpage_condition_operand_pb = require('../../../../../google/ads/googleads/v0/enums/webpage_condition_operand_pb.js');
var google_ads_googleads_v0_enums_webpage_condition_operator_pb = require('../../../../../google/ads/googleads/v0/enums/webpage_condition_operator_pb.js');
var google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');
goog.exportSymbol('proto.google.ads.googleads.v0.common.AdScheduleInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.AddressInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.AgeRangeInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.AppPaymentModelInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.CarrierInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ContentLabelInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.DeviceInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.GenderInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.GeoPointInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.HotelCheckInDayInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.HotelCityInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.HotelClassInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.HotelCountryRegionInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.HotelIdInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.HotelStateInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.IncomeRangeInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.InteractionTypeInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.IpBlockInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.KeywordInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.LanguageInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ListingBrandInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ListingDimensionInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ListingGroupInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ListingScopeInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.LocationInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.MobileAppCategoryInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ParentalStatusInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.PlacementInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.PreferredContentInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ProductChannelInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ProductConditionInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ProductOfferIdInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ProductTypeInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.ProximityInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.TopicInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.UserInterestInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.UserListInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.WebpageConditionInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.WebpageInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.YouTubeChannelInfo', null, global);
goog.exportSymbol('proto.google.ads.googleads.v0.common.YouTubeVideoInfo', 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.ads.googleads.v0.common.KeywordInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.KeywordInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.KeywordInfo.displayName = 'proto.google.ads.googleads.v0.common.KeywordInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.KeywordInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.KeywordInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.KeywordInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.KeywordInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    text: (f = msg.getText()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    matchType: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  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.ads.googleads.v0.common.KeywordInfo}
 */
proto.google.ads.googleads.v0.common.KeywordInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.KeywordInfo;
  return proto.google.ads.googleads.v0.common.KeywordInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.KeywordInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.KeywordInfo}
 */
proto.google.ads.googleads.v0.common.KeywordInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setText(value);
      break;
    case 2:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.KeywordMatchTypeEnum.KeywordMatchType} */ (reader.readEnum());
      msg.setMatchType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.KeywordInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.KeywordInfo.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.ads.googleads.v0.common.KeywordInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.KeywordInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getText();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getMatchType();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
};


/**
 * optional google.protobuf.StringValue text = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.KeywordInfo.prototype.getText = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.KeywordInfo.prototype.setText = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.KeywordInfo.prototype.clearText = function() {
  this.setText(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.KeywordInfo.prototype.hasText = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.ads.googleads.v0.enums.KeywordMatchTypeEnum.KeywordMatchType match_type = 2;
 * @return {!proto.google.ads.googleads.v0.enums.KeywordMatchTypeEnum.KeywordMatchType}
 */
proto.google.ads.googleads.v0.common.KeywordInfo.prototype.getMatchType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.KeywordMatchTypeEnum.KeywordMatchType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.KeywordMatchTypeEnum.KeywordMatchType} value */
proto.google.ads.googleads.v0.common.KeywordInfo.prototype.setMatchType = function(value) {
  jspb.Message.setProto3EnumField(this, 2, value);
};



/**
 * 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.ads.googleads.v0.common.PlacementInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.PlacementInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.PlacementInfo.displayName = 'proto.google.ads.googleads.v0.common.PlacementInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.PlacementInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.PlacementInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.PlacementInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.PlacementInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    url: (f = msg.getUrl()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.PlacementInfo}
 */
proto.google.ads.googleads.v0.common.PlacementInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.PlacementInfo;
  return proto.google.ads.googleads.v0.common.PlacementInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.PlacementInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.PlacementInfo.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.ads.googleads.v0.common.PlacementInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.PlacementInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUrl();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue url = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.PlacementInfo.prototype.getUrl = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.PlacementInfo.prototype.setUrl = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.PlacementInfo.prototype.clearUrl = function() {
  this.setUrl(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.PlacementInfo.prototype.hasUrl = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.MobileAppCategoryInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.MobileAppCategoryInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.displayName = 'proto.google.ads.googleads.v0.common.MobileAppCategoryInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.MobileAppCategoryInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    mobileAppCategoryConstant: (f = msg.getMobileAppCategoryConstant()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.MobileAppCategoryInfo}
 */
proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.MobileAppCategoryInfo;
  return proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.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.ads.googleads.v0.common.MobileAppCategoryInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMobileAppCategoryConstant();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue mobile_app_category_constant = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.prototype.getMobileAppCategoryConstant = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.prototype.setMobileAppCategoryConstant = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.prototype.clearMobileAppCategoryConstant = function() {
  this.setMobileAppCategoryConstant(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.MobileAppCategoryInfo.prototype.hasMobileAppCategoryConstant = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.LocationInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.LocationInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.LocationInfo.displayName = 'proto.google.ads.googleads.v0.common.LocationInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.LocationInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.LocationInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.LocationInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.LocationInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    geoTargetConstant: (f = msg.getGeoTargetConstant()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.LocationInfo}
 */
proto.google.ads.googleads.v0.common.LocationInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.LocationInfo;
  return proto.google.ads.googleads.v0.common.LocationInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.LocationInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.LocationInfo.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.ads.googleads.v0.common.LocationInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.LocationInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getGeoTargetConstant();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue geo_target_constant = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.LocationInfo.prototype.getGeoTargetConstant = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.LocationInfo.prototype.setGeoTargetConstant = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.LocationInfo.prototype.clearGeoTargetConstant = function() {
  this.setGeoTargetConstant(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.LocationInfo.prototype.hasGeoTargetConstant = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.DeviceInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.DeviceInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.DeviceInfo.displayName = 'proto.google.ads.googleads.v0.common.DeviceInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.DeviceInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.DeviceInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.DeviceInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.DeviceInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.DeviceInfo}
 */
proto.google.ads.googleads.v0.common.DeviceInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.DeviceInfo;
  return proto.google.ads.googleads.v0.common.DeviceInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.DeviceInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.DeviceInfo}
 */
proto.google.ads.googleads.v0.common.DeviceInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.DeviceEnum.Device} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.DeviceInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.DeviceInfo.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.ads.googleads.v0.common.DeviceInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.DeviceInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.DeviceEnum.Device type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.DeviceEnum.Device}
 */
proto.google.ads.googleads.v0.common.DeviceInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.DeviceEnum.Device} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.DeviceEnum.Device} value */
proto.google.ads.googleads.v0.common.DeviceInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.PreferredContentInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.PreferredContentInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.PreferredContentInfo.displayName = 'proto.google.ads.googleads.v0.common.PreferredContentInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.PreferredContentInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.PreferredContentInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.PreferredContentInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.PreferredContentInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  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.ads.googleads.v0.common.PreferredContentInfo}
 */
proto.google.ads.googleads.v0.common.PreferredContentInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.PreferredContentInfo;
  return proto.google.ads.googleads.v0.common.PreferredContentInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.PreferredContentInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.PreferredContentInfo}
 */
proto.google.ads.googleads.v0.common.PreferredContentInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 2:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.PreferredContentTypeEnum.PreferredContentType} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.PreferredContentInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.PreferredContentInfo.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.ads.googleads.v0.common.PreferredContentInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.PreferredContentInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.PreferredContentTypeEnum.PreferredContentType type = 2;
 * @return {!proto.google.ads.googleads.v0.enums.PreferredContentTypeEnum.PreferredContentType}
 */
proto.google.ads.googleads.v0.common.PreferredContentInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.PreferredContentTypeEnum.PreferredContentType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.PreferredContentTypeEnum.PreferredContentType} value */
proto.google.ads.googleads.v0.common.PreferredContentInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 2, value);
};



/**
 * 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.ads.googleads.v0.common.ListingGroupInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ListingGroupInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ListingGroupInfo.displayName = 'proto.google.ads.googleads.v0.common.ListingGroupInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ListingGroupInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ListingGroupInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0),
    caseValue: (f = msg.getCaseValue()) && proto.google.ads.googleads.v0.common.ListingDimensionInfo.toObject(includeInstance, f),
    parentAdGroupCriterion: (f = msg.getParentAdGroupCriterion()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.ListingGroupInfo}
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ListingGroupInfo;
  return proto.google.ads.googleads.v0.common.ListingGroupInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ListingGroupInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ListingGroupInfo}
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.ListingGroupTypeEnum.ListingGroupType} */ (reader.readEnum());
      msg.setType(value);
      break;
    case 2:
      var value = new proto.google.ads.googleads.v0.common.ListingDimensionInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.ListingDimensionInfo.deserializeBinaryFromReader);
      msg.setCaseValue(value);
      break;
    case 3:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setParentAdGroupCriterion(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ListingGroupInfo.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.ads.googleads.v0.common.ListingGroupInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getCaseValue();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.google.ads.googleads.v0.common.ListingDimensionInfo.serializeBinaryToWriter
    );
  }
  f = message.getParentAdGroupCriterion();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.ListingGroupTypeEnum.ListingGroupType type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.ListingGroupTypeEnum.ListingGroupType}
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.ListingGroupTypeEnum.ListingGroupType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.ListingGroupTypeEnum.ListingGroupType} value */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};


/**
 * optional ListingDimensionInfo case_value = 2;
 * @return {?proto.google.ads.googleads.v0.common.ListingDimensionInfo}
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.getCaseValue = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.ListingDimensionInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.ListingDimensionInfo, 2));
};


/** @param {?proto.google.ads.googleads.v0.common.ListingDimensionInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.setCaseValue = function(value) {
  jspb.Message.setWrapperField(this, 2, value);
};


proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.clearCaseValue = function() {
  this.setCaseValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.hasCaseValue = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional google.protobuf.StringValue parent_ad_group_criterion = 3;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.getParentAdGroupCriterion = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 3));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.setParentAdGroupCriterion = function(value) {
  jspb.Message.setWrapperField(this, 3, value);
};


proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.clearParentAdGroupCriterion = function() {
  this.setParentAdGroupCriterion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingGroupInfo.prototype.hasParentAdGroupCriterion = function() {
  return jspb.Message.getField(this, 3) != null;
};



/**
 * 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.ads.googleads.v0.common.ListingScopeInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.google.ads.googleads.v0.common.ListingScopeInfo.repeatedFields_, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ListingScopeInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ListingScopeInfo.displayName = 'proto.google.ads.googleads.v0.common.ListingScopeInfo';
}
/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.google.ads.googleads.v0.common.ListingScopeInfo.repeatedFields_ = [2];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ListingScopeInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ListingScopeInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ListingScopeInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingScopeInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    dimensionsList: jspb.Message.toObjectList(msg.getDimensionsList(),
    proto.google.ads.googleads.v0.common.ListingDimensionInfo.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.ads.googleads.v0.common.ListingScopeInfo}
 */
proto.google.ads.googleads.v0.common.ListingScopeInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ListingScopeInfo;
  return proto.google.ads.googleads.v0.common.ListingScopeInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ListingScopeInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ListingScopeInfo.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.ads.googleads.v0.common.ListingScopeInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingScopeInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getDimensionsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.google.ads.googleads.v0.common.ListingDimensionInfo.serializeBinaryToWriter
    );
  }
};


/**
 * repeated ListingDimensionInfo dimensions = 2;
 * @return {!Array<!proto.google.ads.googleads.v0.common.ListingDimensionInfo>}
 */
proto.google.ads.googleads.v0.common.ListingScopeInfo.prototype.getDimensionsList = function() {
  return /** @type{!Array<!proto.google.ads.googleads.v0.common.ListingDimensionInfo>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.google.ads.googleads.v0.common.ListingDimensionInfo, 2));
};


/** @param {!Array<!proto.google.ads.googleads.v0.common.ListingDimensionInfo>} value */
proto.google.ads.googleads.v0.common.ListingScopeInfo.prototype.setDimensionsList = function(value) {
  jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.google.ads.googleads.v0.common.ListingDimensionInfo=} opt_value
 * @param {number=} opt_index
 * @return {!proto.google.ads.googleads.v0.common.ListingDimensionInfo}
 */
proto.google.ads.googleads.v0.common.ListingScopeInfo.prototype.addDimensions = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.google.ads.googleads.v0.common.ListingDimensionInfo, opt_index);
};


proto.google.ads.googleads.v0.common.ListingScopeInfo.prototype.clearDimensionsList = function() {
  this.setDimensionsList([]);
};



/**
 * 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.ads.googleads.v0.common.ListingDimensionInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_);
};
goog.inherits(proto.google.ads.googleads.v0.common.ListingDimensionInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ListingDimensionInfo.displayName = 'proto.google.ads.googleads.v0.common.ListingDimensionInfo';
}
/**
 * Oneof group definitions for this message. Each group defines the field
 * numbers belonging to that group. When of these fields' value is set, all
 * other fields in the group are cleared. During deserialization, if multiple
 * fields are encountered for a group, only the last value seen will be kept.
 * @private {!Array<!Array<number>>}
 * @const
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_ = [[1,2,3,4,5,6,7,8,9,10,11,12]];

/**
 * @enum {number}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.DimensionCase = {
  DIMENSION_NOT_SET: 0,
  LISTING_BRAND: 1,
  HOTEL_ID: 2,
  HOTEL_CLASS: 3,
  HOTEL_COUNTRY_REGION: 4,
  HOTEL_STATE: 5,
  HOTEL_CITY: 6,
  LISTING_CUSTOM_ATTRIBUTE: 7,
  PRODUCT_CHANNEL: 8,
  PRODUCT_CHANNEL_EXCLUSIVITY: 9,
  PRODUCT_CONDITION: 10,
  PRODUCT_OFFER_ID: 11,
  PRODUCT_TYPE: 12
};

/**
 * @return {proto.google.ads.googleads.v0.common.ListingDimensionInfo.DimensionCase}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getDimensionCase = function() {
  return /** @type {proto.google.ads.googleads.v0.common.ListingDimensionInfo.DimensionCase} */(jspb.Message.computeOneofCase(this, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0]));
};



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ListingDimensionInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ListingDimensionInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    listingBrand: (f = msg.getListingBrand()) && proto.google.ads.googleads.v0.common.ListingBrandInfo.toObject(includeInstance, f),
    hotelId: (f = msg.getHotelId()) && proto.google.ads.googleads.v0.common.HotelIdInfo.toObject(includeInstance, f),
    hotelClass: (f = msg.getHotelClass()) && proto.google.ads.googleads.v0.common.HotelClassInfo.toObject(includeInstance, f),
    hotelCountryRegion: (f = msg.getHotelCountryRegion()) && proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.toObject(includeInstance, f),
    hotelState: (f = msg.getHotelState()) && proto.google.ads.googleads.v0.common.HotelStateInfo.toObject(includeInstance, f),
    hotelCity: (f = msg.getHotelCity()) && proto.google.ads.googleads.v0.common.HotelCityInfo.toObject(includeInstance, f),
    listingCustomAttribute: (f = msg.getListingCustomAttribute()) && proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.toObject(includeInstance, f),
    productChannel: (f = msg.getProductChannel()) && proto.google.ads.googleads.v0.common.ProductChannelInfo.toObject(includeInstance, f),
    productChannelExclusivity: (f = msg.getProductChannelExclusivity()) && proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.toObject(includeInstance, f),
    productCondition: (f = msg.getProductCondition()) && proto.google.ads.googleads.v0.common.ProductConditionInfo.toObject(includeInstance, f),
    productOfferId: (f = msg.getProductOfferId()) && proto.google.ads.googleads.v0.common.ProductOfferIdInfo.toObject(includeInstance, f),
    productType: (f = msg.getProductType()) && proto.google.ads.googleads.v0.common.ProductTypeInfo.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.ads.googleads.v0.common.ListingDimensionInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ListingDimensionInfo;
  return proto.google.ads.googleads.v0.common.ListingDimensionInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ListingDimensionInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ListingDimensionInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.google.ads.googleads.v0.common.ListingBrandInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.ListingBrandInfo.deserializeBinaryFromReader);
      msg.setListingBrand(value);
      break;
    case 2:
      var value = new proto.google.ads.googleads.v0.common.HotelIdInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.HotelIdInfo.deserializeBinaryFromReader);
      msg.setHotelId(value);
      break;
    case 3:
      var value = new proto.google.ads.googleads.v0.common.HotelClassInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.HotelClassInfo.deserializeBinaryFromReader);
      msg.setHotelClass(value);
      break;
    case 4:
      var value = new proto.google.ads.googleads.v0.common.HotelCountryRegionInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.deserializeBinaryFromReader);
      msg.setHotelCountryRegion(value);
      break;
    case 5:
      var value = new proto.google.ads.googleads.v0.common.HotelStateInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.HotelStateInfo.deserializeBinaryFromReader);
      msg.setHotelState(value);
      break;
    case 6:
      var value = new proto.google.ads.googleads.v0.common.HotelCityInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.HotelCityInfo.deserializeBinaryFromReader);
      msg.setHotelCity(value);
      break;
    case 7:
      var value = new proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.deserializeBinaryFromReader);
      msg.setListingCustomAttribute(value);
      break;
    case 8:
      var value = new proto.google.ads.googleads.v0.common.ProductChannelInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.ProductChannelInfo.deserializeBinaryFromReader);
      msg.setProductChannel(value);
      break;
    case 9:
      var value = new proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.deserializeBinaryFromReader);
      msg.setProductChannelExclusivity(value);
      break;
    case 10:
      var value = new proto.google.ads.googleads.v0.common.ProductConditionInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.ProductConditionInfo.deserializeBinaryFromReader);
      msg.setProductCondition(value);
      break;
    case 11:
      var value = new proto.google.ads.googleads.v0.common.ProductOfferIdInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.ProductOfferIdInfo.deserializeBinaryFromReader);
      msg.setProductOfferId(value);
      break;
    case 12:
      var value = new proto.google.ads.googleads.v0.common.ProductTypeInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.ProductTypeInfo.deserializeBinaryFromReader);
      msg.setProductType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ListingDimensionInfo.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.ads.googleads.v0.common.ListingDimensionInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getListingBrand();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.google.ads.googleads.v0.common.ListingBrandInfo.serializeBinaryToWriter
    );
  }
  f = message.getHotelId();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.google.ads.googleads.v0.common.HotelIdInfo.serializeBinaryToWriter
    );
  }
  f = message.getHotelClass();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      proto.google.ads.googleads.v0.common.HotelClassInfo.serializeBinaryToWriter
    );
  }
  f = message.getHotelCountryRegion();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.serializeBinaryToWriter
    );
  }
  f = message.getHotelState();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      proto.google.ads.googleads.v0.common.HotelStateInfo.serializeBinaryToWriter
    );
  }
  f = message.getHotelCity();
  if (f != null) {
    writer.writeMessage(
      6,
      f,
      proto.google.ads.googleads.v0.common.HotelCityInfo.serializeBinaryToWriter
    );
  }
  f = message.getListingCustomAttribute();
  if (f != null) {
    writer.writeMessage(
      7,
      f,
      proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.serializeBinaryToWriter
    );
  }
  f = message.getProductChannel();
  if (f != null) {
    writer.writeMessage(
      8,
      f,
      proto.google.ads.googleads.v0.common.ProductChannelInfo.serializeBinaryToWriter
    );
  }
  f = message.getProductChannelExclusivity();
  if (f != null) {
    writer.writeMessage(
      9,
      f,
      proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.serializeBinaryToWriter
    );
  }
  f = message.getProductCondition();
  if (f != null) {
    writer.writeMessage(
      10,
      f,
      proto.google.ads.googleads.v0.common.ProductConditionInfo.serializeBinaryToWriter
    );
  }
  f = message.getProductOfferId();
  if (f != null) {
    writer.writeMessage(
      11,
      f,
      proto.google.ads.googleads.v0.common.ProductOfferIdInfo.serializeBinaryToWriter
    );
  }
  f = message.getProductType();
  if (f != null) {
    writer.writeMessage(
      12,
      f,
      proto.google.ads.googleads.v0.common.ProductTypeInfo.serializeBinaryToWriter
    );
  }
};


/**
 * optional ListingBrandInfo listing_brand = 1;
 * @return {?proto.google.ads.googleads.v0.common.ListingBrandInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getListingBrand = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.ListingBrandInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.ListingBrandInfo, 1));
};


/** @param {?proto.google.ads.googleads.v0.common.ListingBrandInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setListingBrand = function(value) {
  jspb.Message.setOneofWrapperField(this, 1, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearListingBrand = function() {
  this.setListingBrand(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasListingBrand = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional HotelIdInfo hotel_id = 2;
 * @return {?proto.google.ads.googleads.v0.common.HotelIdInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getHotelId = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.HotelIdInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.HotelIdInfo, 2));
};


/** @param {?proto.google.ads.googleads.v0.common.HotelIdInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setHotelId = function(value) {
  jspb.Message.setOneofWrapperField(this, 2, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearHotelId = function() {
  this.setHotelId(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasHotelId = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional HotelClassInfo hotel_class = 3;
 * @return {?proto.google.ads.googleads.v0.common.HotelClassInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getHotelClass = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.HotelClassInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.HotelClassInfo, 3));
};


/** @param {?proto.google.ads.googleads.v0.common.HotelClassInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setHotelClass = function(value) {
  jspb.Message.setOneofWrapperField(this, 3, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearHotelClass = function() {
  this.setHotelClass(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasHotelClass = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional HotelCountryRegionInfo hotel_country_region = 4;
 * @return {?proto.google.ads.googleads.v0.common.HotelCountryRegionInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getHotelCountryRegion = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.HotelCountryRegionInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.HotelCountryRegionInfo, 4));
};


/** @param {?proto.google.ads.googleads.v0.common.HotelCountryRegionInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setHotelCountryRegion = function(value) {
  jspb.Message.setOneofWrapperField(this, 4, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearHotelCountryRegion = function() {
  this.setHotelCountryRegion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasHotelCountryRegion = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional HotelStateInfo hotel_state = 5;
 * @return {?proto.google.ads.googleads.v0.common.HotelStateInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getHotelState = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.HotelStateInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.HotelStateInfo, 5));
};


/** @param {?proto.google.ads.googleads.v0.common.HotelStateInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setHotelState = function(value) {
  jspb.Message.setOneofWrapperField(this, 5, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearHotelState = function() {
  this.setHotelState(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasHotelState = function() {
  return jspb.Message.getField(this, 5) != null;
};


/**
 * optional HotelCityInfo hotel_city = 6;
 * @return {?proto.google.ads.googleads.v0.common.HotelCityInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getHotelCity = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.HotelCityInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.HotelCityInfo, 6));
};


/** @param {?proto.google.ads.googleads.v0.common.HotelCityInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setHotelCity = function(value) {
  jspb.Message.setOneofWrapperField(this, 6, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearHotelCity = function() {
  this.setHotelCity(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasHotelCity = function() {
  return jspb.Message.getField(this, 6) != null;
};


/**
 * optional ListingCustomAttributeInfo listing_custom_attribute = 7;
 * @return {?proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getListingCustomAttribute = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo, 7));
};


/** @param {?proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setListingCustomAttribute = function(value) {
  jspb.Message.setOneofWrapperField(this, 7, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearListingCustomAttribute = function() {
  this.setListingCustomAttribute(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasListingCustomAttribute = function() {
  return jspb.Message.getField(this, 7) != null;
};


/**
 * optional ProductChannelInfo product_channel = 8;
 * @return {?proto.google.ads.googleads.v0.common.ProductChannelInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getProductChannel = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.ProductChannelInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.ProductChannelInfo, 8));
};


/** @param {?proto.google.ads.googleads.v0.common.ProductChannelInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setProductChannel = function(value) {
  jspb.Message.setOneofWrapperField(this, 8, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearProductChannel = function() {
  this.setProductChannel(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasProductChannel = function() {
  return jspb.Message.getField(this, 8) != null;
};


/**
 * optional ProductChannelExclusivityInfo product_channel_exclusivity = 9;
 * @return {?proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getProductChannelExclusivity = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo, 9));
};


/** @param {?proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setProductChannelExclusivity = function(value) {
  jspb.Message.setOneofWrapperField(this, 9, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearProductChannelExclusivity = function() {
  this.setProductChannelExclusivity(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasProductChannelExclusivity = function() {
  return jspb.Message.getField(this, 9) != null;
};


/**
 * optional ProductConditionInfo product_condition = 10;
 * @return {?proto.google.ads.googleads.v0.common.ProductConditionInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getProductCondition = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.ProductConditionInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.ProductConditionInfo, 10));
};


/** @param {?proto.google.ads.googleads.v0.common.ProductConditionInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setProductCondition = function(value) {
  jspb.Message.setOneofWrapperField(this, 10, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearProductCondition = function() {
  this.setProductCondition(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasProductCondition = function() {
  return jspb.Message.getField(this, 10) != null;
};


/**
 * optional ProductOfferIdInfo product_offer_id = 11;
 * @return {?proto.google.ads.googleads.v0.common.ProductOfferIdInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getProductOfferId = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.ProductOfferIdInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.ProductOfferIdInfo, 11));
};


/** @param {?proto.google.ads.googleads.v0.common.ProductOfferIdInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setProductOfferId = function(value) {
  jspb.Message.setOneofWrapperField(this, 11, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearProductOfferId = function() {
  this.setProductOfferId(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasProductOfferId = function() {
  return jspb.Message.getField(this, 11) != null;
};


/**
 * optional ProductTypeInfo product_type = 12;
 * @return {?proto.google.ads.googleads.v0.common.ProductTypeInfo}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.getProductType = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.ProductTypeInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.ProductTypeInfo, 12));
};


/** @param {?proto.google.ads.googleads.v0.common.ProductTypeInfo|undefined} value */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.setProductType = function(value) {
  jspb.Message.setOneofWrapperField(this, 12, proto.google.ads.googleads.v0.common.ListingDimensionInfo.oneofGroups_[0], value);
};


proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.clearProductType = function() {
  this.setProductType(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingDimensionInfo.prototype.hasProductType = function() {
  return jspb.Message.getField(this, 12) != null;
};



/**
 * 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.ads.googleads.v0.common.ListingBrandInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ListingBrandInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ListingBrandInfo.displayName = 'proto.google.ads.googleads.v0.common.ListingBrandInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ListingBrandInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ListingBrandInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ListingBrandInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingBrandInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    value: (f = msg.getValue()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.ListingBrandInfo}
 */
proto.google.ads.googleads.v0.common.ListingBrandInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ListingBrandInfo;
  return proto.google.ads.googleads.v0.common.ListingBrandInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ListingBrandInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ListingBrandInfo.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.ads.googleads.v0.common.ListingBrandInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingBrandInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getValue();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue value = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.ListingBrandInfo.prototype.getValue = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.ListingBrandInfo.prototype.setValue = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.ListingBrandInfo.prototype.clearValue = function() {
  this.setValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingBrandInfo.prototype.hasValue = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.HotelIdInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.HotelIdInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.HotelIdInfo.displayName = 'proto.google.ads.googleads.v0.common.HotelIdInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.HotelIdInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.HotelIdInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.HotelIdInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelIdInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    value: (f = msg.getValue()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.HotelIdInfo}
 */
proto.google.ads.googleads.v0.common.HotelIdInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.HotelIdInfo;
  return proto.google.ads.googleads.v0.common.HotelIdInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.HotelIdInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.HotelIdInfo.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.ads.googleads.v0.common.HotelIdInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelIdInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getValue();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue value = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.HotelIdInfo.prototype.getValue = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.HotelIdInfo.prototype.setValue = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.HotelIdInfo.prototype.clearValue = function() {
  this.setValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.HotelIdInfo.prototype.hasValue = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.HotelClassInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.HotelClassInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.HotelClassInfo.displayName = 'proto.google.ads.googleads.v0.common.HotelClassInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.HotelClassInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.HotelClassInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.HotelClassInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelClassInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    value: (f = msg.getValue()) && google_protobuf_wrappers_pb.Int64Value.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.ads.googleads.v0.common.HotelClassInfo}
 */
proto.google.ads.googleads.v0.common.HotelClassInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.HotelClassInfo;
  return proto.google.ads.googleads.v0.common.HotelClassInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.HotelClassInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.HotelClassInfo.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.ads.googleads.v0.common.HotelClassInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelClassInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getValue();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.Int64Value.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.Int64Value value = 1;
 * @return {?proto.google.protobuf.Int64Value}
 */
proto.google.ads.googleads.v0.common.HotelClassInfo.prototype.getValue = function() {
  return /** @type{?proto.google.protobuf.Int64Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int64Value, 1));
};


/** @param {?proto.google.protobuf.Int64Value|undefined} value */
proto.google.ads.googleads.v0.common.HotelClassInfo.prototype.setValue = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.HotelClassInfo.prototype.clearValue = function() {
  this.setValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.HotelClassInfo.prototype.hasValue = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.HotelCountryRegionInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.HotelCountryRegionInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.displayName = 'proto.google.ads.googleads.v0.common.HotelCountryRegionInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.HotelCountryRegionInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    countryRegionCriterion: (f = msg.getCountryRegionCriterion()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.HotelCountryRegionInfo}
 */
proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.HotelCountryRegionInfo;
  return proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.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.ads.googleads.v0.common.HotelCountryRegionInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCountryRegionCriterion();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue country_region_criterion = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.prototype.getCountryRegionCriterion = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.prototype.setCountryRegionCriterion = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.prototype.clearCountryRegionCriterion = function() {
  this.setCountryRegionCriterion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.HotelCountryRegionInfo.prototype.hasCountryRegionCriterion = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.HotelStateInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.HotelStateInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.HotelStateInfo.displayName = 'proto.google.ads.googleads.v0.common.HotelStateInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.HotelStateInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.HotelStateInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.HotelStateInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelStateInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    stateCriterion: (f = msg.getStateCriterion()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.HotelStateInfo}
 */
proto.google.ads.googleads.v0.common.HotelStateInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.HotelStateInfo;
  return proto.google.ads.googleads.v0.common.HotelStateInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.HotelStateInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.HotelStateInfo.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.ads.googleads.v0.common.HotelStateInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelStateInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getStateCriterion();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue state_criterion = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.HotelStateInfo.prototype.getStateCriterion = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.HotelStateInfo.prototype.setStateCriterion = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.HotelStateInfo.prototype.clearStateCriterion = function() {
  this.setStateCriterion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.HotelStateInfo.prototype.hasStateCriterion = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.HotelCityInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.HotelCityInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.HotelCityInfo.displayName = 'proto.google.ads.googleads.v0.common.HotelCityInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.HotelCityInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.HotelCityInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.HotelCityInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelCityInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    cityCriterion: (f = msg.getCityCriterion()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.HotelCityInfo}
 */
proto.google.ads.googleads.v0.common.HotelCityInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.HotelCityInfo;
  return proto.google.ads.googleads.v0.common.HotelCityInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.HotelCityInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.HotelCityInfo.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.ads.googleads.v0.common.HotelCityInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelCityInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCityCriterion();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue city_criterion = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.HotelCityInfo.prototype.getCityCriterion = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.HotelCityInfo.prototype.setCityCriterion = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.HotelCityInfo.prototype.clearCityCriterion = function() {
  this.setCityCriterion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.HotelCityInfo.prototype.hasCityCriterion = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.ListingCustomAttributeInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.displayName = 'proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    value: (f = msg.getValue()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    index: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  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.ads.googleads.v0.common.ListingCustomAttributeInfo}
 */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo;
  return proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo}
 */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setValue(value);
      break;
    case 2:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum.ListingCustomAttributeIndex} */ (reader.readEnum());
      msg.setIndex(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.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.ads.googleads.v0.common.ListingCustomAttributeInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getValue();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getIndex();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
};


/**
 * optional google.protobuf.StringValue value = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.prototype.getValue = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.prototype.setValue = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.prototype.clearValue = function() {
  this.setValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.prototype.hasValue = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum.ListingCustomAttributeIndex index = 2;
 * @return {!proto.google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum.ListingCustomAttributeIndex}
 */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.prototype.getIndex = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum.ListingCustomAttributeIndex} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum.ListingCustomAttributeIndex} value */
proto.google.ads.googleads.v0.common.ListingCustomAttributeInfo.prototype.setIndex = function(value) {
  jspb.Message.setProto3EnumField(this, 2, value);
};



/**
 * 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.ads.googleads.v0.common.ProductChannelInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ProductChannelInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ProductChannelInfo.displayName = 'proto.google.ads.googleads.v0.common.ProductChannelInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ProductChannelInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ProductChannelInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ProductChannelInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductChannelInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    channel: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.ProductChannelInfo}
 */
proto.google.ads.googleads.v0.common.ProductChannelInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ProductChannelInfo;
  return proto.google.ads.googleads.v0.common.ProductChannelInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ProductChannelInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ProductChannelInfo}
 */
proto.google.ads.googleads.v0.common.ProductChannelInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.ProductChannelEnum.ProductChannel} */ (reader.readEnum());
      msg.setChannel(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ProductChannelInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ProductChannelInfo.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.ads.googleads.v0.common.ProductChannelInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductChannelInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getChannel();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.ProductChannelEnum.ProductChannel channel = 1;
 * @return {!proto.google.ads.googleads.v0.enums.ProductChannelEnum.ProductChannel}
 */
proto.google.ads.googleads.v0.common.ProductChannelInfo.prototype.getChannel = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.ProductChannelEnum.ProductChannel} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.ProductChannelEnum.ProductChannel} value */
proto.google.ads.googleads.v0.common.ProductChannelInfo.prototype.setChannel = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.ProductChannelExclusivityInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.displayName = 'proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    channelExclusivity: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.ProductChannelExclusivityInfo}
 */
proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo;
  return proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo}
 */
proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity} */ (reader.readEnum());
      msg.setChannelExclusivity(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.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.ads.googleads.v0.common.ProductChannelExclusivityInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getChannelExclusivity();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity channel_exclusivity = 1;
 * @return {!proto.google.ads.googleads.v0.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity}
 */
proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.prototype.getChannelExclusivity = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.ProductChannelExclusivityEnum.ProductChannelExclusivity} value */
proto.google.ads.googleads.v0.common.ProductChannelExclusivityInfo.prototype.setChannelExclusivity = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.ProductConditionInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ProductConditionInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ProductConditionInfo.displayName = 'proto.google.ads.googleads.v0.common.ProductConditionInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ProductConditionInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ProductConditionInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ProductConditionInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductConditionInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    condition: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.ProductConditionInfo}
 */
proto.google.ads.googleads.v0.common.ProductConditionInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ProductConditionInfo;
  return proto.google.ads.googleads.v0.common.ProductConditionInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ProductConditionInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ProductConditionInfo}
 */
proto.google.ads.googleads.v0.common.ProductConditionInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.ProductConditionEnum.ProductCondition} */ (reader.readEnum());
      msg.setCondition(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ProductConditionInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ProductConditionInfo.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.ads.googleads.v0.common.ProductConditionInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductConditionInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCondition();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.ProductConditionEnum.ProductCondition condition = 1;
 * @return {!proto.google.ads.googleads.v0.enums.ProductConditionEnum.ProductCondition}
 */
proto.google.ads.googleads.v0.common.ProductConditionInfo.prototype.getCondition = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.ProductConditionEnum.ProductCondition} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.ProductConditionEnum.ProductCondition} value */
proto.google.ads.googleads.v0.common.ProductConditionInfo.prototype.setCondition = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.ProductOfferIdInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ProductOfferIdInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ProductOfferIdInfo.displayName = 'proto.google.ads.googleads.v0.common.ProductOfferIdInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ProductOfferIdInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ProductOfferIdInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ProductOfferIdInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductOfferIdInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    value: (f = msg.getValue()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.ProductOfferIdInfo}
 */
proto.google.ads.googleads.v0.common.ProductOfferIdInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ProductOfferIdInfo;
  return proto.google.ads.googleads.v0.common.ProductOfferIdInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ProductOfferIdInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ProductOfferIdInfo.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.ads.googleads.v0.common.ProductOfferIdInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductOfferIdInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getValue();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue value = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.ProductOfferIdInfo.prototype.getValue = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.ProductOfferIdInfo.prototype.setValue = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.ProductOfferIdInfo.prototype.clearValue = function() {
  this.setValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ProductOfferIdInfo.prototype.hasValue = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.ProductTypeInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ProductTypeInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ProductTypeInfo.displayName = 'proto.google.ads.googleads.v0.common.ProductTypeInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ProductTypeInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ProductTypeInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ProductTypeInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductTypeInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    value: (f = msg.getValue()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    level: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  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.ads.googleads.v0.common.ProductTypeInfo}
 */
proto.google.ads.googleads.v0.common.ProductTypeInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ProductTypeInfo;
  return proto.google.ads.googleads.v0.common.ProductTypeInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ProductTypeInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ProductTypeInfo}
 */
proto.google.ads.googleads.v0.common.ProductTypeInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setValue(value);
      break;
    case 2:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.ProductTypeLevelEnum.ProductTypeLevel} */ (reader.readEnum());
      msg.setLevel(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ProductTypeInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ProductTypeInfo.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.ads.googleads.v0.common.ProductTypeInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProductTypeInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getValue();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getLevel();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
};


/**
 * optional google.protobuf.StringValue value = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.ProductTypeInfo.prototype.getValue = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.ProductTypeInfo.prototype.setValue = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.ProductTypeInfo.prototype.clearValue = function() {
  this.setValue(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ProductTypeInfo.prototype.hasValue = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.ads.googleads.v0.enums.ProductTypeLevelEnum.ProductTypeLevel level = 2;
 * @return {!proto.google.ads.googleads.v0.enums.ProductTypeLevelEnum.ProductTypeLevel}
 */
proto.google.ads.googleads.v0.common.ProductTypeInfo.prototype.getLevel = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.ProductTypeLevelEnum.ProductTypeLevel} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.ProductTypeLevelEnum.ProductTypeLevel} value */
proto.google.ads.googleads.v0.common.ProductTypeInfo.prototype.setLevel = function(value) {
  jspb.Message.setProto3EnumField(this, 2, value);
};



/**
 * 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.ads.googleads.v0.common.HotelDateSelectionTypeInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.displayName = 'proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.HotelDateSelectionTypeInfo}
 */
proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo;
  return proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo}
 */
proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.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.ads.googleads.v0.common.HotelDateSelectionTypeInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType}
 */
proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum.HotelDateSelectionType} value */
proto.google.ads.googleads.v0.common.HotelDateSelectionTypeInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.displayName = 'proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    minDays: (f = msg.getMinDays()) && google_protobuf_wrappers_pb.Int64Value.toObject(includeInstance, f),
    maxDays: (f = msg.getMaxDays()) && google_protobuf_wrappers_pb.Int64Value.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.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo}
 */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo;
  return proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.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.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMinDays();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.Int64Value.serializeBinaryToWriter
    );
  }
  f = message.getMaxDays();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_wrappers_pb.Int64Value.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.Int64Value min_days = 1;
 * @return {?proto.google.protobuf.Int64Value}
 */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.getMinDays = function() {
  return /** @type{?proto.google.protobuf.Int64Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int64Value, 1));
};


/** @param {?proto.google.protobuf.Int64Value|undefined} value */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.setMinDays = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.clearMinDays = function() {
  this.setMinDays(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.hasMinDays = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.protobuf.Int64Value max_days = 2;
 * @return {?proto.google.protobuf.Int64Value}
 */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.getMaxDays = function() {
  return /** @type{?proto.google.protobuf.Int64Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int64Value, 2));
};


/** @param {?proto.google.protobuf.Int64Value|undefined} value */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.setMaxDays = function(value) {
  jspb.Message.setWrapperField(this, 2, value);
};


proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.clearMaxDays = function() {
  this.setMaxDays(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo.prototype.hasMaxDays = function() {
  return jspb.Message.getField(this, 2) != null;
};



/**
 * 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.ads.googleads.v0.common.HotelLengthOfStayInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.displayName = 'proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    minNights: (f = msg.getMinNights()) && google_protobuf_wrappers_pb.Int64Value.toObject(includeInstance, f),
    maxNights: (f = msg.getMaxNights()) && google_protobuf_wrappers_pb.Int64Value.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.ads.googleads.v0.common.HotelLengthOfStayInfo}
 */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo;
  return proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.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.ads.googleads.v0.common.HotelLengthOfStayInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMinNights();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.Int64Value.serializeBinaryToWriter
    );
  }
  f = message.getMaxNights();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_wrappers_pb.Int64Value.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.Int64Value min_nights = 1;
 * @return {?proto.google.protobuf.Int64Value}
 */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.getMinNights = function() {
  return /** @type{?proto.google.protobuf.Int64Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int64Value, 1));
};


/** @param {?proto.google.protobuf.Int64Value|undefined} value */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.setMinNights = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.clearMinNights = function() {
  this.setMinNights(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.hasMinNights = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.protobuf.Int64Value max_nights = 2;
 * @return {?proto.google.protobuf.Int64Value}
 */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.getMaxNights = function() {
  return /** @type{?proto.google.protobuf.Int64Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int64Value, 2));
};


/** @param {?proto.google.protobuf.Int64Value|undefined} value */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.setMaxNights = function(value) {
  jspb.Message.setWrapperField(this, 2, value);
};


proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.clearMaxNights = function() {
  this.setMaxNights(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.HotelLengthOfStayInfo.prototype.hasMaxNights = function() {
  return jspb.Message.getField(this, 2) != null;
};



/**
 * 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.ads.googleads.v0.common.HotelCheckInDayInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.HotelCheckInDayInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.displayName = 'proto.google.ads.googleads.v0.common.HotelCheckInDayInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.HotelCheckInDayInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    dayOfWeek: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.HotelCheckInDayInfo}
 */
proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.HotelCheckInDayInfo;
  return proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.HotelCheckInDayInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.HotelCheckInDayInfo}
 */
proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek} */ (reader.readEnum());
      msg.setDayOfWeek(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.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.ads.googleads.v0.common.HotelCheckInDayInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getDayOfWeek();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek day_of_week = 1;
 * @return {!proto.google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek}
 */
proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.prototype.getDayOfWeek = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek} value */
proto.google.ads.googleads.v0.common.HotelCheckInDayInfo.prototype.setDayOfWeek = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.InteractionTypeInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.InteractionTypeInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.InteractionTypeInfo.displayName = 'proto.google.ads.googleads.v0.common.InteractionTypeInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.InteractionTypeInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.InteractionTypeInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.InteractionTypeInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.InteractionTypeInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.InteractionTypeInfo}
 */
proto.google.ads.googleads.v0.common.InteractionTypeInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.InteractionTypeInfo;
  return proto.google.ads.googleads.v0.common.InteractionTypeInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.InteractionTypeInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.InteractionTypeInfo}
 */
proto.google.ads.googleads.v0.common.InteractionTypeInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.InteractionTypeEnum.InteractionType} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.InteractionTypeInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.InteractionTypeInfo.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.ads.googleads.v0.common.InteractionTypeInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.InteractionTypeInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.InteractionTypeEnum.InteractionType type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.InteractionTypeEnum.InteractionType}
 */
proto.google.ads.googleads.v0.common.InteractionTypeInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.InteractionTypeEnum.InteractionType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.InteractionTypeEnum.InteractionType} value */
proto.google.ads.googleads.v0.common.InteractionTypeInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.AdScheduleInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.AdScheduleInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.AdScheduleInfo.displayName = 'proto.google.ads.googleads.v0.common.AdScheduleInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.AdScheduleInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.AdScheduleInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    startMinute: jspb.Message.getFieldWithDefault(msg, 1, 0),
    endMinute: jspb.Message.getFieldWithDefault(msg, 2, 0),
    startHour: (f = msg.getStartHour()) && google_protobuf_wrappers_pb.Int32Value.toObject(includeInstance, f),
    endHour: (f = msg.getEndHour()) && google_protobuf_wrappers_pb.Int32Value.toObject(includeInstance, f),
    dayOfWeek: jspb.Message.getFieldWithDefault(msg, 5, 0)
  };

  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.ads.googleads.v0.common.AdScheduleInfo}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.AdScheduleInfo;
  return proto.google.ads.googleads.v0.common.AdScheduleInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.AdScheduleInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.AdScheduleInfo}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour} */ (reader.readEnum());
      msg.setStartMinute(value);
      break;
    case 2:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour} */ (reader.readEnum());
      msg.setEndMinute(value);
      break;
    case 3:
      var value = new google_protobuf_wrappers_pb.Int32Value;
      reader.readMessage(value,google_protobuf_wrappers_pb.Int32Value.deserializeBinaryFromReader);
      msg.setStartHour(value);
      break;
    case 4:
      var value = new google_protobuf_wrappers_pb.Int32Value;
      reader.readMessage(value,google_protobuf_wrappers_pb.Int32Value.deserializeBinaryFromReader);
      msg.setEndHour(value);
      break;
    case 5:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek} */ (reader.readEnum());
      msg.setDayOfWeek(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.AdScheduleInfo.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.ads.googleads.v0.common.AdScheduleInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getStartMinute();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getEndMinute();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
  f = message.getStartHour();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_wrappers_pb.Int32Value.serializeBinaryToWriter
    );
  }
  f = message.getEndHour();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      google_protobuf_wrappers_pb.Int32Value.serializeBinaryToWriter
    );
  }
  f = message.getDayOfWeek();
  if (f !== 0.0) {
    writer.writeEnum(
      5,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour start_minute = 1;
 * @return {!proto.google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.getStartMinute = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour} value */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.setStartMinute = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};


/**
 * optional google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour end_minute = 2;
 * @return {!proto.google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.getEndMinute = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.MinuteOfHourEnum.MinuteOfHour} value */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.setEndMinute = function(value) {
  jspb.Message.setProto3EnumField(this, 2, value);
};


/**
 * optional google.protobuf.Int32Value start_hour = 3;
 * @return {?proto.google.protobuf.Int32Value}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.getStartHour = function() {
  return /** @type{?proto.google.protobuf.Int32Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int32Value, 3));
};


/** @param {?proto.google.protobuf.Int32Value|undefined} value */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.setStartHour = function(value) {
  jspb.Message.setWrapperField(this, 3, value);
};


proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.clearStartHour = function() {
  this.setStartHour(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.hasStartHour = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional google.protobuf.Int32Value end_hour = 4;
 * @return {?proto.google.protobuf.Int32Value}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.getEndHour = function() {
  return /** @type{?proto.google.protobuf.Int32Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int32Value, 4));
};


/** @param {?proto.google.protobuf.Int32Value|undefined} value */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.setEndHour = function(value) {
  jspb.Message.setWrapperField(this, 4, value);
};


proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.clearEndHour = function() {
  this.setEndHour(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.hasEndHour = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek day_of_week = 5;
 * @return {!proto.google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek}
 */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.getDayOfWeek = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.DayOfWeekEnum.DayOfWeek} value */
proto.google.ads.googleads.v0.common.AdScheduleInfo.prototype.setDayOfWeek = function(value) {
  jspb.Message.setProto3EnumField(this, 5, value);
};



/**
 * 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.ads.googleads.v0.common.AgeRangeInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.AgeRangeInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.AgeRangeInfo.displayName = 'proto.google.ads.googleads.v0.common.AgeRangeInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.AgeRangeInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.AgeRangeInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.AgeRangeInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.AgeRangeInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.AgeRangeInfo}
 */
proto.google.ads.googleads.v0.common.AgeRangeInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.AgeRangeInfo;
  return proto.google.ads.googleads.v0.common.AgeRangeInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.AgeRangeInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.AgeRangeInfo}
 */
proto.google.ads.googleads.v0.common.AgeRangeInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.AgeRangeTypeEnum.AgeRangeType} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.AgeRangeInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.AgeRangeInfo.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.ads.googleads.v0.common.AgeRangeInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.AgeRangeInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.AgeRangeTypeEnum.AgeRangeType type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.AgeRangeTypeEnum.AgeRangeType}
 */
proto.google.ads.googleads.v0.common.AgeRangeInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.AgeRangeTypeEnum.AgeRangeType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.AgeRangeTypeEnum.AgeRangeType} value */
proto.google.ads.googleads.v0.common.AgeRangeInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.GenderInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.GenderInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.GenderInfo.displayName = 'proto.google.ads.googleads.v0.common.GenderInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.GenderInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.GenderInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.GenderInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.GenderInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.GenderInfo}
 */
proto.google.ads.googleads.v0.common.GenderInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.GenderInfo;
  return proto.google.ads.googleads.v0.common.GenderInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.GenderInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.GenderInfo}
 */
proto.google.ads.googleads.v0.common.GenderInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.GenderTypeEnum.GenderType} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.GenderInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.GenderInfo.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.ads.googleads.v0.common.GenderInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.GenderInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.GenderTypeEnum.GenderType type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.GenderTypeEnum.GenderType}
 */
proto.google.ads.googleads.v0.common.GenderInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.GenderTypeEnum.GenderType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.GenderTypeEnum.GenderType} value */
proto.google.ads.googleads.v0.common.GenderInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.IncomeRangeInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.IncomeRangeInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.IncomeRangeInfo.displayName = 'proto.google.ads.googleads.v0.common.IncomeRangeInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.IncomeRangeInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.IncomeRangeInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.IncomeRangeInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.IncomeRangeInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.IncomeRangeInfo}
 */
proto.google.ads.googleads.v0.common.IncomeRangeInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.IncomeRangeInfo;
  return proto.google.ads.googleads.v0.common.IncomeRangeInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.IncomeRangeInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.IncomeRangeInfo}
 */
proto.google.ads.googleads.v0.common.IncomeRangeInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.IncomeRangeTypeEnum.IncomeRangeType} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.IncomeRangeInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.IncomeRangeInfo.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.ads.googleads.v0.common.IncomeRangeInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.IncomeRangeInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.IncomeRangeTypeEnum.IncomeRangeType type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.IncomeRangeTypeEnum.IncomeRangeType}
 */
proto.google.ads.googleads.v0.common.IncomeRangeInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.IncomeRangeTypeEnum.IncomeRangeType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.IncomeRangeTypeEnum.IncomeRangeType} value */
proto.google.ads.googleads.v0.common.IncomeRangeInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.ParentalStatusInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ParentalStatusInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ParentalStatusInfo.displayName = 'proto.google.ads.googleads.v0.common.ParentalStatusInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ParentalStatusInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ParentalStatusInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ParentalStatusInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ParentalStatusInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.ParentalStatusInfo}
 */
proto.google.ads.googleads.v0.common.ParentalStatusInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ParentalStatusInfo;
  return proto.google.ads.googleads.v0.common.ParentalStatusInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ParentalStatusInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ParentalStatusInfo}
 */
proto.google.ads.googleads.v0.common.ParentalStatusInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.ParentalStatusTypeEnum.ParentalStatusType} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ParentalStatusInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ParentalStatusInfo.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.ads.googleads.v0.common.ParentalStatusInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ParentalStatusInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.ParentalStatusTypeEnum.ParentalStatusType type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.ParentalStatusTypeEnum.ParentalStatusType}
 */
proto.google.ads.googleads.v0.common.ParentalStatusInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.ParentalStatusTypeEnum.ParentalStatusType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.ParentalStatusTypeEnum.ParentalStatusType} value */
proto.google.ads.googleads.v0.common.ParentalStatusInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.YouTubeVideoInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.YouTubeVideoInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.YouTubeVideoInfo.displayName = 'proto.google.ads.googleads.v0.common.YouTubeVideoInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.YouTubeVideoInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.YouTubeVideoInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.YouTubeVideoInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.YouTubeVideoInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    videoId: (f = msg.getVideoId()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.YouTubeVideoInfo}
 */
proto.google.ads.googleads.v0.common.YouTubeVideoInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.YouTubeVideoInfo;
  return proto.google.ads.googleads.v0.common.YouTubeVideoInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.YouTubeVideoInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.YouTubeVideoInfo.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.ads.googleads.v0.common.YouTubeVideoInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.YouTubeVideoInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getVideoId();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue video_id = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.YouTubeVideoInfo.prototype.getVideoId = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.YouTubeVideoInfo.prototype.setVideoId = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.YouTubeVideoInfo.prototype.clearVideoId = function() {
  this.setVideoId(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.YouTubeVideoInfo.prototype.hasVideoId = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.YouTubeChannelInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.YouTubeChannelInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.YouTubeChannelInfo.displayName = 'proto.google.ads.googleads.v0.common.YouTubeChannelInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.YouTubeChannelInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.YouTubeChannelInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.YouTubeChannelInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.YouTubeChannelInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    channelId: (f = msg.getChannelId()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.YouTubeChannelInfo}
 */
proto.google.ads.googleads.v0.common.YouTubeChannelInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.YouTubeChannelInfo;
  return proto.google.ads.googleads.v0.common.YouTubeChannelInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.YouTubeChannelInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.YouTubeChannelInfo.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.ads.googleads.v0.common.YouTubeChannelInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.YouTubeChannelInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getChannelId();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue channel_id = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.YouTubeChannelInfo.prototype.getChannelId = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.YouTubeChannelInfo.prototype.setChannelId = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.YouTubeChannelInfo.prototype.clearChannelId = function() {
  this.setChannelId(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.YouTubeChannelInfo.prototype.hasChannelId = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.UserListInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.UserListInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.UserListInfo.displayName = 'proto.google.ads.googleads.v0.common.UserListInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.UserListInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.UserListInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.UserListInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.UserListInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    userList: (f = msg.getUserList()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.UserListInfo}
 */
proto.google.ads.googleads.v0.common.UserListInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.UserListInfo;
  return proto.google.ads.googleads.v0.common.UserListInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.UserListInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.UserListInfo.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.ads.googleads.v0.common.UserListInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.UserListInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUserList();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue user_list = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.UserListInfo.prototype.getUserList = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.UserListInfo.prototype.setUserList = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.UserListInfo.prototype.clearUserList = function() {
  this.setUserList(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.UserListInfo.prototype.hasUserList = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.ProximityInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ProximityInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ProximityInfo.displayName = 'proto.google.ads.googleads.v0.common.ProximityInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ProximityInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ProximityInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProximityInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    geoPoint: (f = msg.getGeoPoint()) && proto.google.ads.googleads.v0.common.GeoPointInfo.toObject(includeInstance, f),
    radius: (f = msg.getRadius()) && google_protobuf_wrappers_pb.DoubleValue.toObject(includeInstance, f),
    radiusUnits: jspb.Message.getFieldWithDefault(msg, 3, 0),
    address: (f = msg.getAddress()) && proto.google.ads.googleads.v0.common.AddressInfo.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.ads.googleads.v0.common.ProximityInfo}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ProximityInfo;
  return proto.google.ads.googleads.v0.common.ProximityInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ProximityInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ProximityInfo}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.google.ads.googleads.v0.common.GeoPointInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.GeoPointInfo.deserializeBinaryFromReader);
      msg.setGeoPoint(value);
      break;
    case 2:
      var value = new google_protobuf_wrappers_pb.DoubleValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.DoubleValue.deserializeBinaryFromReader);
      msg.setRadius(value);
      break;
    case 3:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits} */ (reader.readEnum());
      msg.setRadiusUnits(value);
      break;
    case 4:
      var value = new proto.google.ads.googleads.v0.common.AddressInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.AddressInfo.deserializeBinaryFromReader);
      msg.setAddress(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ProximityInfo.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.ads.googleads.v0.common.ProximityInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ProximityInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getGeoPoint();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.google.ads.googleads.v0.common.GeoPointInfo.serializeBinaryToWriter
    );
  }
  f = message.getRadius();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_wrappers_pb.DoubleValue.serializeBinaryToWriter
    );
  }
  f = message.getRadiusUnits();
  if (f !== 0.0) {
    writer.writeEnum(
      3,
      f
    );
  }
  f = message.getAddress();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.google.ads.googleads.v0.common.AddressInfo.serializeBinaryToWriter
    );
  }
};


/**
 * optional GeoPointInfo geo_point = 1;
 * @return {?proto.google.ads.googleads.v0.common.GeoPointInfo}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.getGeoPoint = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.GeoPointInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.GeoPointInfo, 1));
};


/** @param {?proto.google.ads.googleads.v0.common.GeoPointInfo|undefined} value */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.setGeoPoint = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.ProximityInfo.prototype.clearGeoPoint = function() {
  this.setGeoPoint(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.hasGeoPoint = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.protobuf.DoubleValue radius = 2;
 * @return {?proto.google.protobuf.DoubleValue}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.getRadius = function() {
  return /** @type{?proto.google.protobuf.DoubleValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.DoubleValue, 2));
};


/** @param {?proto.google.protobuf.DoubleValue|undefined} value */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.setRadius = function(value) {
  jspb.Message.setWrapperField(this, 2, value);
};


proto.google.ads.googleads.v0.common.ProximityInfo.prototype.clearRadius = function() {
  this.setRadius(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.hasRadius = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional google.ads.googleads.v0.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits radius_units = 3;
 * @return {!proto.google.ads.googleads.v0.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.getRadiusUnits = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.ProximityRadiusUnitsEnum.ProximityRadiusUnits} value */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.setRadiusUnits = function(value) {
  jspb.Message.setProto3EnumField(this, 3, value);
};


/**
 * optional AddressInfo address = 4;
 * @return {?proto.google.ads.googleads.v0.common.AddressInfo}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.getAddress = function() {
  return /** @type{?proto.google.ads.googleads.v0.common.AddressInfo} */ (
    jspb.Message.getWrapperField(this, proto.google.ads.googleads.v0.common.AddressInfo, 4));
};


/** @param {?proto.google.ads.googleads.v0.common.AddressInfo|undefined} value */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.setAddress = function(value) {
  jspb.Message.setWrapperField(this, 4, value);
};


proto.google.ads.googleads.v0.common.ProximityInfo.prototype.clearAddress = function() {
  this.setAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.ProximityInfo.prototype.hasAddress = function() {
  return jspb.Message.getField(this, 4) != null;
};



/**
 * 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.ads.googleads.v0.common.GeoPointInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.GeoPointInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.GeoPointInfo.displayName = 'proto.google.ads.googleads.v0.common.GeoPointInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.GeoPointInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.GeoPointInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.GeoPointInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    longitudeInMicroDegrees: (f = msg.getLongitudeInMicroDegrees()) && google_protobuf_wrappers_pb.Int32Value.toObject(includeInstance, f),
    latitudeInMicroDegrees: (f = msg.getLatitudeInMicroDegrees()) && google_protobuf_wrappers_pb.Int32Value.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.ads.googleads.v0.common.GeoPointInfo}
 */
proto.google.ads.googleads.v0.common.GeoPointInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.GeoPointInfo;
  return proto.google.ads.googleads.v0.common.GeoPointInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.GeoPointInfo.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.ads.googleads.v0.common.GeoPointInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.GeoPointInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getLongitudeInMicroDegrees();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.Int32Value.serializeBinaryToWriter
    );
  }
  f = message.getLatitudeInMicroDegrees();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_wrappers_pb.Int32Value.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.Int32Value longitude_in_micro_degrees = 1;
 * @return {?proto.google.protobuf.Int32Value}
 */
proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.getLongitudeInMicroDegrees = function() {
  return /** @type{?proto.google.protobuf.Int32Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int32Value, 1));
};


/** @param {?proto.google.protobuf.Int32Value|undefined} value */
proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.setLongitudeInMicroDegrees = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.clearLongitudeInMicroDegrees = function() {
  this.setLongitudeInMicroDegrees(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.hasLongitudeInMicroDegrees = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.protobuf.Int32Value latitude_in_micro_degrees = 2;
 * @return {?proto.google.protobuf.Int32Value}
 */
proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.getLatitudeInMicroDegrees = function() {
  return /** @type{?proto.google.protobuf.Int32Value} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.Int32Value, 2));
};


/** @param {?proto.google.protobuf.Int32Value|undefined} value */
proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.setLatitudeInMicroDegrees = function(value) {
  jspb.Message.setWrapperField(this, 2, value);
};


proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.clearLatitudeInMicroDegrees = function() {
  this.setLatitudeInMicroDegrees(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.GeoPointInfo.prototype.hasLatitudeInMicroDegrees = function() {
  return jspb.Message.getField(this, 2) != null;
};



/**
 * 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.ads.googleads.v0.common.AddressInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.AddressInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.AddressInfo.displayName = 'proto.google.ads.googleads.v0.common.AddressInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.AddressInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.AddressInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.AddressInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    postalCode: (f = msg.getPostalCode()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    provinceCode: (f = msg.getProvinceCode()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    countryCode: (f = msg.getCountryCode()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    provinceName: (f = msg.getProvinceName()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    streetAddress: (f = msg.getStreetAddress()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    streetAddress2: (f = msg.getStreetAddress2()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    cityName: (f = msg.getCityName()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.AddressInfo}
 */
proto.google.ads.googleads.v0.common.AddressInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.AddressInfo;
  return proto.google.ads.googleads.v0.common.AddressInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.AddressInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.AddressInfo}
 */
proto.google.ads.googleads.v0.common.AddressInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setPostalCode(value);
      break;
    case 2:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setProvinceCode(value);
      break;
    case 3:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setCountryCode(value);
      break;
    case 4:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setProvinceName(value);
      break;
    case 5:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setStreetAddress(value);
      break;
    case 6:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setStreetAddress2(value);
      break;
    case 7:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setCityName(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.AddressInfo.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.ads.googleads.v0.common.AddressInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.AddressInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPostalCode();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getProvinceCode();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getCountryCode();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getProvinceName();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getStreetAddress();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getStreetAddress2();
  if (f != null) {
    writer.writeMessage(
      6,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getCityName();
  if (f != null) {
    writer.writeMessage(
      7,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue postal_code = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.getPostalCode = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.setPostalCode = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.AddressInfo.prototype.clearPostalCode = function() {
  this.setPostalCode(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.hasPostalCode = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional google.protobuf.StringValue province_code = 2;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.getProvinceCode = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 2));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.setProvinceCode = function(value) {
  jspb.Message.setWrapperField(this, 2, value);
};


proto.google.ads.googleads.v0.common.AddressInfo.prototype.clearProvinceCode = function() {
  this.setProvinceCode(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.hasProvinceCode = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional google.protobuf.StringValue country_code = 3;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.getCountryCode = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 3));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.setCountryCode = function(value) {
  jspb.Message.setWrapperField(this, 3, value);
};


proto.google.ads.googleads.v0.common.AddressInfo.prototype.clearCountryCode = function() {
  this.setCountryCode(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.hasCountryCode = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * optional google.protobuf.StringValue province_name = 4;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.getProvinceName = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 4));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.setProvinceName = function(value) {
  jspb.Message.setWrapperField(this, 4, value);
};


proto.google.ads.googleads.v0.common.AddressInfo.prototype.clearProvinceName = function() {
  this.setProvinceName(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.hasProvinceName = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional google.protobuf.StringValue street_address = 5;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.getStreetAddress = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 5));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.setStreetAddress = function(value) {
  jspb.Message.setWrapperField(this, 5, value);
};


proto.google.ads.googleads.v0.common.AddressInfo.prototype.clearStreetAddress = function() {
  this.setStreetAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.hasStreetAddress = function() {
  return jspb.Message.getField(this, 5) != null;
};


/**
 * optional google.protobuf.StringValue street_address2 = 6;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.getStreetAddress2 = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 6));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.setStreetAddress2 = function(value) {
  jspb.Message.setWrapperField(this, 6, value);
};


proto.google.ads.googleads.v0.common.AddressInfo.prototype.clearStreetAddress2 = function() {
  this.setStreetAddress2(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.hasStreetAddress2 = function() {
  return jspb.Message.getField(this, 6) != null;
};


/**
 * optional google.protobuf.StringValue city_name = 7;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.getCityName = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 7));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.setCityName = function(value) {
  jspb.Message.setWrapperField(this, 7, value);
};


proto.google.ads.googleads.v0.common.AddressInfo.prototype.clearCityName = function() {
  this.setCityName(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.AddressInfo.prototype.hasCityName = function() {
  return jspb.Message.getField(this, 7) != null;
};



/**
 * 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.ads.googleads.v0.common.TopicInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.google.ads.googleads.v0.common.TopicInfo.repeatedFields_, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.TopicInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.TopicInfo.displayName = 'proto.google.ads.googleads.v0.common.TopicInfo';
}
/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.google.ads.googleads.v0.common.TopicInfo.repeatedFields_ = [2];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.TopicInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.TopicInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.TopicInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.TopicInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    topicConstant: (f = msg.getTopicConstant()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    pathList: jspb.Message.toObjectList(msg.getPathList(),
    google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.TopicInfo}
 */
proto.google.ads.googleads.v0.common.TopicInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.TopicInfo;
  return proto.google.ads.googleads.v0.common.TopicInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.TopicInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.TopicInfo.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.ads.googleads.v0.common.TopicInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.TopicInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTopicConstant();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getPathList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue topic_constant = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.TopicInfo.prototype.getTopicConstant = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.TopicInfo.prototype.setTopicConstant = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.TopicInfo.prototype.clearTopicConstant = function() {
  this.setTopicConstant(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.TopicInfo.prototype.hasTopicConstant = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * repeated google.protobuf.StringValue path = 2;
 * @return {!Array<!proto.google.protobuf.StringValue>}
 */
proto.google.ads.googleads.v0.common.TopicInfo.prototype.getPathList = function() {
  return /** @type{!Array<!proto.google.protobuf.StringValue>} */ (
    jspb.Message.getRepeatedWrapperField(this, google_protobuf_wrappers_pb.StringValue, 2));
};


/** @param {!Array<!proto.google.protobuf.StringValue>} value */
proto.google.ads.googleads.v0.common.TopicInfo.prototype.setPathList = function(value) {
  jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.google.protobuf.StringValue=} opt_value
 * @param {number=} opt_index
 * @return {!proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.TopicInfo.prototype.addPath = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.google.protobuf.StringValue, opt_index);
};


proto.google.ads.googleads.v0.common.TopicInfo.prototype.clearPathList = function() {
  this.setPathList([]);
};



/**
 * 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.ads.googleads.v0.common.LanguageInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.LanguageInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.LanguageInfo.displayName = 'proto.google.ads.googleads.v0.common.LanguageInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.LanguageInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.LanguageInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.LanguageInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.LanguageInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    languageConstant: (f = msg.getLanguageConstant()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.LanguageInfo}
 */
proto.google.ads.googleads.v0.common.LanguageInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.LanguageInfo;
  return proto.google.ads.googleads.v0.common.LanguageInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.LanguageInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.LanguageInfo.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.ads.googleads.v0.common.LanguageInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.LanguageInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getLanguageConstant();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue language_constant = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.LanguageInfo.prototype.getLanguageConstant = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.LanguageInfo.prototype.setLanguageConstant = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.LanguageInfo.prototype.clearLanguageConstant = function() {
  this.setLanguageConstant(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.LanguageInfo.prototype.hasLanguageConstant = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.IpBlockInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.IpBlockInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.IpBlockInfo.displayName = 'proto.google.ads.googleads.v0.common.IpBlockInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.IpBlockInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.IpBlockInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.IpBlockInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.IpBlockInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    ipAddress: (f = msg.getIpAddress()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.IpBlockInfo}
 */
proto.google.ads.googleads.v0.common.IpBlockInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.IpBlockInfo;
  return proto.google.ads.googleads.v0.common.IpBlockInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.IpBlockInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.IpBlockInfo.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.ads.googleads.v0.common.IpBlockInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.IpBlockInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getIpAddress();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue ip_address = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.IpBlockInfo.prototype.getIpAddress = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.IpBlockInfo.prototype.setIpAddress = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.IpBlockInfo.prototype.clearIpAddress = function() {
  this.setIpAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.IpBlockInfo.prototype.hasIpAddress = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.ContentLabelInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.ContentLabelInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.ContentLabelInfo.displayName = 'proto.google.ads.googleads.v0.common.ContentLabelInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.ContentLabelInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.ContentLabelInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.ContentLabelInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ContentLabelInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.ContentLabelInfo}
 */
proto.google.ads.googleads.v0.common.ContentLabelInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.ContentLabelInfo;
  return proto.google.ads.googleads.v0.common.ContentLabelInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.ContentLabelInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.ContentLabelInfo}
 */
proto.google.ads.googleads.v0.common.ContentLabelInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.ContentLabelTypeEnum.ContentLabelType} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.ContentLabelInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.ContentLabelInfo.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.ads.googleads.v0.common.ContentLabelInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.ContentLabelInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.ContentLabelTypeEnum.ContentLabelType type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.ContentLabelTypeEnum.ContentLabelType}
 */
proto.google.ads.googleads.v0.common.ContentLabelInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.ContentLabelTypeEnum.ContentLabelType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.ContentLabelTypeEnum.ContentLabelType} value */
proto.google.ads.googleads.v0.common.ContentLabelInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};



/**
 * 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.ads.googleads.v0.common.CarrierInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.CarrierInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.CarrierInfo.displayName = 'proto.google.ads.googleads.v0.common.CarrierInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.CarrierInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.CarrierInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.CarrierInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.CarrierInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    carrierConstant: (f = msg.getCarrierConstant()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.CarrierInfo}
 */
proto.google.ads.googleads.v0.common.CarrierInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.CarrierInfo;
  return proto.google.ads.googleads.v0.common.CarrierInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.CarrierInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.CarrierInfo.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.ads.googleads.v0.common.CarrierInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.CarrierInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCarrierConstant();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue carrier_constant = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.CarrierInfo.prototype.getCarrierConstant = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.CarrierInfo.prototype.setCarrierConstant = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.CarrierInfo.prototype.clearCarrierConstant = function() {
  this.setCarrierConstant(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.CarrierInfo.prototype.hasCarrierConstant = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.UserInterestInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.UserInterestInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.UserInterestInfo.displayName = 'proto.google.ads.googleads.v0.common.UserInterestInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.UserInterestInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.UserInterestInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.UserInterestInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.UserInterestInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    userInterestCategory: (f = msg.getUserInterestCategory()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.UserInterestInfo}
 */
proto.google.ads.googleads.v0.common.UserInterestInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.UserInterestInfo;
  return proto.google.ads.googleads.v0.common.UserInterestInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.UserInterestInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.UserInterestInfo.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.ads.googleads.v0.common.UserInterestInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.UserInterestInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUserInterestCategory();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue user_interest_category = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.UserInterestInfo.prototype.getUserInterestCategory = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.UserInterestInfo.prototype.setUserInterestCategory = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.UserInterestInfo.prototype.clearUserInterestCategory = function() {
  this.setUserInterestCategory(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.UserInterestInfo.prototype.hasUserInterestCategory = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.WebpageInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.google.ads.googleads.v0.common.WebpageInfo.repeatedFields_, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.WebpageInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.WebpageInfo.displayName = 'proto.google.ads.googleads.v0.common.WebpageInfo';
}
/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.google.ads.googleads.v0.common.WebpageInfo.repeatedFields_ = [2];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.WebpageInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.WebpageInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.WebpageInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.WebpageInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    criterionName: (f = msg.getCriterionName()) && google_protobuf_wrappers_pb.StringValue.toObject(includeInstance, f),
    conditionsList: jspb.Message.toObjectList(msg.getConditionsList(),
    proto.google.ads.googleads.v0.common.WebpageConditionInfo.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.ads.googleads.v0.common.WebpageInfo}
 */
proto.google.ads.googleads.v0.common.WebpageInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.WebpageInfo;
  return proto.google.ads.googleads.v0.common.WebpageInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.WebpageInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.WebpageInfo}
 */
proto.google.ads.googleads.v0.common.WebpageInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setCriterionName(value);
      break;
    case 2:
      var value = new proto.google.ads.googleads.v0.common.WebpageConditionInfo;
      reader.readMessage(value,proto.google.ads.googleads.v0.common.WebpageConditionInfo.deserializeBinaryFromReader);
      msg.addConditions(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.WebpageInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.WebpageInfo.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.ads.googleads.v0.common.WebpageInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.WebpageInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCriterionName();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
  f = message.getConditionsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.google.ads.googleads.v0.common.WebpageConditionInfo.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue criterion_name = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.WebpageInfo.prototype.getCriterionName = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.WebpageInfo.prototype.setCriterionName = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.WebpageInfo.prototype.clearCriterionName = function() {
  this.setCriterionName(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.WebpageInfo.prototype.hasCriterionName = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * repeated WebpageConditionInfo conditions = 2;
 * @return {!Array<!proto.google.ads.googleads.v0.common.WebpageConditionInfo>}
 */
proto.google.ads.googleads.v0.common.WebpageInfo.prototype.getConditionsList = function() {
  return /** @type{!Array<!proto.google.ads.googleads.v0.common.WebpageConditionInfo>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.google.ads.googleads.v0.common.WebpageConditionInfo, 2));
};


/** @param {!Array<!proto.google.ads.googleads.v0.common.WebpageConditionInfo>} value */
proto.google.ads.googleads.v0.common.WebpageInfo.prototype.setConditionsList = function(value) {
  jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.google.ads.googleads.v0.common.WebpageConditionInfo=} opt_value
 * @param {number=} opt_index
 * @return {!proto.google.ads.googleads.v0.common.WebpageConditionInfo}
 */
proto.google.ads.googleads.v0.common.WebpageInfo.prototype.addConditions = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.google.ads.googleads.v0.common.WebpageConditionInfo, opt_index);
};


proto.google.ads.googleads.v0.common.WebpageInfo.prototype.clearConditionsList = function() {
  this.setConditionsList([]);
};



/**
 * 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.ads.googleads.v0.common.WebpageConditionInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.WebpageConditionInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.WebpageConditionInfo.displayName = 'proto.google.ads.googleads.v0.common.WebpageConditionInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.WebpageConditionInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.WebpageConditionInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    operand: jspb.Message.getFieldWithDefault(msg, 1, 0),
    operator: jspb.Message.getFieldWithDefault(msg, 2, 0),
    argument: (f = msg.getArgument()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.WebpageConditionInfo}
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.WebpageConditionInfo;
  return proto.google.ads.googleads.v0.common.WebpageConditionInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.WebpageConditionInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.WebpageConditionInfo}
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.WebpageConditionOperandEnum.WebpageConditionOperand} */ (reader.readEnum());
      msg.setOperand(value);
      break;
    case 2:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.WebpageConditionOperatorEnum.WebpageConditionOperator} */ (reader.readEnum());
      msg.setOperator(value);
      break;
    case 3:
      var value = new google_protobuf_wrappers_pb.StringValue;
      reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader);
      msg.setArgument(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.WebpageConditionInfo.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.ads.googleads.v0.common.WebpageConditionInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getOperand();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getOperator();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
  f = message.getArgument();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.WebpageConditionOperandEnum.WebpageConditionOperand operand = 1;
 * @return {!proto.google.ads.googleads.v0.enums.WebpageConditionOperandEnum.WebpageConditionOperand}
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.getOperand = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.WebpageConditionOperandEnum.WebpageConditionOperand} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.WebpageConditionOperandEnum.WebpageConditionOperand} value */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.setOperand = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};


/**
 * optional google.ads.googleads.v0.enums.WebpageConditionOperatorEnum.WebpageConditionOperator operator = 2;
 * @return {!proto.google.ads.googleads.v0.enums.WebpageConditionOperatorEnum.WebpageConditionOperator}
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.getOperator = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.WebpageConditionOperatorEnum.WebpageConditionOperator} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.WebpageConditionOperatorEnum.WebpageConditionOperator} value */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.setOperator = function(value) {
  jspb.Message.setProto3EnumField(this, 2, value);
};


/**
 * optional google.protobuf.StringValue argument = 3;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.getArgument = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 3));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.setArgument = function(value) {
  jspb.Message.setWrapperField(this, 3, value);
};


proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.clearArgument = function() {
  this.setArgument(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.WebpageConditionInfo.prototype.hasArgument = function() {
  return jspb.Message.getField(this, 3) != null;
};



/**
 * 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.ads.googleads.v0.common.OperatingSystemVersionInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.displayName = 'proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    operatingSystemVersionConstant: (f = msg.getOperatingSystemVersionConstant()) && google_protobuf_wrappers_pb.StringValue.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.ads.googleads.v0.common.OperatingSystemVersionInfo}
 */
proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo;
  return proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.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.ads.googleads.v0.common.OperatingSystemVersionInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getOperatingSystemVersionConstant();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter
    );
  }
};


/**
 * optional google.protobuf.StringValue operating_system_version_constant = 1;
 * @return {?proto.google.protobuf.StringValue}
 */
proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.prototype.getOperatingSystemVersionConstant = function() {
  return /** @type{?proto.google.protobuf.StringValue} */ (
    jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1));
};


/** @param {?proto.google.protobuf.StringValue|undefined} value */
proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.prototype.setOperatingSystemVersionConstant = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.prototype.clearOperatingSystemVersionConstant = function() {
  this.setOperatingSystemVersionConstant(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.google.ads.googleads.v0.common.OperatingSystemVersionInfo.prototype.hasOperatingSystemVersionConstant = function() {
  return jspb.Message.getField(this, 1) != null;
};



/**
 * 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.ads.googleads.v0.common.AppPaymentModelInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.google.ads.googleads.v0.common.AppPaymentModelInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.google.ads.googleads.v0.common.AppPaymentModelInfo.displayName = 'proto.google.ads.googleads.v0.common.AppPaymentModelInfo';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.google.ads.googleads.v0.common.AppPaymentModelInfo.prototype.toObject = function(opt_includeInstance) {
  return proto.google.ads.googleads.v0.common.AppPaymentModelInfo.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.google.ads.googleads.v0.common.AppPaymentModelInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.AppPaymentModelInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    type: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  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.ads.googleads.v0.common.AppPaymentModelInfo}
 */
proto.google.ads.googleads.v0.common.AppPaymentModelInfo.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.google.ads.googleads.v0.common.AppPaymentModelInfo;
  return proto.google.ads.googleads.v0.common.AppPaymentModelInfo.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.google.ads.googleads.v0.common.AppPaymentModelInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.google.ads.googleads.v0.common.AppPaymentModelInfo}
 */
proto.google.ads.googleads.v0.common.AppPaymentModelInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.google.ads.googleads.v0.enums.AppPaymentModelTypeEnum.AppPaymentModelType} */ (reader.readEnum());
      msg.setType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.google.ads.googleads.v0.common.AppPaymentModelInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.google.ads.googleads.v0.common.AppPaymentModelInfo.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.ads.googleads.v0.common.AppPaymentModelInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.google.ads.googleads.v0.common.AppPaymentModelInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * optional google.ads.googleads.v0.enums.AppPaymentModelTypeEnum.AppPaymentModelType type = 1;
 * @return {!proto.google.ads.googleads.v0.enums.AppPaymentModelTypeEnum.AppPaymentModelType}
 */
proto.google.ads.googleads.v0.common.AppPaymentModelInfo.prototype.getType = function() {
  return /** @type {!proto.google.ads.googleads.v0.enums.AppPaymentModelTypeEnum.AppPaymentModelType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.google.ads.googleads.v0.enums.AppPaymentModelTypeEnum.AppPaymentModelType} value */
proto.google.ads.googleads.v0.common.AppPaymentModelInfo.prototype.setType = function(value) {
  jspb.Message.setProto3EnumField(this, 1, value);
};


goog.object.extend(exports, proto.google.ads.googleads.v0.common);