UNPKG

@adempiere/grpc-web-store-api

Version:

ADempiere Web Store write in Javascript for a node service

18,858 lines 526 kB
// source: proto/web_store.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {missingRequire} reports error on implicit type usages.
 * @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!
/* eslint-disable */
// @ts-nocheck

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

var proto_client_pb = require('../proto/client_pb.js');
goog.object.extend(proto, proto_client_pb);
goog.exportSymbol('proto.store.Address', null, global);
goog.exportSymbol('proto.store.AddressRequest', null, global);
goog.exportSymbol('proto.store.Attribute', null, global);
goog.exportSymbol('proto.store.Cart', null, global);
goog.exportSymbol('proto.store.CartItem', null, global);
goog.exportSymbol('proto.store.CartItem.ProductType', null, global);
goog.exportSymbol('proto.store.CartTotals', null, global);
goog.exportSymbol('proto.store.ChangePasswordRequest', null, global);
goog.exportSymbol('proto.store.ChangePasswordResponse', null, global);
goog.exportSymbol('proto.store.ChangePasswordResponse.ResponseType', null, global);
goog.exportSymbol('proto.store.City', null, global);
goog.exportSymbol('proto.store.Condition', null, global);
goog.exportSymbol('proto.store.Condition.Operator', null, global);
goog.exportSymbol('proto.store.ConfigurableItemOption', null, global);
goog.exportSymbol('proto.store.CreateCartRequest', null, global);
goog.exportSymbol('proto.store.CreateCustomerRequest', null, global);
goog.exportSymbol('proto.store.CreateOrderRequest', null, global);
goog.exportSymbol('proto.store.Criteria', null, global);
goog.exportSymbol('proto.store.Customer', null, global);
goog.exportSymbol('proto.store.DeleteCartItemRequest', null, global);
goog.exportSymbol('proto.store.Empty', null, global);
goog.exportSymbol('proto.store.ExtensionAttribute', null, global);
goog.exportSymbol('proto.store.FormattedPrice', null, global);
goog.exportSymbol('proto.store.GetCartRequest', null, global);
goog.exportSymbol('proto.store.GetCartTotalsRequest', null, global);
goog.exportSymbol('proto.store.GetCustomerRequest', null, global);
goog.exportSymbol('proto.store.GetResourceRequest', null, global);
goog.exportSymbol('proto.store.GetResourceRequest.Operation', null, global);
goog.exportSymbol('proto.store.GetShippingInformationRequest', null, global);
goog.exportSymbol('proto.store.GetStockRequest', null, global);
goog.exportSymbol('proto.store.ListOrdersRequest', null, global);
goog.exportSymbol('proto.store.ListOrdersResponse', null, global);
goog.exportSymbol('proto.store.ListPaymentMethodsRequest', null, global);
goog.exportSymbol('proto.store.ListPaymentMethodsResponse', null, global);
goog.exportSymbol('proto.store.ListProductsRequest', null, global);
goog.exportSymbol('proto.store.ListProductsResponse', null, global);
goog.exportSymbol('proto.store.ListRenderProductsRequest', null, global);
goog.exportSymbol('proto.store.ListRenderProductsResponse', null, global);
goog.exportSymbol('proto.store.ListShippingMethodsRequest', null, global);
goog.exportSymbol('proto.store.ListShippingMethodsResponse', null, global);
goog.exportSymbol('proto.store.ListStocksRequest', null, global);
goog.exportSymbol('proto.store.ListStocksResponse', null, global);
goog.exportSymbol('proto.store.Order', null, global);
goog.exportSymbol('proto.store.OrderLine', null, global);
goog.exportSymbol('proto.store.OrderLine.ProductType', null, global);
goog.exportSymbol('proto.store.PaymentMethod', null, global);
goog.exportSymbol('proto.store.PaymentRequest', null, global);
goog.exportSymbol('proto.store.PriceInfo', null, global);
goog.exportSymbol('proto.store.Product', null, global);
goog.exportSymbol('proto.store.Product.Status', null, global);
goog.exportSymbol('proto.store.Product.Visibility', null, global);
goog.exportSymbol('proto.store.ProductOrderLine', null, global);
goog.exportSymbol('proto.store.Rate', null, global);
goog.exportSymbol('proto.store.Region', null, global);
goog.exportSymbol('proto.store.RenderProduct', null, global);
goog.exportSymbol('proto.store.RenderProduct.ProductType', null, global);
goog.exportSymbol('proto.store.ResetPasswordRequest', null, global);
goog.exportSymbol('proto.store.ResetPasswordResponse', null, global);
goog.exportSymbol('proto.store.ResetPasswordResponse.ResponseType', null, global);
goog.exportSymbol('proto.store.Resource', null, global);
goog.exportSymbol('proto.store.ShippingInformation', null, global);
goog.exportSymbol('proto.store.ShippingMethod', null, global);
goog.exportSymbol('proto.store.Stock', null, global);
goog.exportSymbol('proto.store.TaxAdjustment', null, global);
goog.exportSymbol('proto.store.TotalSegment', null, global);
goog.exportSymbol('proto.store.UpdateCartRequest', null, global);
goog.exportSymbol('proto.store.UpdateCustomerRequest', 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.store.ListOrdersRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ListOrdersRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListOrdersRequest.displayName = 'proto.store.ListOrdersRequest';
}
/**
 * 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.store.ListOrdersResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ListOrdersResponse.repeatedFields_, null);
};
goog.inherits(proto.store.ListOrdersResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListOrdersResponse.displayName = 'proto.store.ListOrdersResponse';
}
/**
 * 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.store.DeleteCartItemRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.DeleteCartItemRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.DeleteCartItemRequest.displayName = 'proto.store.DeleteCartItemRequest';
}
/**
 * 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.store.Empty = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.Empty, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Empty.displayName = 'proto.store.Empty';
}
/**
 * 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.store.GetCartTotalsRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.GetCartTotalsRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.GetCartTotalsRequest.displayName = 'proto.store.GetCartTotalsRequest';
}
/**
 * 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.store.GetShippingInformationRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.GetShippingInformationRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.GetShippingInformationRequest.displayName = 'proto.store.GetShippingInformationRequest';
}
/**
 * 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.store.UpdateCustomerRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.UpdateCustomerRequest.repeatedFields_, null);
};
goog.inherits(proto.store.UpdateCustomerRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.UpdateCustomerRequest.displayName = 'proto.store.UpdateCustomerRequest';
}
/**
 * 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.store.AddressRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.AddressRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.AddressRequest.displayName = 'proto.store.AddressRequest';
}
/**
 * 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.store.ShippingInformation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ShippingInformation.repeatedFields_, null);
};
goog.inherits(proto.store.ShippingInformation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ShippingInformation.displayName = 'proto.store.ShippingInformation';
}
/**
 * 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.store.CartTotals = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.CartTotals.repeatedFields_, null);
};
goog.inherits(proto.store.CartTotals, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.CartTotals.displayName = 'proto.store.CartTotals';
}
/**
 * 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.store.TotalSegment = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.TotalSegment.repeatedFields_, null);
};
goog.inherits(proto.store.TotalSegment, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.TotalSegment.displayName = 'proto.store.TotalSegment';
}
/**
 * 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.store.ExtensionAttribute = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ExtensionAttribute.repeatedFields_, null);
};
goog.inherits(proto.store.ExtensionAttribute, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ExtensionAttribute.displayName = 'proto.store.ExtensionAttribute';
}
/**
 * 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.store.Rate = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.Rate, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Rate.displayName = 'proto.store.Rate';
}
/**
 * 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.store.ListShippingMethodsRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ListShippingMethodsRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListShippingMethodsRequest.displayName = 'proto.store.ListShippingMethodsRequest';
}
/**
 * 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.store.ListShippingMethodsResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ListShippingMethodsResponse.repeatedFields_, null);
};
goog.inherits(proto.store.ListShippingMethodsResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListShippingMethodsResponse.displayName = 'proto.store.ListShippingMethodsResponse';
}
/**
 * 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.store.ShippingMethod = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ShippingMethod, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ShippingMethod.displayName = 'proto.store.ShippingMethod';
}
/**
 * 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.store.ListPaymentMethodsRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ListPaymentMethodsRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListPaymentMethodsRequest.displayName = 'proto.store.ListPaymentMethodsRequest';
}
/**
 * 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.store.ListPaymentMethodsResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ListPaymentMethodsResponse.repeatedFields_, null);
};
goog.inherits(proto.store.ListPaymentMethodsResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListPaymentMethodsResponse.displayName = 'proto.store.ListPaymentMethodsResponse';
}
/**
 * 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.store.PaymentMethod = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.PaymentMethod, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.PaymentMethod.displayName = 'proto.store.PaymentMethod';
}
/**
 * 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.store.CreateOrderRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.CreateOrderRequest.repeatedFields_, null);
};
goog.inherits(proto.store.CreateOrderRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.CreateOrderRequest.displayName = 'proto.store.CreateOrderRequest';
}
/**
 * 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.store.ProductOrderLine = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ProductOrderLine.repeatedFields_, null);
};
goog.inherits(proto.store.ProductOrderLine, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ProductOrderLine.displayName = 'proto.store.ProductOrderLine';
}
/**
 * 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.store.PaymentRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.PaymentRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.PaymentRequest.displayName = 'proto.store.PaymentRequest';
}
/**
 * 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.store.Order = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.Order.repeatedFields_, null);
};
goog.inherits(proto.store.Order, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Order.displayName = 'proto.store.Order';
}
/**
 * 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.store.OrderLine = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.OrderLine, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.OrderLine.displayName = 'proto.store.OrderLine';
}
/**
 * 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.store.UpdateCartRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.UpdateCartRequest.repeatedFields_, null);
};
goog.inherits(proto.store.UpdateCartRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.UpdateCartRequest.displayName = 'proto.store.UpdateCartRequest';
}
/**
 * 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.store.ConfigurableItemOption = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ConfigurableItemOption, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ConfigurableItemOption.displayName = 'proto.store.ConfigurableItemOption';
}
/**
 * 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.store.GetCartRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.GetCartRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.GetCartRequest.displayName = 'proto.store.GetCartRequest';
}
/**
 * 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.store.CreateCartRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.CreateCartRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.CreateCartRequest.displayName = 'proto.store.CreateCartRequest';
}
/**
 * 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.store.Cart = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.Cart.repeatedFields_, null);
};
goog.inherits(proto.store.Cart, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Cart.displayName = 'proto.store.Cart';
}
/**
 * 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.store.CartItem = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.CartItem.repeatedFields_, null);
};
goog.inherits(proto.store.CartItem, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.CartItem.displayName = 'proto.store.CartItem';
}
/**
 * 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.store.GetResourceRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.GetResourceRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.GetResourceRequest.displayName = 'proto.store.GetResourceRequest';
}
/**
 * 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.store.Resource = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.Resource, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Resource.displayName = 'proto.store.Resource';
}
/**
 * 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.store.CreateCustomerRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.CreateCustomerRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.CreateCustomerRequest.displayName = 'proto.store.CreateCustomerRequest';
}
/**
 * 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.store.GetCustomerRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.GetCustomerRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.GetCustomerRequest.displayName = 'proto.store.GetCustomerRequest';
}
/**
 * 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.store.GetStockRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.GetStockRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.GetStockRequest.displayName = 'proto.store.GetStockRequest';
}
/**
 * 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.store.ListStocksRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ListStocksRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListStocksRequest.displayName = 'proto.store.ListStocksRequest';
}
/**
 * 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.store.ListStocksResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ListStocksResponse.repeatedFields_, null);
};
goog.inherits(proto.store.ListStocksResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListStocksResponse.displayName = 'proto.store.ListStocksResponse';
}
/**
 * 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.store.ListProductsRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ListProductsRequest.repeatedFields_, null);
};
goog.inherits(proto.store.ListProductsRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListProductsRequest.displayName = 'proto.store.ListProductsRequest';
}
/**
 * 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.store.ListProductsResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ListProductsResponse.repeatedFields_, null);
};
goog.inherits(proto.store.ListProductsResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListProductsResponse.displayName = 'proto.store.ListProductsResponse';
}
/**
 * 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.store.Stock = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.Stock, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Stock.displayName = 'proto.store.Stock';
}
/**
 * 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.store.Product = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.Product.repeatedFields_, null);
};
goog.inherits(proto.store.Product, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Product.displayName = 'proto.store.Product';
}
/**
 * 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.store.ListRenderProductsRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ListRenderProductsRequest.repeatedFields_, null);
};
goog.inherits(proto.store.ListRenderProductsRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListRenderProductsRequest.displayName = 'proto.store.ListRenderProductsRequest';
}
/**
 * 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.store.ListRenderProductsResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.ListRenderProductsResponse.repeatedFields_, null);
};
goog.inherits(proto.store.ListRenderProductsResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ListRenderProductsResponse.displayName = 'proto.store.ListRenderProductsResponse';
}
/**
 * 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.store.RenderProduct = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.RenderProduct, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.RenderProduct.displayName = 'proto.store.RenderProduct';
}
/**
 * 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.store.PriceInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.PriceInfo, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.PriceInfo.displayName = 'proto.store.PriceInfo';
}
/**
 * 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.store.FormattedPrice = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.FormattedPrice, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.FormattedPrice.displayName = 'proto.store.FormattedPrice';
}
/**
 * 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.store.TaxAdjustment = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.TaxAdjustment, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.TaxAdjustment.displayName = 'proto.store.TaxAdjustment';
}
/**
 * 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.store.Attribute = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.Attribute.repeatedFields_, null);
};
goog.inherits(proto.store.Attribute, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Attribute.displayName = 'proto.store.Attribute';
}
/**
 * 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.store.Criteria = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.Criteria.repeatedFields_, null);
};
goog.inherits(proto.store.Criteria, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Criteria.displayName = 'proto.store.Criteria';
}
/**
 * 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.store.Condition = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.Condition, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Condition.displayName = 'proto.store.Condition';
}
/**
 * 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.store.Customer = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.store.Customer.repeatedFields_, null);
};
goog.inherits(proto.store.Customer, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Customer.displayName = 'proto.store.Customer';
}
/**
 * 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.store.Address = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.Address, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Address.displayName = 'proto.store.Address';
}
/**
 * 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.store.City = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.City, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.City.displayName = 'proto.store.City';
}
/**
 * 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.store.Region = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.Region, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.Region.displayName = 'proto.store.Region';
}
/**
 * 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.store.ResetPasswordRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ResetPasswordRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ResetPasswordRequest.displayName = 'proto.store.ResetPasswordRequest';
}
/**
 * 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.store.ResetPasswordResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ResetPasswordResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ResetPasswordResponse.displayName = 'proto.store.ResetPasswordResponse';
}
/**
 * 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.store.ChangePasswordRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ChangePasswordRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ChangePasswordRequest.displayName = 'proto.store.ChangePasswordRequest';
}
/**
 * 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.store.ChangePasswordResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.store.ChangePasswordResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.store.ChangePasswordResponse.displayName = 'proto.store.ChangePasswordResponse';
}



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListOrdersRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListOrdersRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    cartId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    pageSize: jspb.Message.getFieldWithDefault(msg, 5, 0),
    pageToken: jspb.Message.getFieldWithDefault(msg, 6, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListOrdersRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListOrdersRequest}
 */
proto.store.ListOrdersRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCartId(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPageSize(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListOrdersRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListOrdersRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCartId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeInt32(
      5,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.ListOrdersRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.ListOrdersRequest} returns this
*/
proto.store.ListOrdersRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ListOrdersRequest} returns this
 */
proto.store.ListOrdersRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 cart_id = 2;
 * @return {number}
 */
proto.store.ListOrdersRequest.prototype.getCartId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListOrdersRequest} returns this
 */
proto.store.ListOrdersRequest.prototype.setCartId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional int32 page_size = 5;
 * @return {number}
 */
proto.store.ListOrdersRequest.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListOrdersRequest} returns this
 */
proto.store.ListOrdersRequest.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 5, value);
};


/**
 * optional string page_token = 6;
 * @return {string}
 */
proto.store.ListOrdersRequest.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListOrdersRequest} returns this
 */
proto.store.ListOrdersRequest.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListOrdersResponse} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListOrdersResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    recordCount: jspb.Message.getFieldWithDefault(msg, 1, 0),
    ordersList: jspb.Message.toObjectList(msg.getOrdersList(),
    proto.store.Order.toObject, includeInstance),
    nextPageToken: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListOrdersResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListOrdersResponse}
 */
proto.store.ListOrdersResponse.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setRecordCount(value);
      break;
    case 2:
      var value = new proto.store.Order;
      reader.readMessage(value,proto.store.Order.deserializeBinaryFromReader);
      msg.addOrders(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setNextPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListOrdersResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListOrdersResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getRecordCount();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getOrdersList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.store.Order.serializeBinaryToWriter
    );
  }
  f = message.getNextPageToken();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int64 record_count = 1;
 * @return {number}
 */
proto.store.ListOrdersResponse.prototype.getRecordCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListOrdersResponse} returns this
 */
proto.store.ListOrdersResponse.prototype.setRecordCount = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * repeated Order orders = 2;
 * @return {!Array<!proto.store.Order>}
 */
proto.store.ListOrdersResponse.prototype.getOrdersList = function() {
  return /** @type{!Array<!proto.store.Order>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.Order, 2));
};


/**
 * @param {!Array<!proto.store.Order>} value
 * @return {!proto.store.ListOrdersResponse} returns this
*/
proto.store.ListOrdersResponse.prototype.setOrdersList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.store.Order=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.Order}
 */
proto.store.ListOrdersResponse.prototype.addOrders = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.store.Order, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ListOrdersResponse} returns this
 */
proto.store.ListOrdersResponse.prototype.clearOrdersList = function() {
  return this.setOrdersList([]);
};


/**
 * optional string next_page_token = 3;
 * @return {string}
 */
proto.store.ListOrdersResponse.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListOrdersResponse} returns this
 */
proto.store.ListOrdersResponse.prototype.setNextPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.DeleteCartItemRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.DeleteCartItemRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    cartId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    cartUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
    sku: jspb.Message.getFieldWithDefault(msg, 4, ""),
    productId: 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.store.DeleteCartItemRequest}
 */
proto.store.DeleteCartItemRequest.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.DeleteCartItemRequest;
  return proto.store.DeleteCartItemRequest.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.DeleteCartItemRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.DeleteCartItemRequest}
 */
proto.store.DeleteCartItemRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCartId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCartUuid(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setSku(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setProductId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.DeleteCartItemRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.DeleteCartItemRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCartId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getCartUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getSku();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getProductId();
  if (f !== 0) {
    writer.writeInt32(
      5,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.DeleteCartItemRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.DeleteCartItemRequest} returns this
*/
proto.store.DeleteCartItemRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.DeleteCartItemRequest} returns this
 */
proto.store.DeleteCartItemRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 cart_id = 2;
 * @return {number}
 */
proto.store.DeleteCartItemRequest.prototype.getCartId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.DeleteCartItemRequest} returns this
 */
proto.store.DeleteCartItemRequest.prototype.setCartId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string cart_uuid = 3;
 * @return {string}
 */
proto.store.DeleteCartItemRequest.prototype.getCartUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.DeleteCartItemRequest} returns this
 */
proto.store.DeleteCartItemRequest.prototype.setCartUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string sku = 4;
 * @return {string}
 */
proto.store.DeleteCartItemRequest.prototype.getSku = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.DeleteCartItemRequest} returns this
 */
proto.store.DeleteCartItemRequest.prototype.setSku = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional int32 product_id = 5;
 * @return {number}
 */
proto.store.DeleteCartItemRequest.prototype.getProductId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.DeleteCartItemRequest} returns this
 */
proto.store.DeleteCartItemRequest.prototype.setProductId = function(value) {
  return jspb.Message.setProto3IntField(this, 5, value);
};





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


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

  };

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Empty} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Empty.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.GetCartTotalsRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetCartTotalsRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    cartId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    cartUuid: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.GetCartTotalsRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.GetCartTotalsRequest}
 */
proto.store.GetCartTotalsRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCartId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCartUuid(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.GetCartTotalsRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetCartTotalsRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCartId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getCartUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.GetCartTotalsRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.GetCartTotalsRequest} returns this
*/
proto.store.GetCartTotalsRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.GetCartTotalsRequest} returns this
 */
proto.store.GetCartTotalsRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 cart_id = 2;
 * @return {number}
 */
proto.store.GetCartTotalsRequest.prototype.getCartId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.GetCartTotalsRequest} returns this
 */
proto.store.GetCartTotalsRequest.prototype.setCartId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string cart_uuid = 3;
 * @return {string}
 */
proto.store.GetCartTotalsRequest.prototype.getCartUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.GetCartTotalsRequest} returns this
 */
proto.store.GetCartTotalsRequest.prototype.setCartUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.GetShippingInformationRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetShippingInformationRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    cartId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    cartUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
    shippingAddress: (f = msg.getShippingAddress()) && proto.store.AddressRequest.toObject(includeInstance, f),
    billingAddress: (f = msg.getBillingAddress()) && proto.store.AddressRequest.toObject(includeInstance, f),
    carrierCode: jspb.Message.getFieldWithDefault(msg, 6, ""),
    methodCode: jspb.Message.getFieldWithDefault(msg, 7, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.GetShippingInformationRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.GetShippingInformationRequest}
 */
proto.store.GetShippingInformationRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCartId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCartUuid(value);
      break;
    case 4:
      var value = new proto.store.AddressRequest;
      reader.readMessage(value,proto.store.AddressRequest.deserializeBinaryFromReader);
      msg.setShippingAddress(value);
      break;
    case 5:
      var value = new proto.store.AddressRequest;
      reader.readMessage(value,proto.store.AddressRequest.deserializeBinaryFromReader);
      msg.setBillingAddress(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setCarrierCode(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setMethodCode(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.GetShippingInformationRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetShippingInformationRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCartId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getCartUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getShippingAddress();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.store.AddressRequest.serializeBinaryToWriter
    );
  }
  f = message.getBillingAddress();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      proto.store.AddressRequest.serializeBinaryToWriter
    );
  }
  f = message.getCarrierCode();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getMethodCode();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.GetShippingInformationRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.GetShippingInformationRequest} returns this
*/
proto.store.GetShippingInformationRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.GetShippingInformationRequest} returns this
 */
proto.store.GetShippingInformationRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 cart_id = 2;
 * @return {number}
 */
proto.store.GetShippingInformationRequest.prototype.getCartId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.GetShippingInformationRequest} returns this
 */
proto.store.GetShippingInformationRequest.prototype.setCartId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string cart_uuid = 3;
 * @return {string}
 */
proto.store.GetShippingInformationRequest.prototype.getCartUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.GetShippingInformationRequest} returns this
 */
proto.store.GetShippingInformationRequest.prototype.setCartUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional AddressRequest shipping_address = 4;
 * @return {?proto.store.AddressRequest}
 */
proto.store.GetShippingInformationRequest.prototype.getShippingAddress = function() {
  return /** @type{?proto.store.AddressRequest} */ (
    jspb.Message.getWrapperField(this, proto.store.AddressRequest, 4));
};


/**
 * @param {?proto.store.AddressRequest|undefined} value
 * @return {!proto.store.GetShippingInformationRequest} returns this
*/
proto.store.GetShippingInformationRequest.prototype.setShippingAddress = function(value) {
  return jspb.Message.setWrapperField(this, 4, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.GetShippingInformationRequest} returns this
 */
proto.store.GetShippingInformationRequest.prototype.clearShippingAddress = function() {
  return this.setShippingAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.GetShippingInformationRequest.prototype.hasShippingAddress = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional AddressRequest billing_address = 5;
 * @return {?proto.store.AddressRequest}
 */
proto.store.GetShippingInformationRequest.prototype.getBillingAddress = function() {
  return /** @type{?proto.store.AddressRequest} */ (
    jspb.Message.getWrapperField(this, proto.store.AddressRequest, 5));
};


/**
 * @param {?proto.store.AddressRequest|undefined} value
 * @return {!proto.store.GetShippingInformationRequest} returns this
*/
proto.store.GetShippingInformationRequest.prototype.setBillingAddress = function(value) {
  return jspb.Message.setWrapperField(this, 5, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.GetShippingInformationRequest} returns this
 */
proto.store.GetShippingInformationRequest.prototype.clearBillingAddress = function() {
  return this.setBillingAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.GetShippingInformationRequest.prototype.hasBillingAddress = function() {
  return jspb.Message.getField(this, 5) != null;
};


/**
 * optional string carrier_code = 6;
 * @return {string}
 */
proto.store.GetShippingInformationRequest.prototype.getCarrierCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.GetShippingInformationRequest} returns this
 */
proto.store.GetShippingInformationRequest.prototype.setCarrierCode = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string method_code = 7;
 * @return {string}
 */
proto.store.GetShippingInformationRequest.prototype.getMethodCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.GetShippingInformationRequest} returns this
 */
proto.store.GetShippingInformationRequest.prototype.setMethodCode = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.UpdateCustomerRequest.repeatedFields_ = [14];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.UpdateCustomerRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.UpdateCustomerRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    id: jspb.Message.getFieldWithDefault(msg, 2, 0),
    businessPartnerGroupId: jspb.Message.getFieldWithDefault(msg, 3, 0),
    created: jspb.Message.getFieldWithDefault(msg, 4, ""),
    updated: jspb.Message.getFieldWithDefault(msg, 5, ""),
    organizationName: jspb.Message.getFieldWithDefault(msg, 6, ""),
    email: jspb.Message.getFieldWithDefault(msg, 7, ""),
    firstName: jspb.Message.getFieldWithDefault(msg, 8, ""),
    lastName: jspb.Message.getFieldWithDefault(msg, 9, ""),
    webStoreId: jspb.Message.getFieldWithDefault(msg, 10, 0),
    websiteId: jspb.Message.getFieldWithDefault(msg, 11, 0),
    defaultBilling: jspb.Message.getFieldWithDefault(msg, 12, 0),
    defaultShipping: jspb.Message.getFieldWithDefault(msg, 13, 0),
    addressesList: jspb.Message.toObjectList(msg.getAddressesList(),
    proto.store.AddressRequest.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.store.UpdateCustomerRequest}
 */
proto.store.UpdateCustomerRequest.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.UpdateCustomerRequest;
  return proto.store.UpdateCustomerRequest.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.UpdateCustomerRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.UpdateCustomerRequest}
 */
proto.store.UpdateCustomerRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setBusinessPartnerGroupId(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setCreated(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdated(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setOrganizationName(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setEmail(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setFirstName(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setLastName(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setWebStoreId(value);
      break;
    case 11:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setWebsiteId(value);
      break;
    case 12:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setDefaultBilling(value);
      break;
    case 13:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setDefaultShipping(value);
      break;
    case 14:
      var value = new proto.store.AddressRequest;
      reader.readMessage(value,proto.store.AddressRequest.deserializeBinaryFromReader);
      msg.addAddresses(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.UpdateCustomerRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.UpdateCustomerRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getBusinessPartnerGroupId();
  if (f !== 0) {
    writer.writeInt32(
      3,
      f
    );
  }
  f = message.getCreated();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getUpdated();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getOrganizationName();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getEmail();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getFirstName();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getLastName();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getWebStoreId();
  if (f !== 0) {
    writer.writeInt32(
      10,
      f
    );
  }
  f = message.getWebsiteId();
  if (f !== 0) {
    writer.writeInt32(
      11,
      f
    );
  }
  f = message.getDefaultBilling();
  if (f !== 0) {
    writer.writeInt32(
      12,
      f
    );
  }
  f = message.getDefaultShipping();
  if (f !== 0) {
    writer.writeInt32(
      13,
      f
    );
  }
  f = message.getAddressesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      14,
      f,
      proto.store.AddressRequest.serializeBinaryToWriter
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.UpdateCustomerRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
*/
proto.store.UpdateCustomerRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 id = 2;
 * @return {number}
 */
proto.store.UpdateCustomerRequest.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional int32 business_partner_group_id = 3;
 * @return {number}
 */
proto.store.UpdateCustomerRequest.prototype.getBusinessPartnerGroupId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setBusinessPartnerGroupId = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional string created = 4;
 * @return {string}
 */
proto.store.UpdateCustomerRequest.prototype.getCreated = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setCreated = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string updated = 5;
 * @return {string}
 */
proto.store.UpdateCustomerRequest.prototype.getUpdated = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setUpdated = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string organization_name = 6;
 * @return {string}
 */
proto.store.UpdateCustomerRequest.prototype.getOrganizationName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setOrganizationName = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string email = 7;
 * @return {string}
 */
proto.store.UpdateCustomerRequest.prototype.getEmail = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setEmail = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string first_name = 8;
 * @return {string}
 */
proto.store.UpdateCustomerRequest.prototype.getFirstName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setFirstName = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string last_name = 9;
 * @return {string}
 */
proto.store.UpdateCustomerRequest.prototype.getLastName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setLastName = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};


/**
 * optional int32 web_store_id = 10;
 * @return {number}
 */
proto.store.UpdateCustomerRequest.prototype.getWebStoreId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setWebStoreId = function(value) {
  return jspb.Message.setProto3IntField(this, 10, value);
};


/**
 * optional int32 website_id = 11;
 * @return {number}
 */
proto.store.UpdateCustomerRequest.prototype.getWebsiteId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setWebsiteId = function(value) {
  return jspb.Message.setProto3IntField(this, 11, value);
};


/**
 * optional int32 default_billing = 12;
 * @return {number}
 */
proto.store.UpdateCustomerRequest.prototype.getDefaultBilling = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 12, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setDefaultBilling = function(value) {
  return jspb.Message.setProto3IntField(this, 12, value);
};


/**
 * optional int32 default_shipping = 13;
 * @return {number}
 */
proto.store.UpdateCustomerRequest.prototype.getDefaultShipping = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 13, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.setDefaultShipping = function(value) {
  return jspb.Message.setProto3IntField(this, 13, value);
};


/**
 * repeated AddressRequest addresses = 14;
 * @return {!Array<!proto.store.AddressRequest>}
 */
proto.store.UpdateCustomerRequest.prototype.getAddressesList = function() {
  return /** @type{!Array<!proto.store.AddressRequest>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.AddressRequest, 14));
};


/**
 * @param {!Array<!proto.store.AddressRequest>} value
 * @return {!proto.store.UpdateCustomerRequest} returns this
*/
proto.store.UpdateCustomerRequest.prototype.setAddressesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 14, value);
};


/**
 * @param {!proto.store.AddressRequest=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.AddressRequest}
 */
proto.store.UpdateCustomerRequest.prototype.addAddresses = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 14, opt_value, proto.store.AddressRequest, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.UpdateCustomerRequest} returns this
 */
proto.store.UpdateCustomerRequest.prototype.clearAddressesList = function() {
  return this.setAddressesList([]);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.AddressRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.AddressRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    firstName: jspb.Message.getFieldWithDefault(msg, 2, ""),
    lastName: jspb.Message.getFieldWithDefault(msg, 3, ""),
    locationId: jspb.Message.getFieldWithDefault(msg, 4, 0),
    countryCode: jspb.Message.getFieldWithDefault(msg, 5, ""),
    regionId: jspb.Message.getFieldWithDefault(msg, 6, 0),
    regionName: jspb.Message.getFieldWithDefault(msg, 7, ""),
    cityName: jspb.Message.getFieldWithDefault(msg, 8, ""),
    postalCode: jspb.Message.getFieldWithDefault(msg, 9, ""),
    phone: jspb.Message.getFieldWithDefault(msg, 10, ""),
    address1: jspb.Message.getFieldWithDefault(msg, 11, ""),
    address2: jspb.Message.getFieldWithDefault(msg, 12, ""),
    address3: jspb.Message.getFieldWithDefault(msg, 13, ""),
    address4: jspb.Message.getFieldWithDefault(msg, 14, ""),
    isDefaultBilling: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),
    isDefaultShipping: jspb.Message.getBooleanFieldWithDefault(msg, 16, false)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.AddressRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.AddressRequest}
 */
proto.store.AddressRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setFirstName(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setLastName(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setLocationId(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setCountryCode(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setRegionId(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setRegionName(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setCityName(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setPostalCode(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setPhone(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setAddress1(value);
      break;
    case 12:
      var value = /** @type {string} */ (reader.readString());
      msg.setAddress2(value);
      break;
    case 13:
      var value = /** @type {string} */ (reader.readString());
      msg.setAddress3(value);
      break;
    case 14:
      var value = /** @type {string} */ (reader.readString());
      msg.setAddress4(value);
      break;
    case 15:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsDefaultBilling(value);
      break;
    case 16:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsDefaultShipping(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.AddressRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.AddressRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getFirstName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getLastName();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getLocationId();
  if (f !== 0) {
    writer.writeInt32(
      4,
      f
    );
  }
  f = message.getCountryCode();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getRegionId();
  if (f !== 0) {
    writer.writeInt32(
      6,
      f
    );
  }
  f = message.getRegionName();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getCityName();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getPostalCode();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getPhone();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
  f = message.getAddress1();
  if (f.length > 0) {
    writer.writeString(
      11,
      f
    );
  }
  f = message.getAddress2();
  if (f.length > 0) {
    writer.writeString(
      12,
      f
    );
  }
  f = message.getAddress3();
  if (f.length > 0) {
    writer.writeString(
      13,
      f
    );
  }
  f = message.getAddress4();
  if (f.length > 0) {
    writer.writeString(
      14,
      f
    );
  }
  f = message.getIsDefaultBilling();
  if (f) {
    writer.writeBool(
      15,
      f
    );
  }
  f = message.getIsDefaultShipping();
  if (f) {
    writer.writeBool(
      16,
      f
    );
  }
};


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.AddressRequest.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string first_name = 2;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getFirstName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setFirstName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string last_name = 3;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getLastName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setLastName = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional int32 location_id = 4;
 * @return {number}
 */
proto.store.AddressRequest.prototype.getLocationId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setLocationId = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional string country_code = 5;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getCountryCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setCountryCode = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional int32 region_id = 6;
 * @return {number}
 */
proto.store.AddressRequest.prototype.getRegionId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setRegionId = function(value) {
  return jspb.Message.setProto3IntField(this, 6, value);
};


/**
 * optional string region_name = 7;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getRegionName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setRegionName = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string city_name = 8;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getCityName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setCityName = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string postal_code = 9;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getPostalCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setPostalCode = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};


/**
 * optional string phone = 10;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getPhone = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setPhone = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};


/**
 * optional string address1 = 11;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getAddress1 = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setAddress1 = function(value) {
  return jspb.Message.setProto3StringField(this, 11, value);
};


/**
 * optional string address2 = 12;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getAddress2 = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setAddress2 = function(value) {
  return jspb.Message.setProto3StringField(this, 12, value);
};


/**
 * optional string address3 = 13;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getAddress3 = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setAddress3 = function(value) {
  return jspb.Message.setProto3StringField(this, 13, value);
};


/**
 * optional string address4 = 14;
 * @return {string}
 */
proto.store.AddressRequest.prototype.getAddress4 = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setAddress4 = function(value) {
  return jspb.Message.setProto3StringField(this, 14, value);
};


/**
 * optional bool is_default_billing = 15;
 * @return {boolean}
 */
proto.store.AddressRequest.prototype.getIsDefaultBilling = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setIsDefaultBilling = function(value) {
  return jspb.Message.setProto3BooleanField(this, 15, value);
};


/**
 * optional bool is_default_shipping = 16;
 * @return {boolean}
 */
proto.store.AddressRequest.prototype.getIsDefaultShipping = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 16, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.AddressRequest} returns this
 */
proto.store.AddressRequest.prototype.setIsDefaultShipping = function(value) {
  return jspb.Message.setProto3BooleanField(this, 16, value);
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ShippingInformation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ShippingInformation.toObject = function(includeInstance, msg) {
  var f, obj = {
    cart: (f = msg.getCart()) && proto.store.Cart.toObject(includeInstance, f),
    paymentMethodsList: jspb.Message.toObjectList(msg.getPaymentMethodsList(),
    proto.store.PaymentMethod.toObject, includeInstance),
    totalSegmentsList: jspb.Message.toObjectList(msg.getTotalSegmentsList(),
    proto.store.TotalSegment.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.store.ShippingInformation}
 */
proto.store.ShippingInformation.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.ShippingInformation;
  return proto.store.ShippingInformation.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ShippingInformation} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ShippingInformation}
 */
proto.store.ShippingInformation.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.store.Cart;
      reader.readMessage(value,proto.store.Cart.deserializeBinaryFromReader);
      msg.setCart(value);
      break;
    case 2:
      var value = new proto.store.PaymentMethod;
      reader.readMessage(value,proto.store.PaymentMethod.deserializeBinaryFromReader);
      msg.addPaymentMethods(value);
      break;
    case 3:
      var value = new proto.store.TotalSegment;
      reader.readMessage(value,proto.store.TotalSegment.deserializeBinaryFromReader);
      msg.addTotalSegments(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ShippingInformation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ShippingInformation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCart();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.store.Cart.serializeBinaryToWriter
    );
  }
  f = message.getPaymentMethodsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.store.PaymentMethod.serializeBinaryToWriter
    );
  }
  f = message.getTotalSegmentsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      3,
      f,
      proto.store.TotalSegment.serializeBinaryToWriter
    );
  }
};


/**
 * optional Cart cart = 1;
 * @return {?proto.store.Cart}
 */
proto.store.ShippingInformation.prototype.getCart = function() {
  return /** @type{?proto.store.Cart} */ (
    jspb.Message.getWrapperField(this, proto.store.Cart, 1));
};


/**
 * @param {?proto.store.Cart|undefined} value
 * @return {!proto.store.ShippingInformation} returns this
*/
proto.store.ShippingInformation.prototype.setCart = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ShippingInformation} returns this
 */
proto.store.ShippingInformation.prototype.clearCart = function() {
  return this.setCart(undefined);
};


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


/**
 * repeated PaymentMethod payment_methods = 2;
 * @return {!Array<!proto.store.PaymentMethod>}
 */
proto.store.ShippingInformation.prototype.getPaymentMethodsList = function() {
  return /** @type{!Array<!proto.store.PaymentMethod>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.PaymentMethod, 2));
};


/**
 * @param {!Array<!proto.store.PaymentMethod>} value
 * @return {!proto.store.ShippingInformation} returns this
*/
proto.store.ShippingInformation.prototype.setPaymentMethodsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.store.PaymentMethod=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.PaymentMethod}
 */
proto.store.ShippingInformation.prototype.addPaymentMethods = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.store.PaymentMethod, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ShippingInformation} returns this
 */
proto.store.ShippingInformation.prototype.clearPaymentMethodsList = function() {
  return this.setPaymentMethodsList([]);
};


/**
 * repeated TotalSegment total_segments = 3;
 * @return {!Array<!proto.store.TotalSegment>}
 */
proto.store.ShippingInformation.prototype.getTotalSegmentsList = function() {
  return /** @type{!Array<!proto.store.TotalSegment>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.TotalSegment, 3));
};


/**
 * @param {!Array<!proto.store.TotalSegment>} value
 * @return {!proto.store.ShippingInformation} returns this
*/
proto.store.ShippingInformation.prototype.setTotalSegmentsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 3, value);
};


/**
 * @param {!proto.store.TotalSegment=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.TotalSegment}
 */
proto.store.ShippingInformation.prototype.addTotalSegments = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.store.TotalSegment, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ShippingInformation} returns this
 */
proto.store.ShippingInformation.prototype.clearTotalSegmentsList = function() {
  return this.setTotalSegmentsList([]);
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.CartTotals} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CartTotals.toObject = function(includeInstance, msg) {
  var f, obj = {
    cart: (f = msg.getCart()) && proto.store.Cart.toObject(includeInstance, f),
    totalSegmentsList: jspb.Message.toObjectList(msg.getTotalSegmentsList(),
    proto.store.TotalSegment.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.store.CartTotals}
 */
proto.store.CartTotals.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.CartTotals;
  return proto.store.CartTotals.deserializeBinaryFromReader(msg, reader);
};


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.CartTotals} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CartTotals.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCart();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.store.Cart.serializeBinaryToWriter
    );
  }
  f = message.getTotalSegmentsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.store.TotalSegment.serializeBinaryToWriter
    );
  }
};


/**
 * optional Cart cart = 1;
 * @return {?proto.store.Cart}
 */
proto.store.CartTotals.prototype.getCart = function() {
  return /** @type{?proto.store.Cart} */ (
    jspb.Message.getWrapperField(this, proto.store.Cart, 1));
};


/**
 * @param {?proto.store.Cart|undefined} value
 * @return {!proto.store.CartTotals} returns this
*/
proto.store.CartTotals.prototype.setCart = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.CartTotals} returns this
 */
proto.store.CartTotals.prototype.clearCart = function() {
  return this.setCart(undefined);
};


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


/**
 * repeated TotalSegment total_segments = 2;
 * @return {!Array<!proto.store.TotalSegment>}
 */
proto.store.CartTotals.prototype.getTotalSegmentsList = function() {
  return /** @type{!Array<!proto.store.TotalSegment>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.TotalSegment, 2));
};


/**
 * @param {!Array<!proto.store.TotalSegment>} value
 * @return {!proto.store.CartTotals} returns this
*/
proto.store.CartTotals.prototype.setTotalSegmentsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.store.TotalSegment=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.TotalSegment}
 */
proto.store.CartTotals.prototype.addTotalSegments = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.store.TotalSegment, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.CartTotals} returns this
 */
proto.store.CartTotals.prototype.clearTotalSegmentsList = function() {
  return this.setTotalSegmentsList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.TotalSegment.repeatedFields_ = [5];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.TotalSegment} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.TotalSegment.toObject = function(includeInstance, msg) {
  var f, obj = {
    code: jspb.Message.getFieldWithDefault(msg, 1, ""),
    name: jspb.Message.getFieldWithDefault(msg, 2, ""),
    value: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),
    area: jspb.Message.getFieldWithDefault(msg, 4, ""),
    taxesList: jspb.Message.toObjectList(msg.getTaxesList(),
    proto.store.ExtensionAttribute.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.store.TotalSegment}
 */
proto.store.TotalSegment.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.TotalSegment;
  return proto.store.TotalSegment.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.TotalSegment} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.TotalSegment}
 */
proto.store.TotalSegment.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setCode(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setValue(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setArea(value);
      break;
    case 5:
      var value = new proto.store.ExtensionAttribute;
      reader.readMessage(value,proto.store.ExtensionAttribute.deserializeBinaryFromReader);
      msg.addTaxes(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.TotalSegment} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.TotalSegment.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getCode();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getValue();
  if (f !== 0.0) {
    writer.writeDouble(
      3,
      f
    );
  }
  f = message.getArea();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getTaxesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      5,
      f,
      proto.store.ExtensionAttribute.serializeBinaryToWriter
    );
  }
};


/**
 * optional string code = 1;
 * @return {string}
 */
proto.store.TotalSegment.prototype.getCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.TotalSegment} returns this
 */
proto.store.TotalSegment.prototype.setCode = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string name = 2;
 * @return {string}
 */
proto.store.TotalSegment.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.TotalSegment} returns this
 */
proto.store.TotalSegment.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional double value = 3;
 * @return {number}
 */
proto.store.TotalSegment.prototype.getValue = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.TotalSegment} returns this
 */
proto.store.TotalSegment.prototype.setValue = function(value) {
  return jspb.Message.setProto3FloatField(this, 3, value);
};


/**
 * optional string area = 4;
 * @return {string}
 */
proto.store.TotalSegment.prototype.getArea = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.TotalSegment} returns this
 */
proto.store.TotalSegment.prototype.setArea = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * repeated ExtensionAttribute taxes = 5;
 * @return {!Array<!proto.store.ExtensionAttribute>}
 */
proto.store.TotalSegment.prototype.getTaxesList = function() {
  return /** @type{!Array<!proto.store.ExtensionAttribute>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.ExtensionAttribute, 5));
};


/**
 * @param {!Array<!proto.store.ExtensionAttribute>} value
 * @return {!proto.store.TotalSegment} returns this
*/
proto.store.TotalSegment.prototype.setTaxesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 5, value);
};


/**
 * @param {!proto.store.ExtensionAttribute=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.ExtensionAttribute}
 */
proto.store.TotalSegment.prototype.addTaxes = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.store.ExtensionAttribute, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.TotalSegment} returns this
 */
proto.store.TotalSegment.prototype.clearTaxesList = function() {
  return this.setTaxesList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.ExtensionAttribute.repeatedFields_ = [3];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ExtensionAttribute} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ExtensionAttribute.toObject = function(includeInstance, msg) {
  var f, obj = {
    amount: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),
    groupId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    ratesList: jspb.Message.toObjectList(msg.getRatesList(),
    proto.store.Rate.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.store.ExtensionAttribute}
 */
proto.store.ExtensionAttribute.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.ExtensionAttribute;
  return proto.store.ExtensionAttribute.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ExtensionAttribute} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ExtensionAttribute}
 */
proto.store.ExtensionAttribute.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setAmount(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setGroupId(value);
      break;
    case 3:
      var value = new proto.store.Rate;
      reader.readMessage(value,proto.store.Rate.deserializeBinaryFromReader);
      msg.addRates(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ExtensionAttribute} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ExtensionAttribute.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      1,
      f
    );
  }
  f = message.getGroupId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getRatesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      3,
      f,
      proto.store.Rate.serializeBinaryToWriter
    );
  }
};


/**
 * optional double amount = 1;
 * @return {number}
 */
proto.store.ExtensionAttribute.prototype.getAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.ExtensionAttribute} returns this
 */
proto.store.ExtensionAttribute.prototype.setAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 1, value);
};


/**
 * optional int32 group_id = 2;
 * @return {number}
 */
proto.store.ExtensionAttribute.prototype.getGroupId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ExtensionAttribute} returns this
 */
proto.store.ExtensionAttribute.prototype.setGroupId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * repeated Rate rates = 3;
 * @return {!Array<!proto.store.Rate>}
 */
proto.store.ExtensionAttribute.prototype.getRatesList = function() {
  return /** @type{!Array<!proto.store.Rate>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.Rate, 3));
};


/**
 * @param {!Array<!proto.store.Rate>} value
 * @return {!proto.store.ExtensionAttribute} returns this
*/
proto.store.ExtensionAttribute.prototype.setRatesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 3, value);
};


/**
 * @param {!proto.store.Rate=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.Rate}
 */
proto.store.ExtensionAttribute.prototype.addRates = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.store.Rate, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ExtensionAttribute} returns this
 */
proto.store.ExtensionAttribute.prototype.clearRatesList = function() {
  return this.setRatesList([]);
};





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


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

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


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


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


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


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


/**
 * optional double rate = 1;
 * @return {number}
 */
proto.store.Rate.prototype.getRate = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Rate} returns this
 */
proto.store.Rate.prototype.setRate = function(value) {
  return jspb.Message.setProto3FloatField(this, 1, value);
};


/**
 * optional string name = 2;
 * @return {string}
 */
proto.store.Rate.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Rate} returns this
 */
proto.store.Rate.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListShippingMethodsRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListShippingMethodsRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    cartId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    cartUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
    shippingAddress: (f = msg.getShippingAddress()) && proto.store.AddressRequest.toObject(includeInstance, f),
    pageSize: jspb.Message.getFieldWithDefault(msg, 5, 0),
    pageToken: jspb.Message.getFieldWithDefault(msg, 6, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListShippingMethodsRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListShippingMethodsRequest}
 */
proto.store.ListShippingMethodsRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCartId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCartUuid(value);
      break;
    case 4:
      var value = new proto.store.AddressRequest;
      reader.readMessage(value,proto.store.AddressRequest.deserializeBinaryFromReader);
      msg.setShippingAddress(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPageSize(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListShippingMethodsRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListShippingMethodsRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCartId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getCartUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getShippingAddress();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.store.AddressRequest.serializeBinaryToWriter
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeInt32(
      5,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.ListShippingMethodsRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.ListShippingMethodsRequest} returns this
*/
proto.store.ListShippingMethodsRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ListShippingMethodsRequest} returns this
 */
proto.store.ListShippingMethodsRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 cart_id = 2;
 * @return {number}
 */
proto.store.ListShippingMethodsRequest.prototype.getCartId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListShippingMethodsRequest} returns this
 */
proto.store.ListShippingMethodsRequest.prototype.setCartId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string cart_uuid = 3;
 * @return {string}
 */
proto.store.ListShippingMethodsRequest.prototype.getCartUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListShippingMethodsRequest} returns this
 */
proto.store.ListShippingMethodsRequest.prototype.setCartUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional AddressRequest shipping_address = 4;
 * @return {?proto.store.AddressRequest}
 */
proto.store.ListShippingMethodsRequest.prototype.getShippingAddress = function() {
  return /** @type{?proto.store.AddressRequest} */ (
    jspb.Message.getWrapperField(this, proto.store.AddressRequest, 4));
};


/**
 * @param {?proto.store.AddressRequest|undefined} value
 * @return {!proto.store.ListShippingMethodsRequest} returns this
*/
proto.store.ListShippingMethodsRequest.prototype.setShippingAddress = function(value) {
  return jspb.Message.setWrapperField(this, 4, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ListShippingMethodsRequest} returns this
 */
proto.store.ListShippingMethodsRequest.prototype.clearShippingAddress = function() {
  return this.setShippingAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.ListShippingMethodsRequest.prototype.hasShippingAddress = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional int32 page_size = 5;
 * @return {number}
 */
proto.store.ListShippingMethodsRequest.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListShippingMethodsRequest} returns this
 */
proto.store.ListShippingMethodsRequest.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 5, value);
};


/**
 * optional string page_token = 6;
 * @return {string}
 */
proto.store.ListShippingMethodsRequest.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListShippingMethodsRequest} returns this
 */
proto.store.ListShippingMethodsRequest.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListShippingMethodsResponse} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListShippingMethodsResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    recordCount: jspb.Message.getFieldWithDefault(msg, 1, 0),
    shippingMethodsList: jspb.Message.toObjectList(msg.getShippingMethodsList(),
    proto.store.ShippingMethod.toObject, includeInstance),
    nextPageToken: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListShippingMethodsResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListShippingMethodsResponse}
 */
proto.store.ListShippingMethodsResponse.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setRecordCount(value);
      break;
    case 2:
      var value = new proto.store.ShippingMethod;
      reader.readMessage(value,proto.store.ShippingMethod.deserializeBinaryFromReader);
      msg.addShippingMethods(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setNextPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListShippingMethodsResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListShippingMethodsResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getRecordCount();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getShippingMethodsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.store.ShippingMethod.serializeBinaryToWriter
    );
  }
  f = message.getNextPageToken();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int64 record_count = 1;
 * @return {number}
 */
proto.store.ListShippingMethodsResponse.prototype.getRecordCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListShippingMethodsResponse} returns this
 */
proto.store.ListShippingMethodsResponse.prototype.setRecordCount = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * repeated ShippingMethod shipping_methods = 2;
 * @return {!Array<!proto.store.ShippingMethod>}
 */
proto.store.ListShippingMethodsResponse.prototype.getShippingMethodsList = function() {
  return /** @type{!Array<!proto.store.ShippingMethod>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.ShippingMethod, 2));
};


/**
 * @param {!Array<!proto.store.ShippingMethod>} value
 * @return {!proto.store.ListShippingMethodsResponse} returns this
*/
proto.store.ListShippingMethodsResponse.prototype.setShippingMethodsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.store.ShippingMethod=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.ShippingMethod}
 */
proto.store.ListShippingMethodsResponse.prototype.addShippingMethods = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.store.ShippingMethod, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ListShippingMethodsResponse} returns this
 */
proto.store.ListShippingMethodsResponse.prototype.clearShippingMethodsList = function() {
  return this.setShippingMethodsList([]);
};


/**
 * optional string next_page_token = 3;
 * @return {string}
 */
proto.store.ListShippingMethodsResponse.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListShippingMethodsResponse} returns this
 */
proto.store.ListShippingMethodsResponse.prototype.setNextPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ShippingMethod} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ShippingMethod.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    carrierCode: jspb.Message.getFieldWithDefault(msg, 2, ""),
    methodCode: jspb.Message.getFieldWithDefault(msg, 3, ""),
    carrierName: jspb.Message.getFieldWithDefault(msg, 4, ""),
    methodName: jspb.Message.getFieldWithDefault(msg, 5, ""),
    amount: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0),
    taxRate: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),
    isAvailable: jspb.Message.getBooleanFieldWithDefault(msg, 8, false)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ShippingMethod} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ShippingMethod}
 */
proto.store.ShippingMethod.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setCarrierCode(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setMethodCode(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setCarrierName(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setMethodName(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setAmount(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setTaxRate(value);
      break;
    case 8:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsAvailable(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ShippingMethod} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ShippingMethod.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getCarrierCode();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getMethodCode();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getCarrierName();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getMethodName();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      6,
      f
    );
  }
  f = message.getTaxRate();
  if (f !== 0.0) {
    writer.writeDouble(
      7,
      f
    );
  }
  f = message.getIsAvailable();
  if (f) {
    writer.writeBool(
      8,
      f
    );
  }
};


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.ShippingMethod.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ShippingMethod} returns this
 */
proto.store.ShippingMethod.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string carrier_code = 2;
 * @return {string}
 */
proto.store.ShippingMethod.prototype.getCarrierCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ShippingMethod} returns this
 */
proto.store.ShippingMethod.prototype.setCarrierCode = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string method_code = 3;
 * @return {string}
 */
proto.store.ShippingMethod.prototype.getMethodCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ShippingMethod} returns this
 */
proto.store.ShippingMethod.prototype.setMethodCode = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string carrier_name = 4;
 * @return {string}
 */
proto.store.ShippingMethod.prototype.getCarrierName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ShippingMethod} returns this
 */
proto.store.ShippingMethod.prototype.setCarrierName = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string method_name = 5;
 * @return {string}
 */
proto.store.ShippingMethod.prototype.getMethodName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ShippingMethod} returns this
 */
proto.store.ShippingMethod.prototype.setMethodName = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional double amount = 6;
 * @return {number}
 */
proto.store.ShippingMethod.prototype.getAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.ShippingMethod} returns this
 */
proto.store.ShippingMethod.prototype.setAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 6, value);
};


/**
 * optional double tax_rate = 7;
 * @return {number}
 */
proto.store.ShippingMethod.prototype.getTaxRate = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.ShippingMethod} returns this
 */
proto.store.ShippingMethod.prototype.setTaxRate = function(value) {
  return jspb.Message.setProto3FloatField(this, 7, value);
};


/**
 * optional bool is_available = 8;
 * @return {boolean}
 */
proto.store.ShippingMethod.prototype.getIsAvailable = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.ShippingMethod} returns this
 */
proto.store.ShippingMethod.prototype.setIsAvailable = function(value) {
  return jspb.Message.setProto3BooleanField(this, 8, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListPaymentMethodsRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListPaymentMethodsRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    cartId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    cartUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
    pageSize: jspb.Message.getFieldWithDefault(msg, 4, 0),
    pageToken: jspb.Message.getFieldWithDefault(msg, 5, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListPaymentMethodsRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListPaymentMethodsRequest}
 */
proto.store.ListPaymentMethodsRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCartId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCartUuid(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPageSize(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListPaymentMethodsRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListPaymentMethodsRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCartId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getCartUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeInt32(
      4,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.ListPaymentMethodsRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.ListPaymentMethodsRequest} returns this
*/
proto.store.ListPaymentMethodsRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ListPaymentMethodsRequest} returns this
 */
proto.store.ListPaymentMethodsRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 cart_id = 2;
 * @return {number}
 */
proto.store.ListPaymentMethodsRequest.prototype.getCartId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListPaymentMethodsRequest} returns this
 */
proto.store.ListPaymentMethodsRequest.prototype.setCartId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string cart_uuid = 3;
 * @return {string}
 */
proto.store.ListPaymentMethodsRequest.prototype.getCartUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListPaymentMethodsRequest} returns this
 */
proto.store.ListPaymentMethodsRequest.prototype.setCartUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional int32 page_size = 4;
 * @return {number}
 */
proto.store.ListPaymentMethodsRequest.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListPaymentMethodsRequest} returns this
 */
proto.store.ListPaymentMethodsRequest.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional string page_token = 5;
 * @return {string}
 */
proto.store.ListPaymentMethodsRequest.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListPaymentMethodsRequest} returns this
 */
proto.store.ListPaymentMethodsRequest.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListPaymentMethodsResponse} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListPaymentMethodsResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    recordCount: jspb.Message.getFieldWithDefault(msg, 1, 0),
    paymentMethodsList: jspb.Message.toObjectList(msg.getPaymentMethodsList(),
    proto.store.PaymentMethod.toObject, includeInstance),
    nextPageToken: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListPaymentMethodsResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListPaymentMethodsResponse}
 */
proto.store.ListPaymentMethodsResponse.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setRecordCount(value);
      break;
    case 2:
      var value = new proto.store.PaymentMethod;
      reader.readMessage(value,proto.store.PaymentMethod.deserializeBinaryFromReader);
      msg.addPaymentMethods(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setNextPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListPaymentMethodsResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListPaymentMethodsResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getRecordCount();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getPaymentMethodsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.store.PaymentMethod.serializeBinaryToWriter
    );
  }
  f = message.getNextPageToken();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int64 record_count = 1;
 * @return {number}
 */
proto.store.ListPaymentMethodsResponse.prototype.getRecordCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListPaymentMethodsResponse} returns this
 */
proto.store.ListPaymentMethodsResponse.prototype.setRecordCount = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * repeated PaymentMethod payment_methods = 2;
 * @return {!Array<!proto.store.PaymentMethod>}
 */
proto.store.ListPaymentMethodsResponse.prototype.getPaymentMethodsList = function() {
  return /** @type{!Array<!proto.store.PaymentMethod>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.PaymentMethod, 2));
};


/**
 * @param {!Array<!proto.store.PaymentMethod>} value
 * @return {!proto.store.ListPaymentMethodsResponse} returns this
*/
proto.store.ListPaymentMethodsResponse.prototype.setPaymentMethodsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.store.PaymentMethod=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.PaymentMethod}
 */
proto.store.ListPaymentMethodsResponse.prototype.addPaymentMethods = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.store.PaymentMethod, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ListPaymentMethodsResponse} returns this
 */
proto.store.ListPaymentMethodsResponse.prototype.clearPaymentMethodsList = function() {
  return this.setPaymentMethodsList([]);
};


/**
 * optional string next_page_token = 3;
 * @return {string}
 */
proto.store.ListPaymentMethodsResponse.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListPaymentMethodsResponse} returns this
 */
proto.store.ListPaymentMethodsResponse.prototype.setNextPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





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


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

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.PaymentMethod} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.PaymentMethod}
 */
proto.store.PaymentMethod.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setCode(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.PaymentMethod} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.PaymentMethod.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getCode();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.PaymentMethod.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.PaymentMethod} returns this
 */
proto.store.PaymentMethod.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string code = 2;
 * @return {string}
 */
proto.store.PaymentMethod.prototype.getCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.PaymentMethod} returns this
 */
proto.store.PaymentMethod.prototype.setCode = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string name = 3;
 * @return {string}
 */
proto.store.PaymentMethod.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.PaymentMethod} returns this
 */
proto.store.PaymentMethod.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.CreateOrderRequest.repeatedFields_ = [11,12];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.CreateOrderRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CreateOrderRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    cartId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    cartUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
    customerId: jspb.Message.getFieldWithDefault(msg, 4, 0),
    userId: jspb.Message.getFieldWithDefault(msg, 5, 0),
    shippingAddress: (f = msg.getShippingAddress()) && proto.store.AddressRequest.toObject(includeInstance, f),
    billingAddress: (f = msg.getBillingAddress()) && proto.store.AddressRequest.toObject(includeInstance, f),
    methodCode: jspb.Message.getFieldWithDefault(msg, 8, ""),
    carrierCode: jspb.Message.getFieldWithDefault(msg, 9, ""),
    paymentMethodCode: jspb.Message.getFieldWithDefault(msg, 10, ""),
    productsList: jspb.Message.toObjectList(msg.getProductsList(),
    proto.store.ProductOrderLine.toObject, includeInstance),
    paymentsList: jspb.Message.toObjectList(msg.getPaymentsList(),
    proto.store.PaymentRequest.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.store.CreateOrderRequest}
 */
proto.store.CreateOrderRequest.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.CreateOrderRequest;
  return proto.store.CreateOrderRequest.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.CreateOrderRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.CreateOrderRequest}
 */
proto.store.CreateOrderRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCartId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCartUuid(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCustomerId(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setUserId(value);
      break;
    case 6:
      var value = new proto.store.AddressRequest;
      reader.readMessage(value,proto.store.AddressRequest.deserializeBinaryFromReader);
      msg.setShippingAddress(value);
      break;
    case 7:
      var value = new proto.store.AddressRequest;
      reader.readMessage(value,proto.store.AddressRequest.deserializeBinaryFromReader);
      msg.setBillingAddress(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setMethodCode(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setCarrierCode(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setPaymentMethodCode(value);
      break;
    case 11:
      var value = new proto.store.ProductOrderLine;
      reader.readMessage(value,proto.store.ProductOrderLine.deserializeBinaryFromReader);
      msg.addProducts(value);
      break;
    case 12:
      var value = new proto.store.PaymentRequest;
      reader.readMessage(value,proto.store.PaymentRequest.deserializeBinaryFromReader);
      msg.addPayments(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.CreateOrderRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CreateOrderRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCartId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getCartUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getCustomerId();
  if (f !== 0) {
    writer.writeInt32(
      4,
      f
    );
  }
  f = message.getUserId();
  if (f !== 0) {
    writer.writeInt32(
      5,
      f
    );
  }
  f = message.getShippingAddress();
  if (f != null) {
    writer.writeMessage(
      6,
      f,
      proto.store.AddressRequest.serializeBinaryToWriter
    );
  }
  f = message.getBillingAddress();
  if (f != null) {
    writer.writeMessage(
      7,
      f,
      proto.store.AddressRequest.serializeBinaryToWriter
    );
  }
  f = message.getMethodCode();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getCarrierCode();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getPaymentMethodCode();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
  f = message.getProductsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      11,
      f,
      proto.store.ProductOrderLine.serializeBinaryToWriter
    );
  }
  f = message.getPaymentsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      12,
      f,
      proto.store.PaymentRequest.serializeBinaryToWriter
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.CreateOrderRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.CreateOrderRequest} returns this
*/
proto.store.CreateOrderRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 cart_id = 2;
 * @return {number}
 */
proto.store.CreateOrderRequest.prototype.getCartId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.setCartId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string cart_uuid = 3;
 * @return {string}
 */
proto.store.CreateOrderRequest.prototype.getCartUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.setCartUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional int32 customer_id = 4;
 * @return {number}
 */
proto.store.CreateOrderRequest.prototype.getCustomerId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.setCustomerId = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional int32 user_id = 5;
 * @return {number}
 */
proto.store.CreateOrderRequest.prototype.getUserId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.setUserId = function(value) {
  return jspb.Message.setProto3IntField(this, 5, value);
};


/**
 * optional AddressRequest shipping_address = 6;
 * @return {?proto.store.AddressRequest}
 */
proto.store.CreateOrderRequest.prototype.getShippingAddress = function() {
  return /** @type{?proto.store.AddressRequest} */ (
    jspb.Message.getWrapperField(this, proto.store.AddressRequest, 6));
};


/**
 * @param {?proto.store.AddressRequest|undefined} value
 * @return {!proto.store.CreateOrderRequest} returns this
*/
proto.store.CreateOrderRequest.prototype.setShippingAddress = function(value) {
  return jspb.Message.setWrapperField(this, 6, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.clearShippingAddress = function() {
  return this.setShippingAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.CreateOrderRequest.prototype.hasShippingAddress = function() {
  return jspb.Message.getField(this, 6) != null;
};


/**
 * optional AddressRequest billing_address = 7;
 * @return {?proto.store.AddressRequest}
 */
proto.store.CreateOrderRequest.prototype.getBillingAddress = function() {
  return /** @type{?proto.store.AddressRequest} */ (
    jspb.Message.getWrapperField(this, proto.store.AddressRequest, 7));
};


/**
 * @param {?proto.store.AddressRequest|undefined} value
 * @return {!proto.store.CreateOrderRequest} returns this
*/
proto.store.CreateOrderRequest.prototype.setBillingAddress = function(value) {
  return jspb.Message.setWrapperField(this, 7, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.clearBillingAddress = function() {
  return this.setBillingAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.CreateOrderRequest.prototype.hasBillingAddress = function() {
  return jspb.Message.getField(this, 7) != null;
};


/**
 * optional string method_code = 8;
 * @return {string}
 */
proto.store.CreateOrderRequest.prototype.getMethodCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.setMethodCode = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string carrier_code = 9;
 * @return {string}
 */
proto.store.CreateOrderRequest.prototype.getCarrierCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.setCarrierCode = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};


/**
 * optional string payment_method_code = 10;
 * @return {string}
 */
proto.store.CreateOrderRequest.prototype.getPaymentMethodCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.setPaymentMethodCode = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};


/**
 * repeated ProductOrderLine products = 11;
 * @return {!Array<!proto.store.ProductOrderLine>}
 */
proto.store.CreateOrderRequest.prototype.getProductsList = function() {
  return /** @type{!Array<!proto.store.ProductOrderLine>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.ProductOrderLine, 11));
};


/**
 * @param {!Array<!proto.store.ProductOrderLine>} value
 * @return {!proto.store.CreateOrderRequest} returns this
*/
proto.store.CreateOrderRequest.prototype.setProductsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 11, value);
};


/**
 * @param {!proto.store.ProductOrderLine=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.ProductOrderLine}
 */
proto.store.CreateOrderRequest.prototype.addProducts = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.store.ProductOrderLine, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.clearProductsList = function() {
  return this.setProductsList([]);
};


/**
 * repeated PaymentRequest payments = 12;
 * @return {!Array<!proto.store.PaymentRequest>}
 */
proto.store.CreateOrderRequest.prototype.getPaymentsList = function() {
  return /** @type{!Array<!proto.store.PaymentRequest>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.PaymentRequest, 12));
};


/**
 * @param {!Array<!proto.store.PaymentRequest>} value
 * @return {!proto.store.CreateOrderRequest} returns this
*/
proto.store.CreateOrderRequest.prototype.setPaymentsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 12, value);
};


/**
 * @param {!proto.store.PaymentRequest=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.PaymentRequest}
 */
proto.store.CreateOrderRequest.prototype.addPayments = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.store.PaymentRequest, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.CreateOrderRequest} returns this
 */
proto.store.CreateOrderRequest.prototype.clearPaymentsList = function() {
  return this.setPaymentsList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.ProductOrderLine.repeatedFields_ = [4];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ProductOrderLine} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ProductOrderLine.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    quantity: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0),
    sku: jspb.Message.getFieldWithDefault(msg, 3, ""),
    configurableItemOptionsList: jspb.Message.toObjectList(msg.getConfigurableItemOptionsList(),
    proto.store.ConfigurableItemOption.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.store.ProductOrderLine}
 */
proto.store.ProductOrderLine.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.ProductOrderLine;
  return proto.store.ProductOrderLine.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ProductOrderLine} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ProductOrderLine}
 */
proto.store.ProductOrderLine.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setQuantity(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setSku(value);
      break;
    case 4:
      var value = new proto.store.ConfigurableItemOption;
      reader.readMessage(value,proto.store.ConfigurableItemOption.deserializeBinaryFromReader);
      msg.addConfigurableItemOptions(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ProductOrderLine} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ProductOrderLine.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getQuantity();
  if (f !== 0.0) {
    writer.writeDouble(
      2,
      f
    );
  }
  f = message.getSku();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getConfigurableItemOptionsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      4,
      f,
      proto.store.ConfigurableItemOption.serializeBinaryToWriter
    );
  }
};


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.ProductOrderLine.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ProductOrderLine} returns this
 */
proto.store.ProductOrderLine.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional double quantity = 2;
 * @return {number}
 */
proto.store.ProductOrderLine.prototype.getQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.ProductOrderLine} returns this
 */
proto.store.ProductOrderLine.prototype.setQuantity = function(value) {
  return jspb.Message.setProto3FloatField(this, 2, value);
};


/**
 * optional string sku = 3;
 * @return {string}
 */
proto.store.ProductOrderLine.prototype.getSku = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ProductOrderLine} returns this
 */
proto.store.ProductOrderLine.prototype.setSku = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * repeated ConfigurableItemOption configurable_item_options = 4;
 * @return {!Array<!proto.store.ConfigurableItemOption>}
 */
proto.store.ProductOrderLine.prototype.getConfigurableItemOptionsList = function() {
  return /** @type{!Array<!proto.store.ConfigurableItemOption>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.ConfigurableItemOption, 4));
};


/**
 * @param {!Array<!proto.store.ConfigurableItemOption>} value
 * @return {!proto.store.ProductOrderLine} returns this
*/
proto.store.ProductOrderLine.prototype.setConfigurableItemOptionsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 4, value);
};


/**
 * @param {!proto.store.ConfigurableItemOption=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.ConfigurableItemOption}
 */
proto.store.ProductOrderLine.prototype.addConfigurableItemOptions = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.store.ConfigurableItemOption, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ProductOrderLine} returns this
 */
proto.store.ProductOrderLine.prototype.clearConfigurableItemOptionsList = function() {
  return this.setConfigurableItemOptionsList([]);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.PaymentRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.PaymentRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    bankId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    referenceNo: jspb.Message.getFieldWithDefault(msg, 2, ""),
    description: jspb.Message.getFieldWithDefault(msg, 3, ""),
    amount: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0),
    paymentDate: jspb.Message.getFieldWithDefault(msg, 5, ""),
    paymentMethodCode: jspb.Message.getFieldWithDefault(msg, 6, ""),
    currencyCode: jspb.Message.getFieldWithDefault(msg, 7, ""),
    billingAddress: (f = msg.getBillingAddress()) && proto.store.AddressRequest.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.store.PaymentRequest}
 */
proto.store.PaymentRequest.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.PaymentRequest;
  return proto.store.PaymentRequest.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.PaymentRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.PaymentRequest}
 */
proto.store.PaymentRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setBankId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setReferenceNo(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setDescription(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setAmount(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setPaymentDate(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setPaymentMethodCode(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setCurrencyCode(value);
      break;
    case 8:
      var value = new proto.store.AddressRequest;
      reader.readMessage(value,proto.store.AddressRequest.deserializeBinaryFromReader);
      msg.setBillingAddress(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.PaymentRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.PaymentRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getBankId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getReferenceNo();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getDescription();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      4,
      f
    );
  }
  f = message.getPaymentDate();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getPaymentMethodCode();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getCurrencyCode();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getBillingAddress();
  if (f != null) {
    writer.writeMessage(
      8,
      f,
      proto.store.AddressRequest.serializeBinaryToWriter
    );
  }
};


/**
 * optional int32 bank_id = 1;
 * @return {number}
 */
proto.store.PaymentRequest.prototype.getBankId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.PaymentRequest} returns this
 */
proto.store.PaymentRequest.prototype.setBankId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string reference_no = 2;
 * @return {string}
 */
proto.store.PaymentRequest.prototype.getReferenceNo = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.PaymentRequest} returns this
 */
proto.store.PaymentRequest.prototype.setReferenceNo = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string description = 3;
 * @return {string}
 */
proto.store.PaymentRequest.prototype.getDescription = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.PaymentRequest} returns this
 */
proto.store.PaymentRequest.prototype.setDescription = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional double amount = 4;
 * @return {number}
 */
proto.store.PaymentRequest.prototype.getAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.PaymentRequest} returns this
 */
proto.store.PaymentRequest.prototype.setAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 4, value);
};


/**
 * optional string payment_date = 5;
 * @return {string}
 */
proto.store.PaymentRequest.prototype.getPaymentDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.PaymentRequest} returns this
 */
proto.store.PaymentRequest.prototype.setPaymentDate = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string payment_method_code = 6;
 * @return {string}
 */
proto.store.PaymentRequest.prototype.getPaymentMethodCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.PaymentRequest} returns this
 */
proto.store.PaymentRequest.prototype.setPaymentMethodCode = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string currency_code = 7;
 * @return {string}
 */
proto.store.PaymentRequest.prototype.getCurrencyCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.PaymentRequest} returns this
 */
proto.store.PaymentRequest.prototype.setCurrencyCode = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional AddressRequest billing_address = 8;
 * @return {?proto.store.AddressRequest}
 */
proto.store.PaymentRequest.prototype.getBillingAddress = function() {
  return /** @type{?proto.store.AddressRequest} */ (
    jspb.Message.getWrapperField(this, proto.store.AddressRequest, 8));
};


/**
 * @param {?proto.store.AddressRequest|undefined} value
 * @return {!proto.store.PaymentRequest} returns this
*/
proto.store.PaymentRequest.prototype.setBillingAddress = function(value) {
  return jspb.Message.setWrapperField(this, 8, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.PaymentRequest} returns this
 */
proto.store.PaymentRequest.prototype.clearBillingAddress = function() {
  return this.setBillingAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.PaymentRequest.prototype.hasBillingAddress = function() {
  return jspb.Message.getField(this, 8) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.Order.repeatedFields_ = [11];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.Order} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Order.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    documentNo: jspb.Message.getFieldWithDefault(msg, 2, ""),
    created: jspb.Message.getFieldWithDefault(msg, 3, ""),
    updated: jspb.Message.getFieldWithDefault(msg, 4, ""),
    transmited: jspb.Message.getFieldWithDefault(msg, 5, ""),
    shippingAddress: (f = msg.getShippingAddress()) && proto.store.Address.toObject(includeInstance, f),
    billingAddress: (f = msg.getBillingAddress()) && proto.store.Address.toObject(includeInstance, f),
    methodCode: jspb.Message.getFieldWithDefault(msg, 8, ""),
    carrierCode: jspb.Message.getFieldWithDefault(msg, 9, ""),
    paymentMethodCode: jspb.Message.getFieldWithDefault(msg, 10, ""),
    orderLinesList: jspb.Message.toObjectList(msg.getOrderLinesList(),
    proto.store.OrderLine.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.store.Order}
 */
proto.store.Order.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.Order;
  return proto.store.Order.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.Order} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.Order}
 */
proto.store.Order.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setDocumentNo(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCreated(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdated(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setTransmited(value);
      break;
    case 6:
      var value = new proto.store.Address;
      reader.readMessage(value,proto.store.Address.deserializeBinaryFromReader);
      msg.setShippingAddress(value);
      break;
    case 7:
      var value = new proto.store.Address;
      reader.readMessage(value,proto.store.Address.deserializeBinaryFromReader);
      msg.setBillingAddress(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setMethodCode(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setCarrierCode(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setPaymentMethodCode(value);
      break;
    case 11:
      var value = new proto.store.OrderLine;
      reader.readMessage(value,proto.store.OrderLine.deserializeBinaryFromReader);
      msg.addOrderLines(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Order} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Order.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getDocumentNo();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getCreated();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getUpdated();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getTransmited();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getShippingAddress();
  if (f != null) {
    writer.writeMessage(
      6,
      f,
      proto.store.Address.serializeBinaryToWriter
    );
  }
  f = message.getBillingAddress();
  if (f != null) {
    writer.writeMessage(
      7,
      f,
      proto.store.Address.serializeBinaryToWriter
    );
  }
  f = message.getMethodCode();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getCarrierCode();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getPaymentMethodCode();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
  f = message.getOrderLinesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      11,
      f,
      proto.store.OrderLine.serializeBinaryToWriter
    );
  }
};


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.Order.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string document_no = 2;
 * @return {string}
 */
proto.store.Order.prototype.getDocumentNo = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.setDocumentNo = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string created = 3;
 * @return {string}
 */
proto.store.Order.prototype.getCreated = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.setCreated = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string updated = 4;
 * @return {string}
 */
proto.store.Order.prototype.getUpdated = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.setUpdated = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string transmited = 5;
 * @return {string}
 */
proto.store.Order.prototype.getTransmited = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.setTransmited = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional Address shipping_address = 6;
 * @return {?proto.store.Address}
 */
proto.store.Order.prototype.getShippingAddress = function() {
  return /** @type{?proto.store.Address} */ (
    jspb.Message.getWrapperField(this, proto.store.Address, 6));
};


/**
 * @param {?proto.store.Address|undefined} value
 * @return {!proto.store.Order} returns this
*/
proto.store.Order.prototype.setShippingAddress = function(value) {
  return jspb.Message.setWrapperField(this, 6, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.clearShippingAddress = function() {
  return this.setShippingAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.Order.prototype.hasShippingAddress = function() {
  return jspb.Message.getField(this, 6) != null;
};


/**
 * optional Address billing_address = 7;
 * @return {?proto.store.Address}
 */
proto.store.Order.prototype.getBillingAddress = function() {
  return /** @type{?proto.store.Address} */ (
    jspb.Message.getWrapperField(this, proto.store.Address, 7));
};


/**
 * @param {?proto.store.Address|undefined} value
 * @return {!proto.store.Order} returns this
*/
proto.store.Order.prototype.setBillingAddress = function(value) {
  return jspb.Message.setWrapperField(this, 7, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.clearBillingAddress = function() {
  return this.setBillingAddress(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.Order.prototype.hasBillingAddress = function() {
  return jspb.Message.getField(this, 7) != null;
};


/**
 * optional string method_code = 8;
 * @return {string}
 */
proto.store.Order.prototype.getMethodCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.setMethodCode = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string carrier_code = 9;
 * @return {string}
 */
proto.store.Order.prototype.getCarrierCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.setCarrierCode = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};


/**
 * optional string payment_method_code = 10;
 * @return {string}
 */
proto.store.Order.prototype.getPaymentMethodCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.setPaymentMethodCode = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};


/**
 * repeated OrderLine order_lines = 11;
 * @return {!Array<!proto.store.OrderLine>}
 */
proto.store.Order.prototype.getOrderLinesList = function() {
  return /** @type{!Array<!proto.store.OrderLine>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.OrderLine, 11));
};


/**
 * @param {!Array<!proto.store.OrderLine>} value
 * @return {!proto.store.Order} returns this
*/
proto.store.Order.prototype.setOrderLinesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 11, value);
};


/**
 * @param {!proto.store.OrderLine=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.OrderLine}
 */
proto.store.Order.prototype.addOrderLines = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.store.OrderLine, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.Order} returns this
 */
proto.store.Order.prototype.clearOrderLinesList = function() {
  return this.setOrderLinesList([]);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.OrderLine} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.OrderLine.toObject = function(includeInstance, msg) {
  var f, obj = {
    sku: jspb.Message.getFieldWithDefault(msg, 1, ""),
    name: jspb.Message.getFieldWithDefault(msg, 2, ""),
    quantity: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),
    price: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0),
    productType: 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.store.OrderLine}
 */
proto.store.OrderLine.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.OrderLine;
  return proto.store.OrderLine.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.OrderLine} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.OrderLine}
 */
proto.store.OrderLine.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setSku(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setQuantity(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setPrice(value);
      break;
    case 5:
      var value = /** @type {!proto.store.OrderLine.ProductType} */ (reader.readEnum());
      msg.setProductType(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.OrderLine} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.OrderLine.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSku();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getQuantity();
  if (f !== 0.0) {
    writer.writeDouble(
      3,
      f
    );
  }
  f = message.getPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      4,
      f
    );
  }
  f = message.getProductType();
  if (f !== 0.0) {
    writer.writeEnum(
      5,
      f
    );
  }
};


/**
 * @enum {number}
 */
proto.store.OrderLine.ProductType = {
  SIMPLE: 0,
  CONFIGURABLE: 1,
  GROUPED: 2,
  VIRTUAL: 3,
  BUNDLE: 4,
  DOWNLOADABLE: 5,
  GIFT: 6
};

/**
 * optional string sku = 1;
 * @return {string}
 */
proto.store.OrderLine.prototype.getSku = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.OrderLine} returns this
 */
proto.store.OrderLine.prototype.setSku = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string name = 2;
 * @return {string}
 */
proto.store.OrderLine.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.OrderLine} returns this
 */
proto.store.OrderLine.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional double quantity = 3;
 * @return {number}
 */
proto.store.OrderLine.prototype.getQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.OrderLine} returns this
 */
proto.store.OrderLine.prototype.setQuantity = function(value) {
  return jspb.Message.setProto3FloatField(this, 3, value);
};


/**
 * optional double price = 4;
 * @return {number}
 */
proto.store.OrderLine.prototype.getPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.OrderLine} returns this
 */
proto.store.OrderLine.prototype.setPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 4, value);
};


/**
 * optional ProductType product_type = 5;
 * @return {!proto.store.OrderLine.ProductType}
 */
proto.store.OrderLine.prototype.getProductType = function() {
  return /** @type {!proto.store.OrderLine.ProductType} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {!proto.store.OrderLine.ProductType} value
 * @return {!proto.store.OrderLine} returns this
 */
proto.store.OrderLine.prototype.setProductType = function(value) {
  return jspb.Message.setProto3EnumField(this, 5, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.UpdateCartRequest.repeatedFields_ = [7];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.UpdateCartRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.UpdateCartRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    cartId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    cartUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
    isGuest: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
    sku: jspb.Message.getFieldWithDefault(msg, 5, ""),
    quantity: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0),
    configurableItemOptionsList: jspb.Message.toObjectList(msg.getConfigurableItemOptionsList(),
    proto.store.ConfigurableItemOption.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.store.UpdateCartRequest}
 */
proto.store.UpdateCartRequest.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.UpdateCartRequest;
  return proto.store.UpdateCartRequest.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.UpdateCartRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.UpdateCartRequest}
 */
proto.store.UpdateCartRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCartId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCartUuid(value);
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsGuest(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setSku(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setQuantity(value);
      break;
    case 7:
      var value = new proto.store.ConfigurableItemOption;
      reader.readMessage(value,proto.store.ConfigurableItemOption.deserializeBinaryFromReader);
      msg.addConfigurableItemOptions(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.UpdateCartRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.UpdateCartRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCartId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getCartUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getIsGuest();
  if (f) {
    writer.writeBool(
      4,
      f
    );
  }
  f = message.getSku();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getQuantity();
  if (f !== 0.0) {
    writer.writeDouble(
      6,
      f
    );
  }
  f = message.getConfigurableItemOptionsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      7,
      f,
      proto.store.ConfigurableItemOption.serializeBinaryToWriter
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.UpdateCartRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.UpdateCartRequest} returns this
*/
proto.store.UpdateCartRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.UpdateCartRequest} returns this
 */
proto.store.UpdateCartRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 cart_id = 2;
 * @return {number}
 */
proto.store.UpdateCartRequest.prototype.getCartId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.UpdateCartRequest} returns this
 */
proto.store.UpdateCartRequest.prototype.setCartId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string cart_uuid = 3;
 * @return {string}
 */
proto.store.UpdateCartRequest.prototype.getCartUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.UpdateCartRequest} returns this
 */
proto.store.UpdateCartRequest.prototype.setCartUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional bool is_guest = 4;
 * @return {boolean}
 */
proto.store.UpdateCartRequest.prototype.getIsGuest = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.UpdateCartRequest} returns this
 */
proto.store.UpdateCartRequest.prototype.setIsGuest = function(value) {
  return jspb.Message.setProto3BooleanField(this, 4, value);
};


/**
 * optional string sku = 5;
 * @return {string}
 */
proto.store.UpdateCartRequest.prototype.getSku = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.UpdateCartRequest} returns this
 */
proto.store.UpdateCartRequest.prototype.setSku = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional double quantity = 6;
 * @return {number}
 */
proto.store.UpdateCartRequest.prototype.getQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.UpdateCartRequest} returns this
 */
proto.store.UpdateCartRequest.prototype.setQuantity = function(value) {
  return jspb.Message.setProto3FloatField(this, 6, value);
};


/**
 * repeated ConfigurableItemOption configurable_item_options = 7;
 * @return {!Array<!proto.store.ConfigurableItemOption>}
 */
proto.store.UpdateCartRequest.prototype.getConfigurableItemOptionsList = function() {
  return /** @type{!Array<!proto.store.ConfigurableItemOption>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.ConfigurableItemOption, 7));
};


/**
 * @param {!Array<!proto.store.ConfigurableItemOption>} value
 * @return {!proto.store.UpdateCartRequest} returns this
*/
proto.store.UpdateCartRequest.prototype.setConfigurableItemOptionsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 7, value);
};


/**
 * @param {!proto.store.ConfigurableItemOption=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.ConfigurableItemOption}
 */
proto.store.UpdateCartRequest.prototype.addConfigurableItemOptions = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.store.ConfigurableItemOption, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.UpdateCartRequest} returns this
 */
proto.store.UpdateCartRequest.prototype.clearConfigurableItemOptionsList = function() {
  return this.setConfigurableItemOptionsList([]);
};





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


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

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


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


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


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


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


/**
 * optional string id = 1;
 * @return {string}
 */
proto.store.ConfigurableItemOption.prototype.getId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ConfigurableItemOption} returns this
 */
proto.store.ConfigurableItemOption.prototype.setId = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string value = 2;
 * @return {string}
 */
proto.store.ConfigurableItemOption.prototype.getValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ConfigurableItemOption} returns this
 */
proto.store.ConfigurableItemOption.prototype.setValue = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.GetCartRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetCartRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    cartId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    cartUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
    isGuest: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.GetCartRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.GetCartRequest}
 */
proto.store.GetCartRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setCartId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCartUuid(value);
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsGuest(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.GetCartRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetCartRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCartId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getCartUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getIsGuest();
  if (f) {
    writer.writeBool(
      4,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.GetCartRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.GetCartRequest} returns this
*/
proto.store.GetCartRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.GetCartRequest} returns this
 */
proto.store.GetCartRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional int32 cart_id = 2;
 * @return {number}
 */
proto.store.GetCartRequest.prototype.getCartId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.GetCartRequest} returns this
 */
proto.store.GetCartRequest.prototype.setCartId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string cart_uuid = 3;
 * @return {string}
 */
proto.store.GetCartRequest.prototype.getCartUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.GetCartRequest} returns this
 */
proto.store.GetCartRequest.prototype.setCartUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional bool is_guest = 4;
 * @return {boolean}
 */
proto.store.GetCartRequest.prototype.getIsGuest = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.GetCartRequest} returns this
 */
proto.store.GetCartRequest.prototype.setIsGuest = function(value) {
  return jspb.Message.setProto3BooleanField(this, 4, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.CreateCartRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CreateCartRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    isGuest: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.CreateCartRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.CreateCartRequest}
 */
proto.store.CreateCartRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsGuest(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.CreateCartRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CreateCartRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getIsGuest();
  if (f) {
    writer.writeBool(
      2,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.CreateCartRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.CreateCartRequest} returns this
*/
proto.store.CreateCartRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.CreateCartRequest} returns this
 */
proto.store.CreateCartRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional bool is_guest = 2;
 * @return {boolean}
 */
proto.store.CreateCartRequest.prototype.getIsGuest = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.CreateCartRequest} returns this
 */
proto.store.CreateCartRequest.prototype.setIsGuest = function(value) {
  return jspb.Message.setProto3BooleanField(this, 2, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.Cart.repeatedFields_ = [17];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.Cart} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Cart.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    uuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
    grandTotal: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),
    subtotal: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0),
    discountAmount: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0),
    subtotalWithDiscount: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0),
    taxAmount: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),
    shippingAmount: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0.0),
    shippingDiscountAmount: jspb.Message.getFloatingPointFieldWithDefault(msg, 9, 0.0),
    shippingTaxAmount: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0),
    baseShippingTaxAmount: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0),
    subtotalInclTax: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0.0),
    shippingInclTax: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0),
    baseCurrencyCode: jspb.Message.getFieldWithDefault(msg, 14, ""),
    quoteCurrencyCode: jspb.Message.getFieldWithDefault(msg, 15, ""),
    itemsQuantity: jspb.Message.getFieldWithDefault(msg, 16, 0),
    itemsList: jspb.Message.toObjectList(msg.getItemsList(),
    proto.store.CartItem.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.store.Cart}
 */
proto.store.Cart.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.Cart;
  return proto.store.Cart.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.Cart} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.Cart}
 */
proto.store.Cart.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setUuid(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setGrandTotal(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setSubtotal(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setDiscountAmount(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setSubtotalWithDiscount(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setTaxAmount(value);
      break;
    case 8:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setShippingAmount(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setShippingDiscountAmount(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setShippingTaxAmount(value);
      break;
    case 11:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setBaseShippingTaxAmount(value);
      break;
    case 12:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setSubtotalInclTax(value);
      break;
    case 13:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setShippingInclTax(value);
      break;
    case 14:
      var value = /** @type {string} */ (reader.readString());
      msg.setBaseCurrencyCode(value);
      break;
    case 15:
      var value = /** @type {string} */ (reader.readString());
      msg.setQuoteCurrencyCode(value);
      break;
    case 16:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setItemsQuantity(value);
      break;
    case 17:
      var value = new proto.store.CartItem;
      reader.readMessage(value,proto.store.CartItem.deserializeBinaryFromReader);
      msg.addItems(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Cart} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Cart.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getUuid();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getGrandTotal();
  if (f !== 0.0) {
    writer.writeDouble(
      3,
      f
    );
  }
  f = message.getSubtotal();
  if (f !== 0.0) {
    writer.writeDouble(
      4,
      f
    );
  }
  f = message.getDiscountAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      5,
      f
    );
  }
  f = message.getSubtotalWithDiscount();
  if (f !== 0.0) {
    writer.writeDouble(
      6,
      f
    );
  }
  f = message.getTaxAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      7,
      f
    );
  }
  f = message.getShippingAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      8,
      f
    );
  }
  f = message.getShippingDiscountAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      9,
      f
    );
  }
  f = message.getShippingTaxAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      10,
      f
    );
  }
  f = message.getBaseShippingTaxAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      11,
      f
    );
  }
  f = message.getSubtotalInclTax();
  if (f !== 0.0) {
    writer.writeDouble(
      12,
      f
    );
  }
  f = message.getShippingInclTax();
  if (f !== 0.0) {
    writer.writeDouble(
      13,
      f
    );
  }
  f = message.getBaseCurrencyCode();
  if (f.length > 0) {
    writer.writeString(
      14,
      f
    );
  }
  f = message.getQuoteCurrencyCode();
  if (f.length > 0) {
    writer.writeString(
      15,
      f
    );
  }
  f = message.getItemsQuantity();
  if (f !== 0) {
    writer.writeInt32(
      16,
      f
    );
  }
  f = message.getItemsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      17,
      f,
      proto.store.CartItem.serializeBinaryToWriter
    );
  }
};


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.Cart.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string uuid = 2;
 * @return {string}
 */
proto.store.Cart.prototype.getUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional double grand_total = 3;
 * @return {number}
 */
proto.store.Cart.prototype.getGrandTotal = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setGrandTotal = function(value) {
  return jspb.Message.setProto3FloatField(this, 3, value);
};


/**
 * optional double subtotal = 4;
 * @return {number}
 */
proto.store.Cart.prototype.getSubtotal = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setSubtotal = function(value) {
  return jspb.Message.setProto3FloatField(this, 4, value);
};


/**
 * optional double discount_amount = 5;
 * @return {number}
 */
proto.store.Cart.prototype.getDiscountAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setDiscountAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 5, value);
};


/**
 * optional double subtotal_with_discount = 6;
 * @return {number}
 */
proto.store.Cart.prototype.getSubtotalWithDiscount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setSubtotalWithDiscount = function(value) {
  return jspb.Message.setProto3FloatField(this, 6, value);
};


/**
 * optional double tax_amount = 7;
 * @return {number}
 */
proto.store.Cart.prototype.getTaxAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setTaxAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 7, value);
};


/**
 * optional double shipping_amount = 8;
 * @return {number}
 */
proto.store.Cart.prototype.getShippingAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setShippingAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 8, value);
};


/**
 * optional double shipping_discount_amount = 9;
 * @return {number}
 */
proto.store.Cart.prototype.getShippingDiscountAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 9, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setShippingDiscountAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 9, value);
};


/**
 * optional double shipping_tax_amount = 10;
 * @return {number}
 */
proto.store.Cart.prototype.getShippingTaxAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setShippingTaxAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 10, value);
};


/**
 * optional double base_shipping_tax_amount = 11;
 * @return {number}
 */
proto.store.Cart.prototype.getBaseShippingTaxAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setBaseShippingTaxAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 11, value);
};


/**
 * optional double subtotal_incl_tax = 12;
 * @return {number}
 */
proto.store.Cart.prototype.getSubtotalInclTax = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setSubtotalInclTax = function(value) {
  return jspb.Message.setProto3FloatField(this, 12, value);
};


/**
 * optional double shipping_incl_tax = 13;
 * @return {number}
 */
proto.store.Cart.prototype.getShippingInclTax = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setShippingInclTax = function(value) {
  return jspb.Message.setProto3FloatField(this, 13, value);
};


/**
 * optional string base_currency_code = 14;
 * @return {string}
 */
proto.store.Cart.prototype.getBaseCurrencyCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setBaseCurrencyCode = function(value) {
  return jspb.Message.setProto3StringField(this, 14, value);
};


/**
 * optional string quote_currency_code = 15;
 * @return {string}
 */
proto.store.Cart.prototype.getQuoteCurrencyCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setQuoteCurrencyCode = function(value) {
  return jspb.Message.setProto3StringField(this, 15, value);
};


/**
 * optional int32 items_quantity = 16;
 * @return {number}
 */
proto.store.Cart.prototype.getItemsQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.setItemsQuantity = function(value) {
  return jspb.Message.setProto3IntField(this, 16, value);
};


/**
 * repeated CartItem items = 17;
 * @return {!Array<!proto.store.CartItem>}
 */
proto.store.Cart.prototype.getItemsList = function() {
  return /** @type{!Array<!proto.store.CartItem>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.CartItem, 17));
};


/**
 * @param {!Array<!proto.store.CartItem>} value
 * @return {!proto.store.Cart} returns this
*/
proto.store.Cart.prototype.setItemsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 17, value);
};


/**
 * @param {!proto.store.CartItem=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.CartItem}
 */
proto.store.Cart.prototype.addItems = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 17, opt_value, proto.store.CartItem, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.Cart} returns this
 */
proto.store.Cart.prototype.clearItemsList = function() {
  return this.setItemsList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.CartItem.repeatedFields_ = [16];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.CartItem} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CartItem.toObject = function(includeInstance, msg) {
  var f, obj = {
    productId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    sku: jspb.Message.getFieldWithDefault(msg, 2, ""),
    quantity: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),
    name: jspb.Message.getFieldWithDefault(msg, 4, ""),
    price: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0),
    productType: jspb.Message.getFieldWithDefault(msg, 6, 0),
    rowTotal: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),
    rowTotalWithDiscount: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0.0),
    taxAmount: jspb.Message.getFloatingPointFieldWithDefault(msg, 9, 0.0),
    taxPercent: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0),
    discountAmount: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0),
    discountPercent: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0.0),
    priceInclTax: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0),
    rowTotalInclTax: jspb.Message.getFloatingPointFieldWithDefault(msg, 14, 0.0),
    baseRowTotalInclTax: jspb.Message.getFloatingPointFieldWithDefault(msg, 15, 0.0),
    configurableItemOptionsList: jspb.Message.toObjectList(msg.getConfigurableItemOptionsList(),
    proto.store.ConfigurableItemOption.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.store.CartItem}
 */
proto.store.CartItem.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.CartItem;
  return proto.store.CartItem.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.CartItem} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.CartItem}
 */
proto.store.CartItem.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setProductId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setSku(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setQuantity(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setPrice(value);
      break;
    case 6:
      var value = /** @type {!proto.store.CartItem.ProductType} */ (reader.readEnum());
      msg.setProductType(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setRowTotal(value);
      break;
    case 8:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setRowTotalWithDiscount(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setTaxAmount(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setTaxPercent(value);
      break;
    case 11:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setDiscountAmount(value);
      break;
    case 12:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setDiscountPercent(value);
      break;
    case 13:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setPriceInclTax(value);
      break;
    case 14:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setRowTotalInclTax(value);
      break;
    case 15:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setBaseRowTotalInclTax(value);
      break;
    case 16:
      var value = new proto.store.ConfigurableItemOption;
      reader.readMessage(value,proto.store.ConfigurableItemOption.deserializeBinaryFromReader);
      msg.addConfigurableItemOptions(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.CartItem} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CartItem.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getProductId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getSku();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getQuantity();
  if (f !== 0.0) {
    writer.writeDouble(
      3,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      5,
      f
    );
  }
  f = message.getProductType();
  if (f !== 0.0) {
    writer.writeEnum(
      6,
      f
    );
  }
  f = message.getRowTotal();
  if (f !== 0.0) {
    writer.writeDouble(
      7,
      f
    );
  }
  f = message.getRowTotalWithDiscount();
  if (f !== 0.0) {
    writer.writeDouble(
      8,
      f
    );
  }
  f = message.getTaxAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      9,
      f
    );
  }
  f = message.getTaxPercent();
  if (f !== 0.0) {
    writer.writeDouble(
      10,
      f
    );
  }
  f = message.getDiscountAmount();
  if (f !== 0.0) {
    writer.writeDouble(
      11,
      f
    );
  }
  f = message.getDiscountPercent();
  if (f !== 0.0) {
    writer.writeDouble(
      12,
      f
    );
  }
  f = message.getPriceInclTax();
  if (f !== 0.0) {
    writer.writeDouble(
      13,
      f
    );
  }
  f = message.getRowTotalInclTax();
  if (f !== 0.0) {
    writer.writeDouble(
      14,
      f
    );
  }
  f = message.getBaseRowTotalInclTax();
  if (f !== 0.0) {
    writer.writeDouble(
      15,
      f
    );
  }
  f = message.getConfigurableItemOptionsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      16,
      f,
      proto.store.ConfigurableItemOption.serializeBinaryToWriter
    );
  }
};


/**
 * @enum {number}
 */
proto.store.CartItem.ProductType = {
  SIMPLE: 0,
  CONFIGURABLE: 1,
  GROUPED: 2,
  VIRTUAL: 3,
  BUNDLE: 4,
  DOWNLOADABLE: 5,
  GIFT: 6
};

/**
 * optional int32 product_id = 1;
 * @return {number}
 */
proto.store.CartItem.prototype.getProductId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setProductId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string sku = 2;
 * @return {string}
 */
proto.store.CartItem.prototype.getSku = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setSku = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional double quantity = 3;
 * @return {number}
 */
proto.store.CartItem.prototype.getQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setQuantity = function(value) {
  return jspb.Message.setProto3FloatField(this, 3, value);
};


/**
 * optional string name = 4;
 * @return {string}
 */
proto.store.CartItem.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional double price = 5;
 * @return {number}
 */
proto.store.CartItem.prototype.getPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 5, value);
};


/**
 * optional ProductType product_type = 6;
 * @return {!proto.store.CartItem.ProductType}
 */
proto.store.CartItem.prototype.getProductType = function() {
  return /** @type {!proto.store.CartItem.ProductType} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {!proto.store.CartItem.ProductType} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setProductType = function(value) {
  return jspb.Message.setProto3EnumField(this, 6, value);
};


/**
 * optional double row_total = 7;
 * @return {number}
 */
proto.store.CartItem.prototype.getRowTotal = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setRowTotal = function(value) {
  return jspb.Message.setProto3FloatField(this, 7, value);
};


/**
 * optional double row_total_with_discount = 8;
 * @return {number}
 */
proto.store.CartItem.prototype.getRowTotalWithDiscount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setRowTotalWithDiscount = function(value) {
  return jspb.Message.setProto3FloatField(this, 8, value);
};


/**
 * optional double tax_amount = 9;
 * @return {number}
 */
proto.store.CartItem.prototype.getTaxAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 9, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setTaxAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 9, value);
};


/**
 * optional double tax_percent = 10;
 * @return {number}
 */
proto.store.CartItem.prototype.getTaxPercent = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setTaxPercent = function(value) {
  return jspb.Message.setProto3FloatField(this, 10, value);
};


/**
 * optional double discount_amount = 11;
 * @return {number}
 */
proto.store.CartItem.prototype.getDiscountAmount = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setDiscountAmount = function(value) {
  return jspb.Message.setProto3FloatField(this, 11, value);
};


/**
 * optional double discount_percent = 12;
 * @return {number}
 */
proto.store.CartItem.prototype.getDiscountPercent = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setDiscountPercent = function(value) {
  return jspb.Message.setProto3FloatField(this, 12, value);
};


/**
 * optional double price_incl_tax = 13;
 * @return {number}
 */
proto.store.CartItem.prototype.getPriceInclTax = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setPriceInclTax = function(value) {
  return jspb.Message.setProto3FloatField(this, 13, value);
};


/**
 * optional double row_total_incl_tax = 14;
 * @return {number}
 */
proto.store.CartItem.prototype.getRowTotalInclTax = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 14, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setRowTotalInclTax = function(value) {
  return jspb.Message.setProto3FloatField(this, 14, value);
};


/**
 * optional double base_row_total_incl_tax = 15;
 * @return {number}
 */
proto.store.CartItem.prototype.getBaseRowTotalInclTax = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 15, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.setBaseRowTotalInclTax = function(value) {
  return jspb.Message.setProto3FloatField(this, 15, value);
};


/**
 * repeated ConfigurableItemOption configurable_item_options = 16;
 * @return {!Array<!proto.store.ConfigurableItemOption>}
 */
proto.store.CartItem.prototype.getConfigurableItemOptionsList = function() {
  return /** @type{!Array<!proto.store.ConfigurableItemOption>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.ConfigurableItemOption, 16));
};


/**
 * @param {!Array<!proto.store.ConfigurableItemOption>} value
 * @return {!proto.store.CartItem} returns this
*/
proto.store.CartItem.prototype.setConfigurableItemOptionsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 16, value);
};


/**
 * @param {!proto.store.ConfigurableItemOption=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.ConfigurableItemOption}
 */
proto.store.CartItem.prototype.addConfigurableItemOptions = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 16, opt_value, proto.store.ConfigurableItemOption, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.CartItem} returns this
 */
proto.store.CartItem.prototype.clearConfigurableItemOptionsList = function() {
  return this.setConfigurableItemOptionsList([]);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.GetResourceRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetResourceRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    resourceUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
    resourceName: jspb.Message.getFieldWithDefault(msg, 3, ""),
    width: jspb.Message.getFieldWithDefault(msg, 4, 0),
    height: jspb.Message.getFieldWithDefault(msg, 5, 0),
    operation: jspb.Message.getFieldWithDefault(msg, 6, 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.store.GetResourceRequest}
 */
proto.store.GetResourceRequest.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.GetResourceRequest;
  return proto.store.GetResourceRequest.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.GetResourceRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.GetResourceRequest}
 */
proto.store.GetResourceRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setResourceUuid(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setResourceName(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setWidth(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setHeight(value);
      break;
    case 6:
      var value = /** @type {!proto.store.GetResourceRequest.Operation} */ (reader.readEnum());
      msg.setOperation(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.GetResourceRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetResourceRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getResourceUuid();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getResourceName();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getWidth();
  if (f !== 0) {
    writer.writeInt64(
      4,
      f
    );
  }
  f = message.getHeight();
  if (f !== 0) {
    writer.writeInt64(
      5,
      f
    );
  }
  f = message.getOperation();
  if (f !== 0.0) {
    writer.writeEnum(
      6,
      f
    );
  }
};


/**
 * @enum {number}
 */
proto.store.GetResourceRequest.Operation = {
  RESIZE: 0,
  CROP: 1,
  FIX: 2,
  IDENTIFY: 3
};

/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.GetResourceRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.GetResourceRequest} returns this
*/
proto.store.GetResourceRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.GetResourceRequest} returns this
 */
proto.store.GetResourceRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional string resource_uuid = 2;
 * @return {string}
 */
proto.store.GetResourceRequest.prototype.getResourceUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.GetResourceRequest} returns this
 */
proto.store.GetResourceRequest.prototype.setResourceUuid = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string resource_name = 3;
 * @return {string}
 */
proto.store.GetResourceRequest.prototype.getResourceName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.GetResourceRequest} returns this
 */
proto.store.GetResourceRequest.prototype.setResourceName = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional int64 width = 4;
 * @return {number}
 */
proto.store.GetResourceRequest.prototype.getWidth = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.GetResourceRequest} returns this
 */
proto.store.GetResourceRequest.prototype.setWidth = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional int64 height = 5;
 * @return {number}
 */
proto.store.GetResourceRequest.prototype.getHeight = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.GetResourceRequest} returns this
 */
proto.store.GetResourceRequest.prototype.setHeight = function(value) {
  return jspb.Message.setProto3IntField(this, 5, value);
};


/**
 * optional Operation operation = 6;
 * @return {!proto.store.GetResourceRequest.Operation}
 */
proto.store.GetResourceRequest.prototype.getOperation = function() {
  return /** @type {!proto.store.GetResourceRequest.Operation} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {!proto.store.GetResourceRequest.Operation} value
 * @return {!proto.store.GetResourceRequest} returns this
 */
proto.store.GetResourceRequest.prototype.setOperation = function(value) {
  return jspb.Message.setProto3EnumField(this, 6, value);
};





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


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

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Resource} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Resource.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getData_asU8();
  if (f.length > 0) {
    writer.writeBytes(
      1,
      f
    );
  }
};


/**
 * optional bytes data = 1;
 * @return {!(string|Uint8Array)}
 */
proto.store.Resource.prototype.getData = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * optional bytes data = 1;
 * This is a type-conversion wrapper around `getData()`
 * @return {string}
 */
proto.store.Resource.prototype.getData_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(
      this.getData()));
};


/**
 * optional bytes data = 1;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getData()`
 * @return {!Uint8Array}
 */
proto.store.Resource.prototype.getData_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
      this.getData()));
};


/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.store.Resource} returns this
 */
proto.store.Resource.prototype.setData = function(value) {
  return jspb.Message.setProto3BytesField(this, 1, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.CreateCustomerRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CreateCustomerRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    email: jspb.Message.getFieldWithDefault(msg, 2, ""),
    firstName: jspb.Message.getFieldWithDefault(msg, 3, ""),
    lastName: jspb.Message.getFieldWithDefault(msg, 4, ""),
    password: jspb.Message.getFieldWithDefault(msg, 5, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.CreateCustomerRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.CreateCustomerRequest}
 */
proto.store.CreateCustomerRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setEmail(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setFirstName(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setLastName(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setPassword(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.CreateCustomerRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.CreateCustomerRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getEmail();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getFirstName();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getLastName();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getPassword();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.CreateCustomerRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.CreateCustomerRequest} returns this
*/
proto.store.CreateCustomerRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.CreateCustomerRequest} returns this
 */
proto.store.CreateCustomerRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional string email = 2;
 * @return {string}
 */
proto.store.CreateCustomerRequest.prototype.getEmail = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CreateCustomerRequest} returns this
 */
proto.store.CreateCustomerRequest.prototype.setEmail = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string first_name = 3;
 * @return {string}
 */
proto.store.CreateCustomerRequest.prototype.getFirstName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CreateCustomerRequest} returns this
 */
proto.store.CreateCustomerRequest.prototype.setFirstName = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string last_name = 4;
 * @return {string}
 */
proto.store.CreateCustomerRequest.prototype.getLastName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CreateCustomerRequest} returns this
 */
proto.store.CreateCustomerRequest.prototype.setLastName = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string password = 5;
 * @return {string}
 */
proto.store.CreateCustomerRequest.prototype.getPassword = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.CreateCustomerRequest} returns this
 */
proto.store.CreateCustomerRequest.prototype.setPassword = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};





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


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


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


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


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


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.GetCustomerRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.GetCustomerRequest} returns this
*/
proto.store.GetCustomerRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.GetCustomerRequest} returns this
 */
proto.store.GetCustomerRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.GetStockRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetStockRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    sku: jspb.Message.getFieldWithDefault(msg, 2, ""),
    storeCode: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.GetStockRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.GetStockRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getSku();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getStoreCode();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.GetStockRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.GetStockRequest} returns this
*/
proto.store.GetStockRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.GetStockRequest} returns this
 */
proto.store.GetStockRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional string sku = 2;
 * @return {string}
 */
proto.store.GetStockRequest.prototype.getSku = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.GetStockRequest} returns this
 */
proto.store.GetStockRequest.prototype.setSku = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string store_code = 3;
 * @return {string}
 */
proto.store.GetStockRequest.prototype.getStoreCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.GetStockRequest} returns this
 */
proto.store.GetStockRequest.prototype.setStoreCode = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListStocksRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListStocksRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    sku: jspb.Message.getFieldWithDefault(msg, 2, ""),
    storeCode: jspb.Message.getFieldWithDefault(msg, 3, ""),
    pageSize: jspb.Message.getFieldWithDefault(msg, 4, 0),
    pageToken: jspb.Message.getFieldWithDefault(msg, 5, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListStocksRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListStocksRequest}
 */
proto.store.ListStocksRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setSku(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setStoreCode(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPageSize(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListStocksRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListStocksRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getSku();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getStoreCode();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeInt32(
      4,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.ListStocksRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.ListStocksRequest} returns this
*/
proto.store.ListStocksRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ListStocksRequest} returns this
 */
proto.store.ListStocksRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional string sku = 2;
 * @return {string}
 */
proto.store.ListStocksRequest.prototype.getSku = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListStocksRequest} returns this
 */
proto.store.ListStocksRequest.prototype.setSku = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string store_code = 3;
 * @return {string}
 */
proto.store.ListStocksRequest.prototype.getStoreCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListStocksRequest} returns this
 */
proto.store.ListStocksRequest.prototype.setStoreCode = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional int32 page_size = 4;
 * @return {number}
 */
proto.store.ListStocksRequest.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListStocksRequest} returns this
 */
proto.store.ListStocksRequest.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional string page_token = 5;
 * @return {string}
 */
proto.store.ListStocksRequest.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListStocksRequest} returns this
 */
proto.store.ListStocksRequest.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListStocksResponse} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListStocksResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    recordCount: jspb.Message.getFieldWithDefault(msg, 1, 0),
    stocksList: jspb.Message.toObjectList(msg.getStocksList(),
    proto.store.Stock.toObject, includeInstance),
    nextPageToken: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListStocksResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListStocksResponse}
 */
proto.store.ListStocksResponse.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setRecordCount(value);
      break;
    case 2:
      var value = new proto.store.Stock;
      reader.readMessage(value,proto.store.Stock.deserializeBinaryFromReader);
      msg.addStocks(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setNextPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListStocksResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListStocksResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getRecordCount();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getStocksList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.store.Stock.serializeBinaryToWriter
    );
  }
  f = message.getNextPageToken();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int64 record_count = 1;
 * @return {number}
 */
proto.store.ListStocksResponse.prototype.getRecordCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListStocksResponse} returns this
 */
proto.store.ListStocksResponse.prototype.setRecordCount = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * repeated Stock stocks = 2;
 * @return {!Array<!proto.store.Stock>}
 */
proto.store.ListStocksResponse.prototype.getStocksList = function() {
  return /** @type{!Array<!proto.store.Stock>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.Stock, 2));
};


/**
 * @param {!Array<!proto.store.Stock>} value
 * @return {!proto.store.ListStocksResponse} returns this
*/
proto.store.ListStocksResponse.prototype.setStocksList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.store.Stock=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.Stock}
 */
proto.store.ListStocksResponse.prototype.addStocks = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.store.Stock, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ListStocksResponse} returns this
 */
proto.store.ListStocksResponse.prototype.clearStocksList = function() {
  return this.setStocksList([]);
};


/**
 * optional string next_page_token = 3;
 * @return {string}
 */
proto.store.ListStocksResponse.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListStocksResponse} returns this
 */
proto.store.ListStocksResponse.prototype.setNextPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListProductsRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListProductsRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    skusList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,
    pageSize: jspb.Message.getFieldWithDefault(msg, 3, 0),
    pageToken: jspb.Message.getFieldWithDefault(msg, 4, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListProductsRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListProductsRequest}
 */
proto.store.ListProductsRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.addSkus(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPageSize(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListProductsRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListProductsRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getSkusList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      2,
      f
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeInt32(
      3,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.ListProductsRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.ListProductsRequest} returns this
*/
proto.store.ListProductsRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ListProductsRequest} returns this
 */
proto.store.ListProductsRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * repeated string skus = 2;
 * @return {!Array<string>}
 */
proto.store.ListProductsRequest.prototype.getSkusList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.store.ListProductsRequest} returns this
 */
proto.store.ListProductsRequest.prototype.setSkusList = function(value) {
  return jspb.Message.setField(this, 2, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.store.ListProductsRequest} returns this
 */
proto.store.ListProductsRequest.prototype.addSkus = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ListProductsRequest} returns this
 */
proto.store.ListProductsRequest.prototype.clearSkusList = function() {
  return this.setSkusList([]);
};


/**
 * optional int32 page_size = 3;
 * @return {number}
 */
proto.store.ListProductsRequest.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListProductsRequest} returns this
 */
proto.store.ListProductsRequest.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional string page_token = 4;
 * @return {string}
 */
proto.store.ListProductsRequest.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListProductsRequest} returns this
 */
proto.store.ListProductsRequest.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListProductsResponse} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListProductsResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    recordCount: jspb.Message.getFieldWithDefault(msg, 1, 0),
    productsList: jspb.Message.toObjectList(msg.getProductsList(),
    proto.store.Product.toObject, includeInstance),
    nextPageToken: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListProductsResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListProductsResponse}
 */
proto.store.ListProductsResponse.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setRecordCount(value);
      break;
    case 2:
      var value = new proto.store.Product;
      reader.readMessage(value,proto.store.Product.deserializeBinaryFromReader);
      msg.addProducts(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setNextPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListProductsResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListProductsResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getRecordCount();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getProductsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.store.Product.serializeBinaryToWriter
    );
  }
  f = message.getNextPageToken();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int64 record_count = 1;
 * @return {number}
 */
proto.store.ListProductsResponse.prototype.getRecordCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListProductsResponse} returns this
 */
proto.store.ListProductsResponse.prototype.setRecordCount = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * repeated Product products = 2;
 * @return {!Array<!proto.store.Product>}
 */
proto.store.ListProductsResponse.prototype.getProductsList = function() {
  return /** @type{!Array<!proto.store.Product>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.Product, 2));
};


/**
 * @param {!Array<!proto.store.Product>} value
 * @return {!proto.store.ListProductsResponse} returns this
*/
proto.store.ListProductsResponse.prototype.setProductsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.store.Product=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.Product}
 */
proto.store.ListProductsResponse.prototype.addProducts = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.store.Product, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ListProductsResponse} returns this
 */
proto.store.ListProductsResponse.prototype.clearProductsList = function() {
  return this.setProductsList([]);
};


/**
 * optional string next_page_token = 3;
 * @return {string}
 */
proto.store.ListProductsResponse.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListProductsResponse} returns this
 */
proto.store.ListProductsResponse.prototype.setNextPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.Stock} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Stock.toObject = function(includeInstance, msg) {
  var f, obj = {
    productId: jspb.Message.getFieldWithDefault(msg, 1, 0),
    storeId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    quantity: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),
    isInStock: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
    isDecimalQuantity: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
    isShowDefaultNotificationMessage: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),
    isUseConfigMinimumQuantity: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),
    minimumQuantity: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0.0),
    isUseConfigMinimumSaleQuantity: jspb.Message.getBooleanFieldWithDefault(msg, 9, false),
    minimumSaleQuantity: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0),
    isUseConfigMaximumSaleQuantity: jspb.Message.getBooleanFieldWithDefault(msg, 11, false),
    maximumSaleQuantity: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0.0),
    isUseConfigBackorders: jspb.Message.getBooleanFieldWithDefault(msg, 13, false),
    backorders: jspb.Message.getFloatingPointFieldWithDefault(msg, 14, 0.0),
    isUseConfigNotifyStockQuantity: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),
    notifyStockQuantity: jspb.Message.getFloatingPointFieldWithDefault(msg, 16, 0.0),
    isUseConfigQuantityIncrements: jspb.Message.getBooleanFieldWithDefault(msg, 17, false),
    quantityIncrements: jspb.Message.getFloatingPointFieldWithDefault(msg, 18, 0.0),
    isUseConfigEnableQuantityIncrements: jspb.Message.getBooleanFieldWithDefault(msg, 19, false),
    isEnableQuantityIncrements: jspb.Message.getBooleanFieldWithDefault(msg, 20, false),
    isUseConfigManageStock: jspb.Message.getBooleanFieldWithDefault(msg, 21, false),
    isManageStock: jspb.Message.getBooleanFieldWithDefault(msg, 22, false),
    lowStockDate: jspb.Message.getFieldWithDefault(msg, 23, ""),
    isDecimalDivided: jspb.Message.getBooleanFieldWithDefault(msg, 24, false),
    stockStatusChangedAuto: jspb.Message.getFloatingPointFieldWithDefault(msg, 25, 0.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.store.Stock}
 */
proto.store.Stock.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.Stock;
  return proto.store.Stock.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.Stock} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.Stock}
 */
proto.store.Stock.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setProductId(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setStoreId(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setQuantity(value);
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsInStock(value);
      break;
    case 5:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsDecimalQuantity(value);
      break;
    case 6:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsShowDefaultNotificationMessage(value);
      break;
    case 7:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsUseConfigMinimumQuantity(value);
      break;
    case 8:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMinimumQuantity(value);
      break;
    case 9:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsUseConfigMinimumSaleQuantity(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMinimumSaleQuantity(value);
      break;
    case 11:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsUseConfigMaximumSaleQuantity(value);
      break;
    case 12:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMaximumSaleQuantity(value);
      break;
    case 13:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsUseConfigBackorders(value);
      break;
    case 14:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setBackorders(value);
      break;
    case 15:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsUseConfigNotifyStockQuantity(value);
      break;
    case 16:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setNotifyStockQuantity(value);
      break;
    case 17:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsUseConfigQuantityIncrements(value);
      break;
    case 18:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setQuantityIncrements(value);
      break;
    case 19:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsUseConfigEnableQuantityIncrements(value);
      break;
    case 20:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsEnableQuantityIncrements(value);
      break;
    case 21:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsUseConfigManageStock(value);
      break;
    case 22:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsManageStock(value);
      break;
    case 23:
      var value = /** @type {string} */ (reader.readString());
      msg.setLowStockDate(value);
      break;
    case 24:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsDecimalDivided(value);
      break;
    case 25:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setStockStatusChangedAuto(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Stock} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Stock.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getProductId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getStoreId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getQuantity();
  if (f !== 0.0) {
    writer.writeDouble(
      3,
      f
    );
  }
  f = message.getIsInStock();
  if (f) {
    writer.writeBool(
      4,
      f
    );
  }
  f = message.getIsDecimalQuantity();
  if (f) {
    writer.writeBool(
      5,
      f
    );
  }
  f = message.getIsShowDefaultNotificationMessage();
  if (f) {
    writer.writeBool(
      6,
      f
    );
  }
  f = message.getIsUseConfigMinimumQuantity();
  if (f) {
    writer.writeBool(
      7,
      f
    );
  }
  f = message.getMinimumQuantity();
  if (f !== 0.0) {
    writer.writeDouble(
      8,
      f
    );
  }
  f = message.getIsUseConfigMinimumSaleQuantity();
  if (f) {
    writer.writeBool(
      9,
      f
    );
  }
  f = message.getMinimumSaleQuantity();
  if (f !== 0.0) {
    writer.writeDouble(
      10,
      f
    );
  }
  f = message.getIsUseConfigMaximumSaleQuantity();
  if (f) {
    writer.writeBool(
      11,
      f
    );
  }
  f = message.getMaximumSaleQuantity();
  if (f !== 0.0) {
    writer.writeDouble(
      12,
      f
    );
  }
  f = message.getIsUseConfigBackorders();
  if (f) {
    writer.writeBool(
      13,
      f
    );
  }
  f = message.getBackorders();
  if (f !== 0.0) {
    writer.writeDouble(
      14,
      f
    );
  }
  f = message.getIsUseConfigNotifyStockQuantity();
  if (f) {
    writer.writeBool(
      15,
      f
    );
  }
  f = message.getNotifyStockQuantity();
  if (f !== 0.0) {
    writer.writeDouble(
      16,
      f
    );
  }
  f = message.getIsUseConfigQuantityIncrements();
  if (f) {
    writer.writeBool(
      17,
      f
    );
  }
  f = message.getQuantityIncrements();
  if (f !== 0.0) {
    writer.writeDouble(
      18,
      f
    );
  }
  f = message.getIsUseConfigEnableQuantityIncrements();
  if (f) {
    writer.writeBool(
      19,
      f
    );
  }
  f = message.getIsEnableQuantityIncrements();
  if (f) {
    writer.writeBool(
      20,
      f
    );
  }
  f = message.getIsUseConfigManageStock();
  if (f) {
    writer.writeBool(
      21,
      f
    );
  }
  f = message.getIsManageStock();
  if (f) {
    writer.writeBool(
      22,
      f
    );
  }
  f = message.getLowStockDate();
  if (f.length > 0) {
    writer.writeString(
      23,
      f
    );
  }
  f = message.getIsDecimalDivided();
  if (f) {
    writer.writeBool(
      24,
      f
    );
  }
  f = message.getStockStatusChangedAuto();
  if (f !== 0.0) {
    writer.writeDouble(
      25,
      f
    );
  }
};


/**
 * optional int32 product_id = 1;
 * @return {number}
 */
proto.store.Stock.prototype.getProductId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setProductId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional int32 store_id = 2;
 * @return {number}
 */
proto.store.Stock.prototype.getStoreId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setStoreId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional double quantity = 3;
 * @return {number}
 */
proto.store.Stock.prototype.getQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setQuantity = function(value) {
  return jspb.Message.setProto3FloatField(this, 3, value);
};


/**
 * optional bool is_in_stock = 4;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsInStock = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsInStock = function(value) {
  return jspb.Message.setProto3BooleanField(this, 4, value);
};


/**
 * optional bool is_decimal_quantity = 5;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsDecimalQuantity = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsDecimalQuantity = function(value) {
  return jspb.Message.setProto3BooleanField(this, 5, value);
};


/**
 * optional bool is_show_default_notification_message = 6;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsShowDefaultNotificationMessage = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsShowDefaultNotificationMessage = function(value) {
  return jspb.Message.setProto3BooleanField(this, 6, value);
};


/**
 * optional bool is_use_config_minimum_quantity = 7;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsUseConfigMinimumQuantity = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsUseConfigMinimumQuantity = function(value) {
  return jspb.Message.setProto3BooleanField(this, 7, value);
};


/**
 * optional double minimum_quantity = 8;
 * @return {number}
 */
proto.store.Stock.prototype.getMinimumQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setMinimumQuantity = function(value) {
  return jspb.Message.setProto3FloatField(this, 8, value);
};


/**
 * optional bool is_use_config_minimum_sale_quantity = 9;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsUseConfigMinimumSaleQuantity = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsUseConfigMinimumSaleQuantity = function(value) {
  return jspb.Message.setProto3BooleanField(this, 9, value);
};


/**
 * optional double minimum_sale_quantity = 10;
 * @return {number}
 */
proto.store.Stock.prototype.getMinimumSaleQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setMinimumSaleQuantity = function(value) {
  return jspb.Message.setProto3FloatField(this, 10, value);
};


/**
 * optional bool is_use_config_maximum_sale_quantity = 11;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsUseConfigMaximumSaleQuantity = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsUseConfigMaximumSaleQuantity = function(value) {
  return jspb.Message.setProto3BooleanField(this, 11, value);
};


/**
 * optional double maximum_sale_quantity = 12;
 * @return {number}
 */
proto.store.Stock.prototype.getMaximumSaleQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setMaximumSaleQuantity = function(value) {
  return jspb.Message.setProto3FloatField(this, 12, value);
};


/**
 * optional bool is_use_config_backorders = 13;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsUseConfigBackorders = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 13, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsUseConfigBackorders = function(value) {
  return jspb.Message.setProto3BooleanField(this, 13, value);
};


/**
 * optional double backorders = 14;
 * @return {number}
 */
proto.store.Stock.prototype.getBackorders = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 14, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setBackorders = function(value) {
  return jspb.Message.setProto3FloatField(this, 14, value);
};


/**
 * optional bool is_use_config_notify_stock_quantity = 15;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsUseConfigNotifyStockQuantity = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsUseConfigNotifyStockQuantity = function(value) {
  return jspb.Message.setProto3BooleanField(this, 15, value);
};


/**
 * optional double notify_stock_quantity = 16;
 * @return {number}
 */
proto.store.Stock.prototype.getNotifyStockQuantity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 16, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setNotifyStockQuantity = function(value) {
  return jspb.Message.setProto3FloatField(this, 16, value);
};


/**
 * optional bool is_use_config_quantity_increments = 17;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsUseConfigQuantityIncrements = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 17, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsUseConfigQuantityIncrements = function(value) {
  return jspb.Message.setProto3BooleanField(this, 17, value);
};


/**
 * optional double quantity_increments = 18;
 * @return {number}
 */
proto.store.Stock.prototype.getQuantityIncrements = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 18, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setQuantityIncrements = function(value) {
  return jspb.Message.setProto3FloatField(this, 18, value);
};


/**
 * optional bool is_use_config_enable_quantity_increments = 19;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsUseConfigEnableQuantityIncrements = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 19, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsUseConfigEnableQuantityIncrements = function(value) {
  return jspb.Message.setProto3BooleanField(this, 19, value);
};


/**
 * optional bool is_enable_quantity_increments = 20;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsEnableQuantityIncrements = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 20, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsEnableQuantityIncrements = function(value) {
  return jspb.Message.setProto3BooleanField(this, 20, value);
};


/**
 * optional bool is_use_config_manage_stock = 21;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsUseConfigManageStock = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 21, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsUseConfigManageStock = function(value) {
  return jspb.Message.setProto3BooleanField(this, 21, value);
};


/**
 * optional bool is_manage_stock = 22;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsManageStock = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsManageStock = function(value) {
  return jspb.Message.setProto3BooleanField(this, 22, value);
};


/**
 * optional string low_stock_date = 23;
 * @return {string}
 */
proto.store.Stock.prototype.getLowStockDate = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 23, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setLowStockDate = function(value) {
  return jspb.Message.setProto3StringField(this, 23, value);
};


/**
 * optional bool is_decimal_divided = 24;
 * @return {boolean}
 */
proto.store.Stock.prototype.getIsDecimalDivided = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 24, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setIsDecimalDivided = function(value) {
  return jspb.Message.setProto3BooleanField(this, 24, value);
};


/**
 * optional double stock_status_changed_auto = 25;
 * @return {number}
 */
proto.store.Stock.prototype.getStockStatusChangedAuto = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 25, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Stock} returns this
 */
proto.store.Stock.prototype.setStockStatusChangedAuto = function(value) {
  return jspb.Message.setProto3FloatField(this, 25, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.Product.repeatedFields_ = [10,11,12];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.Product} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Product.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    sku: jspb.Message.getFieldWithDefault(msg, 2, ""),
    name: jspb.Message.getFieldWithDefault(msg, 3, ""),
    price: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0),
    status: jspb.Message.getFieldWithDefault(msg, 5, 0),
    visibility: jspb.Message.getFieldWithDefault(msg, 6, 0),
    productGroupId: jspb.Message.getFieldWithDefault(msg, 7, 0),
    created: jspb.Message.getFieldWithDefault(msg, 8, ""),
    updated: jspb.Message.getFieldWithDefault(msg, 9, ""),
    productLinksList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f,
    tierPricesList: (f = jspb.Message.getRepeatedField(msg, 11)) == null ? undefined : f,
    customAttributesList: jspb.Message.toObjectList(msg.getCustomAttributesList(),
    proto.store.Attribute.toObject, includeInstance),
    searchCriteria: (f = msg.getSearchCriteria()) && proto.store.Criteria.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.store.Product}
 */
proto.store.Product.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.Product;
  return proto.store.Product.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.Product} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.Product}
 */
proto.store.Product.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setSku(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setPrice(value);
      break;
    case 5:
      var value = /** @type {!proto.store.Product.Status} */ (reader.readEnum());
      msg.setStatus(value);
      break;
    case 6:
      var value = /** @type {!proto.store.Product.Visibility} */ (reader.readEnum());
      msg.setVisibility(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setProductGroupId(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setCreated(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdated(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.addProductLinks(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.addTierPrices(value);
      break;
    case 12:
      var value = new proto.store.Attribute;
      reader.readMessage(value,proto.store.Attribute.deserializeBinaryFromReader);
      msg.addCustomAttributes(value);
      break;
    case 13:
      var value = new proto.store.Criteria;
      reader.readMessage(value,proto.store.Criteria.deserializeBinaryFromReader);
      msg.setSearchCriteria(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Product} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Product.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getSku();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      4,
      f
    );
  }
  f = message.getStatus();
  if (f !== 0.0) {
    writer.writeEnum(
      5,
      f
    );
  }
  f = message.getVisibility();
  if (f !== 0.0) {
    writer.writeEnum(
      6,
      f
    );
  }
  f = message.getProductGroupId();
  if (f !== 0) {
    writer.writeInt32(
      7,
      f
    );
  }
  f = message.getCreated();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getUpdated();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getProductLinksList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      10,
      f
    );
  }
  f = message.getTierPricesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      11,
      f
    );
  }
  f = message.getCustomAttributesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      12,
      f,
      proto.store.Attribute.serializeBinaryToWriter
    );
  }
  f = message.getSearchCriteria();
  if (f != null) {
    writer.writeMessage(
      13,
      f,
      proto.store.Criteria.serializeBinaryToWriter
    );
  }
};


/**
 * @enum {number}
 */
proto.store.Product.Status = {
  STATUS_UNKNOW: 0,
  ENABLED: 1,
  DISABLED: 2
};

/**
 * @enum {number}
 */
proto.store.Product.Visibility = {
  VISIBILITY_UNKNOW: 0,
  NOT_VISIBLE: 1,
  IN_CATALOG: 2,
  IN_SEARCH: 3,
  BOTH: 4
};

/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.Product.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string sku = 2;
 * @return {string}
 */
proto.store.Product.prototype.getSku = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setSku = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string name = 3;
 * @return {string}
 */
proto.store.Product.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional double price = 4;
 * @return {number}
 */
proto.store.Product.prototype.getPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 4, value);
};


/**
 * optional Status status = 5;
 * @return {!proto.store.Product.Status}
 */
proto.store.Product.prototype.getStatus = function() {
  return /** @type {!proto.store.Product.Status} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {!proto.store.Product.Status} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setStatus = function(value) {
  return jspb.Message.setProto3EnumField(this, 5, value);
};


/**
 * optional Visibility visibility = 6;
 * @return {!proto.store.Product.Visibility}
 */
proto.store.Product.prototype.getVisibility = function() {
  return /** @type {!proto.store.Product.Visibility} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {!proto.store.Product.Visibility} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setVisibility = function(value) {
  return jspb.Message.setProto3EnumField(this, 6, value);
};


/**
 * optional int32 product_group_id = 7;
 * @return {number}
 */
proto.store.Product.prototype.getProductGroupId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setProductGroupId = function(value) {
  return jspb.Message.setProto3IntField(this, 7, value);
};


/**
 * optional string created = 8;
 * @return {string}
 */
proto.store.Product.prototype.getCreated = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setCreated = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string updated = 9;
 * @return {string}
 */
proto.store.Product.prototype.getUpdated = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setUpdated = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};


/**
 * repeated string product_links = 10;
 * @return {!Array<string>}
 */
proto.store.Product.prototype.getProductLinksList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 10));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setProductLinksList = function(value) {
  return jspb.Message.setField(this, 10, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.addProductLinks = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 10, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.clearProductLinksList = function() {
  return this.setProductLinksList([]);
};


/**
 * repeated string tier_prices = 11;
 * @return {!Array<string>}
 */
proto.store.Product.prototype.getTierPricesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 11));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.setTierPricesList = function(value) {
  return jspb.Message.setField(this, 11, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.addTierPrices = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 11, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.clearTierPricesList = function() {
  return this.setTierPricesList([]);
};


/**
 * repeated Attribute custom_attributes = 12;
 * @return {!Array<!proto.store.Attribute>}
 */
proto.store.Product.prototype.getCustomAttributesList = function() {
  return /** @type{!Array<!proto.store.Attribute>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.Attribute, 12));
};


/**
 * @param {!Array<!proto.store.Attribute>} value
 * @return {!proto.store.Product} returns this
*/
proto.store.Product.prototype.setCustomAttributesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 12, value);
};


/**
 * @param {!proto.store.Attribute=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.Attribute}
 */
proto.store.Product.prototype.addCustomAttributes = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.store.Attribute, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.clearCustomAttributesList = function() {
  return this.setCustomAttributesList([]);
};


/**
 * optional Criteria search_criteria = 13;
 * @return {?proto.store.Criteria}
 */
proto.store.Product.prototype.getSearchCriteria = function() {
  return /** @type{?proto.store.Criteria} */ (
    jspb.Message.getWrapperField(this, proto.store.Criteria, 13));
};


/**
 * @param {?proto.store.Criteria|undefined} value
 * @return {!proto.store.Product} returns this
*/
proto.store.Product.prototype.setSearchCriteria = function(value) {
  return jspb.Message.setWrapperField(this, 13, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.Product} returns this
 */
proto.store.Product.prototype.clearSearchCriteria = function() {
  return this.setSearchCriteria(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.Product.prototype.hasSearchCriteria = function() {
  return jspb.Message.getField(this, 13) != null;
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListRenderProductsRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListRenderProductsRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    skusList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,
    pageSize: jspb.Message.getFieldWithDefault(msg, 3, 0),
    pageToken: jspb.Message.getFieldWithDefault(msg, 4, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListRenderProductsRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListRenderProductsRequest}
 */
proto.store.ListRenderProductsRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto_client_pb.ClientRequest;
      reader.readMessage(value,proto_client_pb.ClientRequest.deserializeBinaryFromReader);
      msg.setClientRequest(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.addSkus(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPageSize(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListRenderProductsRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListRenderProductsRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getSkusList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      2,
      f
    );
  }
  f = message.getPageSize();
  if (f !== 0) {
    writer.writeInt32(
      3,
      f
    );
  }
  f = message.getPageToken();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.ListRenderProductsRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.ListRenderProductsRequest} returns this
*/
proto.store.ListRenderProductsRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ListRenderProductsRequest} returns this
 */
proto.store.ListRenderProductsRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * repeated string skus = 2;
 * @return {!Array<string>}
 */
proto.store.ListRenderProductsRequest.prototype.getSkusList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.store.ListRenderProductsRequest} returns this
 */
proto.store.ListRenderProductsRequest.prototype.setSkusList = function(value) {
  return jspb.Message.setField(this, 2, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.store.ListRenderProductsRequest} returns this
 */
proto.store.ListRenderProductsRequest.prototype.addSkus = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ListRenderProductsRequest} returns this
 */
proto.store.ListRenderProductsRequest.prototype.clearSkusList = function() {
  return this.setSkusList([]);
};


/**
 * optional int32 page_size = 3;
 * @return {number}
 */
proto.store.ListRenderProductsRequest.prototype.getPageSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListRenderProductsRequest} returns this
 */
proto.store.ListRenderProductsRequest.prototype.setPageSize = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional string page_token = 4;
 * @return {string}
 */
proto.store.ListRenderProductsRequest.prototype.getPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListRenderProductsRequest} returns this
 */
proto.store.ListRenderProductsRequest.prototype.setPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};



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



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ListRenderProductsResponse} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListRenderProductsResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    recordCount: jspb.Message.getFieldWithDefault(msg, 1, 0),
    renderProductsList: jspb.Message.toObjectList(msg.getRenderProductsList(),
    proto.store.RenderProduct.toObject, includeInstance),
    nextPageToken: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.ListRenderProductsResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.ListRenderProductsResponse}
 */
proto.store.ListRenderProductsResponse.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setRecordCount(value);
      break;
    case 2:
      var value = new proto.store.RenderProduct;
      reader.readMessage(value,proto.store.RenderProduct.deserializeBinaryFromReader);
      msg.addRenderProducts(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setNextPageToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ListRenderProductsResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ListRenderProductsResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getRecordCount();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getRenderProductsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.store.RenderProduct.serializeBinaryToWriter
    );
  }
  f = message.getNextPageToken();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int64 record_count = 1;
 * @return {number}
 */
proto.store.ListRenderProductsResponse.prototype.getRecordCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.ListRenderProductsResponse} returns this
 */
proto.store.ListRenderProductsResponse.prototype.setRecordCount = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * repeated RenderProduct render_products = 2;
 * @return {!Array<!proto.store.RenderProduct>}
 */
proto.store.ListRenderProductsResponse.prototype.getRenderProductsList = function() {
  return /** @type{!Array<!proto.store.RenderProduct>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.RenderProduct, 2));
};


/**
 * @param {!Array<!proto.store.RenderProduct>} value
 * @return {!proto.store.ListRenderProductsResponse} returns this
*/
proto.store.ListRenderProductsResponse.prototype.setRenderProductsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.store.RenderProduct=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.RenderProduct}
 */
proto.store.ListRenderProductsResponse.prototype.addRenderProducts = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.store.RenderProduct, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.ListRenderProductsResponse} returns this
 */
proto.store.ListRenderProductsResponse.prototype.clearRenderProductsList = function() {
  return this.setRenderProductsList([]);
};


/**
 * optional string next_page_token = 3;
 * @return {string}
 */
proto.store.ListRenderProductsResponse.prototype.getNextPageToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ListRenderProductsResponse} returns this
 */
proto.store.ListRenderProductsResponse.prototype.setNextPageToken = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.RenderProduct} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.RenderProduct.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    name: jspb.Message.getFieldWithDefault(msg, 2, ""),
    type: jspb.Message.getFieldWithDefault(msg, 3, ""),
    storeId: jspb.Message.getFieldWithDefault(msg, 4, 0),
    url: jspb.Message.getFieldWithDefault(msg, 5, ""),
    productType: jspb.Message.getFieldWithDefault(msg, 6, 0),
    priceInfo: (f = msg.getPriceInfo()) && proto.store.PriceInfo.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.store.RenderProduct}
 */
proto.store.RenderProduct.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.RenderProduct;
  return proto.store.RenderProduct.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.RenderProduct} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.RenderProduct}
 */
proto.store.RenderProduct.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setType(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setStoreId(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setUrl(value);
      break;
    case 6:
      var value = /** @type {!proto.store.RenderProduct.ProductType} */ (reader.readEnum());
      msg.setProductType(value);
      break;
    case 7:
      var value = new proto.store.PriceInfo;
      reader.readMessage(value,proto.store.PriceInfo.deserializeBinaryFromReader);
      msg.setPriceInfo(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.RenderProduct} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.RenderProduct.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getType();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getStoreId();
  if (f !== 0) {
    writer.writeInt32(
      4,
      f
    );
  }
  f = message.getUrl();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getProductType();
  if (f !== 0.0) {
    writer.writeEnum(
      6,
      f
    );
  }
  f = message.getPriceInfo();
  if (f != null) {
    writer.writeMessage(
      7,
      f,
      proto.store.PriceInfo.serializeBinaryToWriter
    );
  }
};


/**
 * @enum {number}
 */
proto.store.RenderProduct.ProductType = {
  SIMPLE: 0,
  CONFIGURABLE: 1,
  GROUPED: 2,
  VIRTUAL: 3,
  BUNDLE: 4,
  DOWNLOADABLE: 5,
  GIFT: 6
};

/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.RenderProduct.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.RenderProduct} returns this
 */
proto.store.RenderProduct.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string name = 2;
 * @return {string}
 */
proto.store.RenderProduct.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.RenderProduct} returns this
 */
proto.store.RenderProduct.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string type = 3;
 * @return {string}
 */
proto.store.RenderProduct.prototype.getType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.RenderProduct} returns this
 */
proto.store.RenderProduct.prototype.setType = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional int32 store_id = 4;
 * @return {number}
 */
proto.store.RenderProduct.prototype.getStoreId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.RenderProduct} returns this
 */
proto.store.RenderProduct.prototype.setStoreId = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional string url = 5;
 * @return {string}
 */
proto.store.RenderProduct.prototype.getUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.RenderProduct} returns this
 */
proto.store.RenderProduct.prototype.setUrl = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional ProductType product_type = 6;
 * @return {!proto.store.RenderProduct.ProductType}
 */
proto.store.RenderProduct.prototype.getProductType = function() {
  return /** @type {!proto.store.RenderProduct.ProductType} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {!proto.store.RenderProduct.ProductType} value
 * @return {!proto.store.RenderProduct} returns this
 */
proto.store.RenderProduct.prototype.setProductType = function(value) {
  return jspb.Message.setProto3EnumField(this, 6, value);
};


/**
 * optional PriceInfo price_info = 7;
 * @return {?proto.store.PriceInfo}
 */
proto.store.RenderProduct.prototype.getPriceInfo = function() {
  return /** @type{?proto.store.PriceInfo} */ (
    jspb.Message.getWrapperField(this, proto.store.PriceInfo, 7));
};


/**
 * @param {?proto.store.PriceInfo|undefined} value
 * @return {!proto.store.RenderProduct} returns this
*/
proto.store.RenderProduct.prototype.setPriceInfo = function(value) {
  return jspb.Message.setWrapperField(this, 7, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.RenderProduct} returns this
 */
proto.store.RenderProduct.prototype.clearPriceInfo = function() {
  return this.setPriceInfo(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.RenderProduct.prototype.hasPriceInfo = function() {
  return jspb.Message.getField(this, 7) != null;
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.PriceInfo} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.PriceInfo.toObject = function(includeInstance, msg) {
  var f, obj = {
    finalPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),
    maxPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0),
    maxRegularPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),
    minimalRegularPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0),
    specialPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0),
    minimalPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0),
    regularPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),
    formattedPrice: (f = msg.getFormattedPrice()) && proto.store.FormattedPrice.toObject(includeInstance, f),
    taxAdjustment: (f = msg.getTaxAdjustment()) && proto.store.TaxAdjustment.toObject(includeInstance, f),
    currencyCode: jspb.Message.getFieldWithDefault(msg, 10, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.PriceInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.PriceInfo}
 */
proto.store.PriceInfo.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setFinalPrice(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMaxPrice(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMaxRegularPrice(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMinimalRegularPrice(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setSpecialPrice(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMinimalPrice(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setRegularPrice(value);
      break;
    case 8:
      var value = new proto.store.FormattedPrice;
      reader.readMessage(value,proto.store.FormattedPrice.deserializeBinaryFromReader);
      msg.setFormattedPrice(value);
      break;
    case 9:
      var value = new proto.store.TaxAdjustment;
      reader.readMessage(value,proto.store.TaxAdjustment.deserializeBinaryFromReader);
      msg.setTaxAdjustment(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setCurrencyCode(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.PriceInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.PriceInfo.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getFinalPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      1,
      f
    );
  }
  f = message.getMaxPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      2,
      f
    );
  }
  f = message.getMaxRegularPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      3,
      f
    );
  }
  f = message.getMinimalRegularPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      4,
      f
    );
  }
  f = message.getSpecialPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      5,
      f
    );
  }
  f = message.getMinimalPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      6,
      f
    );
  }
  f = message.getRegularPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      7,
      f
    );
  }
  f = message.getFormattedPrice();
  if (f != null) {
    writer.writeMessage(
      8,
      f,
      proto.store.FormattedPrice.serializeBinaryToWriter
    );
  }
  f = message.getTaxAdjustment();
  if (f != null) {
    writer.writeMessage(
      9,
      f,
      proto.store.TaxAdjustment.serializeBinaryToWriter
    );
  }
  f = message.getCurrencyCode();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
};


/**
 * optional double final_price = 1;
 * @return {number}
 */
proto.store.PriceInfo.prototype.getFinalPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.setFinalPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 1, value);
};


/**
 * optional double max_price = 2;
 * @return {number}
 */
proto.store.PriceInfo.prototype.getMaxPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.setMaxPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 2, value);
};


/**
 * optional double max_regular_price = 3;
 * @return {number}
 */
proto.store.PriceInfo.prototype.getMaxRegularPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.setMaxRegularPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 3, value);
};


/**
 * optional double minimal_regular_price = 4;
 * @return {number}
 */
proto.store.PriceInfo.prototype.getMinimalRegularPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.setMinimalRegularPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 4, value);
};


/**
 * optional double special_price = 5;
 * @return {number}
 */
proto.store.PriceInfo.prototype.getSpecialPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.setSpecialPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 5, value);
};


/**
 * optional double minimal_price = 6;
 * @return {number}
 */
proto.store.PriceInfo.prototype.getMinimalPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.setMinimalPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 6, value);
};


/**
 * optional double regular_price = 7;
 * @return {number}
 */
proto.store.PriceInfo.prototype.getRegularPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.setRegularPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 7, value);
};


/**
 * optional FormattedPrice formatted_price = 8;
 * @return {?proto.store.FormattedPrice}
 */
proto.store.PriceInfo.prototype.getFormattedPrice = function() {
  return /** @type{?proto.store.FormattedPrice} */ (
    jspb.Message.getWrapperField(this, proto.store.FormattedPrice, 8));
};


/**
 * @param {?proto.store.FormattedPrice|undefined} value
 * @return {!proto.store.PriceInfo} returns this
*/
proto.store.PriceInfo.prototype.setFormattedPrice = function(value) {
  return jspb.Message.setWrapperField(this, 8, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.clearFormattedPrice = function() {
  return this.setFormattedPrice(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.PriceInfo.prototype.hasFormattedPrice = function() {
  return jspb.Message.getField(this, 8) != null;
};


/**
 * optional TaxAdjustment tax_adjustment = 9;
 * @return {?proto.store.TaxAdjustment}
 */
proto.store.PriceInfo.prototype.getTaxAdjustment = function() {
  return /** @type{?proto.store.TaxAdjustment} */ (
    jspb.Message.getWrapperField(this, proto.store.TaxAdjustment, 9));
};


/**
 * @param {?proto.store.TaxAdjustment|undefined} value
 * @return {!proto.store.PriceInfo} returns this
*/
proto.store.PriceInfo.prototype.setTaxAdjustment = function(value) {
  return jspb.Message.setWrapperField(this, 9, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.clearTaxAdjustment = function() {
  return this.setTaxAdjustment(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.PriceInfo.prototype.hasTaxAdjustment = function() {
  return jspb.Message.getField(this, 9) != null;
};


/**
 * optional string currency_code = 10;
 * @return {string}
 */
proto.store.PriceInfo.prototype.getCurrencyCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.PriceInfo} returns this
 */
proto.store.PriceInfo.prototype.setCurrencyCode = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.FormattedPrice} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.FormattedPrice.toObject = function(includeInstance, msg) {
  var f, obj = {
    finalPrice: jspb.Message.getFieldWithDefault(msg, 1, ""),
    maxPrice: jspb.Message.getFieldWithDefault(msg, 2, ""),
    minimalPrice: jspb.Message.getFieldWithDefault(msg, 3, ""),
    maxRegularPrice: jspb.Message.getFieldWithDefault(msg, 4, ""),
    minimalRegularPrice: jspb.Message.getFieldWithDefault(msg, 5, ""),
    specialPrice: jspb.Message.getFieldWithDefault(msg, 6, ""),
    regularPrice: jspb.Message.getFieldWithDefault(msg, 7, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.FormattedPrice} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.FormattedPrice}
 */
proto.store.FormattedPrice.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setFinalPrice(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setMaxPrice(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setMinimalPrice(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setMaxRegularPrice(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setMinimalRegularPrice(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setSpecialPrice(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setRegularPrice(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.FormattedPrice} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.FormattedPrice.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getFinalPrice();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getMaxPrice();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getMinimalPrice();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getMaxRegularPrice();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getMinimalRegularPrice();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getSpecialPrice();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getRegularPrice();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
};


/**
 * optional string final_price = 1;
 * @return {string}
 */
proto.store.FormattedPrice.prototype.getFinalPrice = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.FormattedPrice} returns this
 */
proto.store.FormattedPrice.prototype.setFinalPrice = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string max_price = 2;
 * @return {string}
 */
proto.store.FormattedPrice.prototype.getMaxPrice = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.FormattedPrice} returns this
 */
proto.store.FormattedPrice.prototype.setMaxPrice = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string minimal_price = 3;
 * @return {string}
 */
proto.store.FormattedPrice.prototype.getMinimalPrice = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.FormattedPrice} returns this
 */
proto.store.FormattedPrice.prototype.setMinimalPrice = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string max_regular_price = 4;
 * @return {string}
 */
proto.store.FormattedPrice.prototype.getMaxRegularPrice = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.FormattedPrice} returns this
 */
proto.store.FormattedPrice.prototype.setMaxRegularPrice = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string minimal_regular_price = 5;
 * @return {string}
 */
proto.store.FormattedPrice.prototype.getMinimalRegularPrice = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.FormattedPrice} returns this
 */
proto.store.FormattedPrice.prototype.setMinimalRegularPrice = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string special_price = 6;
 * @return {string}
 */
proto.store.FormattedPrice.prototype.getSpecialPrice = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.FormattedPrice} returns this
 */
proto.store.FormattedPrice.prototype.setSpecialPrice = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string regular_price = 7;
 * @return {string}
 */
proto.store.FormattedPrice.prototype.getRegularPrice = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.FormattedPrice} returns this
 */
proto.store.FormattedPrice.prototype.setRegularPrice = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.TaxAdjustment} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.TaxAdjustment.toObject = function(includeInstance, msg) {
  var f, obj = {
    finalPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),
    maxPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0),
    maxRegularPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),
    minimalRegularPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0),
    specialPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0),
    minimalPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0),
    regularPrice: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),
    weeeAdjustment: jspb.Message.getFieldWithDefault(msg, 8, ""),
    formattedPrice: (f = msg.getFormattedPrice()) && proto.store.FormattedPrice.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.store.TaxAdjustment}
 */
proto.store.TaxAdjustment.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.TaxAdjustment;
  return proto.store.TaxAdjustment.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.TaxAdjustment} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.TaxAdjustment}
 */
proto.store.TaxAdjustment.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setFinalPrice(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMaxPrice(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMaxRegularPrice(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMinimalRegularPrice(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setSpecialPrice(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setMinimalPrice(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setRegularPrice(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setWeeeAdjustment(value);
      break;
    case 9:
      var value = new proto.store.FormattedPrice;
      reader.readMessage(value,proto.store.FormattedPrice.deserializeBinaryFromReader);
      msg.setFormattedPrice(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.TaxAdjustment} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.TaxAdjustment.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getFinalPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      1,
      f
    );
  }
  f = message.getMaxPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      2,
      f
    );
  }
  f = message.getMaxRegularPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      3,
      f
    );
  }
  f = message.getMinimalRegularPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      4,
      f
    );
  }
  f = message.getSpecialPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      5,
      f
    );
  }
  f = message.getMinimalPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      6,
      f
    );
  }
  f = message.getRegularPrice();
  if (f !== 0.0) {
    writer.writeDouble(
      7,
      f
    );
  }
  f = message.getWeeeAdjustment();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getFormattedPrice();
  if (f != null) {
    writer.writeMessage(
      9,
      f,
      proto.store.FormattedPrice.serializeBinaryToWriter
    );
  }
};


/**
 * optional double final_price = 1;
 * @return {number}
 */
proto.store.TaxAdjustment.prototype.getFinalPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.TaxAdjustment} returns this
 */
proto.store.TaxAdjustment.prototype.setFinalPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 1, value);
};


/**
 * optional double max_price = 2;
 * @return {number}
 */
proto.store.TaxAdjustment.prototype.getMaxPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.TaxAdjustment} returns this
 */
proto.store.TaxAdjustment.prototype.setMaxPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 2, value);
};


/**
 * optional double max_regular_price = 3;
 * @return {number}
 */
proto.store.TaxAdjustment.prototype.getMaxRegularPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.TaxAdjustment} returns this
 */
proto.store.TaxAdjustment.prototype.setMaxRegularPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 3, value);
};


/**
 * optional double minimal_regular_price = 4;
 * @return {number}
 */
proto.store.TaxAdjustment.prototype.getMinimalRegularPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.TaxAdjustment} returns this
 */
proto.store.TaxAdjustment.prototype.setMinimalRegularPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 4, value);
};


/**
 * optional double special_price = 5;
 * @return {number}
 */
proto.store.TaxAdjustment.prototype.getSpecialPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.TaxAdjustment} returns this
 */
proto.store.TaxAdjustment.prototype.setSpecialPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 5, value);
};


/**
 * optional double minimal_price = 6;
 * @return {number}
 */
proto.store.TaxAdjustment.prototype.getMinimalPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.TaxAdjustment} returns this
 */
proto.store.TaxAdjustment.prototype.setMinimalPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 6, value);
};


/**
 * optional double regular_price = 7;
 * @return {number}
 */
proto.store.TaxAdjustment.prototype.getRegularPrice = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.store.TaxAdjustment} returns this
 */
proto.store.TaxAdjustment.prototype.setRegularPrice = function(value) {
  return jspb.Message.setProto3FloatField(this, 7, value);
};


/**
 * optional string weee_adjustment = 8;
 * @return {string}
 */
proto.store.TaxAdjustment.prototype.getWeeeAdjustment = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.TaxAdjustment} returns this
 */
proto.store.TaxAdjustment.prototype.setWeeeAdjustment = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional FormattedPrice formatted_price = 9;
 * @return {?proto.store.FormattedPrice}
 */
proto.store.TaxAdjustment.prototype.getFormattedPrice = function() {
  return /** @type{?proto.store.FormattedPrice} */ (
    jspb.Message.getWrapperField(this, proto.store.FormattedPrice, 9));
};


/**
 * @param {?proto.store.FormattedPrice|undefined} value
 * @return {!proto.store.TaxAdjustment} returns this
*/
proto.store.TaxAdjustment.prototype.setFormattedPrice = function(value) {
  return jspb.Message.setWrapperField(this, 9, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.TaxAdjustment} returns this
 */
proto.store.TaxAdjustment.prototype.clearFormattedPrice = function() {
  return this.setFormattedPrice(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.TaxAdjustment.prototype.hasFormattedPrice = function() {
  return jspb.Message.getField(this, 9) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.Attribute.repeatedFields_ = [3];



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


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

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Attribute} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Attribute.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getAttributeCode();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getValue();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getValuesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      3,
      f
    );
  }
};


/**
 * optional string attribute_code = 1;
 * @return {string}
 */
proto.store.Attribute.prototype.getAttributeCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Attribute} returns this
 */
proto.store.Attribute.prototype.setAttributeCode = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string value = 2;
 * @return {string}
 */
proto.store.Attribute.prototype.getValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Attribute} returns this
 */
proto.store.Attribute.prototype.setValue = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * repeated string values = 3;
 * @return {!Array<string>}
 */
proto.store.Attribute.prototype.getValuesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.store.Attribute} returns this
 */
proto.store.Attribute.prototype.setValuesList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.store.Attribute} returns this
 */
proto.store.Attribute.prototype.addValues = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.Attribute} returns this
 */
proto.store.Attribute.prototype.clearValuesList = function() {
  return this.setValuesList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.Criteria.repeatedFields_ = [1];



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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Criteria} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Criteria.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getConditionsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.store.Condition.serializeBinaryToWriter
    );
  }
};


/**
 * repeated Condition conditions = 1;
 * @return {!Array<!proto.store.Condition>}
 */
proto.store.Criteria.prototype.getConditionsList = function() {
  return /** @type{!Array<!proto.store.Condition>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.Condition, 1));
};


/**
 * @param {!Array<!proto.store.Condition>} value
 * @return {!proto.store.Criteria} returns this
*/
proto.store.Criteria.prototype.setConditionsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.store.Condition=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.Condition}
 */
proto.store.Criteria.prototype.addConditions = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.store.Condition, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.Criteria} returns this
 */
proto.store.Criteria.prototype.clearConditionsList = function() {
  return this.setConditionsList([]);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.Condition} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Condition.toObject = function(includeInstance, msg) {
  var f, obj = {
    columnname: jspb.Message.getFieldWithDefault(msg, 1, ""),
    value: jspb.Message.getFieldWithDefault(msg, 2, ""),
    operator: jspb.Message.getFieldWithDefault(msg, 3, 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.store.Condition}
 */
proto.store.Condition.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.Condition;
  return proto.store.Condition.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.Condition} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.Condition}
 */
proto.store.Condition.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setColumnname(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setValue(value);
      break;
    case 3:
      var value = /** @type {!proto.store.Condition.Operator} */ (reader.readEnum());
      msg.setOperator(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Condition} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Condition.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getColumnname();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getValue();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getOperator();
  if (f !== 0.0) {
    writer.writeEnum(
      3,
      f
    );
  }
};


/**
 * @enum {number}
 */
proto.store.Condition.Operator = {
  EQUAL: 0,
  NOT_EQUAL: 1,
  LIKE: 2,
  NOT_LIKE: 3,
  GREATER: 4,
  GREATER_EQUAL: 5,
  LESS: 6,
  LESS_EQUAL: 7,
  BETWEEN: 8,
  NOT_NULL: 9,
  NULL: 10,
  IN: 11,
  NOT_IN: 12
};

/**
 * optional string columnName = 1;
 * @return {string}
 */
proto.store.Condition.prototype.getColumnname = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Condition} returns this
 */
proto.store.Condition.prototype.setColumnname = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string value = 2;
 * @return {string}
 */
proto.store.Condition.prototype.getValue = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Condition} returns this
 */
proto.store.Condition.prototype.setValue = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional Operator operator = 3;
 * @return {!proto.store.Condition.Operator}
 */
proto.store.Condition.prototype.getOperator = function() {
  return /** @type {!proto.store.Condition.Operator} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {!proto.store.Condition.Operator} value
 * @return {!proto.store.Condition} returns this
 */
proto.store.Condition.prototype.setOperator = function(value) {
  return jspb.Message.setProto3EnumField(this, 3, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.store.Customer.repeatedFields_ = [11];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.Customer} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Customer.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    businessPartnerGroupId: jspb.Message.getFieldWithDefault(msg, 2, 0),
    created: jspb.Message.getFieldWithDefault(msg, 3, ""),
    updated: jspb.Message.getFieldWithDefault(msg, 4, ""),
    organizationName: jspb.Message.getFieldWithDefault(msg, 5, ""),
    email: jspb.Message.getFieldWithDefault(msg, 6, ""),
    firstName: jspb.Message.getFieldWithDefault(msg, 7, ""),
    lastName: jspb.Message.getFieldWithDefault(msg, 8, ""),
    webStoreId: jspb.Message.getFieldWithDefault(msg, 9, 0),
    websiteId: jspb.Message.getFieldWithDefault(msg, 10, 0),
    addressesList: jspb.Message.toObjectList(msg.getAddressesList(),
    proto.store.Address.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.store.Customer}
 */
proto.store.Customer.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.store.Customer;
  return proto.store.Customer.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.Customer} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.Customer}
 */
proto.store.Customer.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setBusinessPartnerGroupId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setCreated(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdated(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setOrganizationName(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setEmail(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setFirstName(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setLastName(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setWebStoreId(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setWebsiteId(value);
      break;
    case 11:
      var value = new proto.store.Address;
      reader.readMessage(value,proto.store.Address.deserializeBinaryFromReader);
      msg.addAddresses(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Customer} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Customer.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getBusinessPartnerGroupId();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getCreated();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getUpdated();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getOrganizationName();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getEmail();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getFirstName();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getLastName();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getWebStoreId();
  if (f !== 0) {
    writer.writeInt32(
      9,
      f
    );
  }
  f = message.getWebsiteId();
  if (f !== 0) {
    writer.writeInt32(
      10,
      f
    );
  }
  f = message.getAddressesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      11,
      f,
      proto.store.Address.serializeBinaryToWriter
    );
  }
};


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.Customer.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional int32 business_partner_group_id = 2;
 * @return {number}
 */
proto.store.Customer.prototype.getBusinessPartnerGroupId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setBusinessPartnerGroupId = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string created = 3;
 * @return {string}
 */
proto.store.Customer.prototype.getCreated = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setCreated = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string updated = 4;
 * @return {string}
 */
proto.store.Customer.prototype.getUpdated = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setUpdated = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string organization_name = 5;
 * @return {string}
 */
proto.store.Customer.prototype.getOrganizationName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setOrganizationName = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string email = 6;
 * @return {string}
 */
proto.store.Customer.prototype.getEmail = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setEmail = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string first_name = 7;
 * @return {string}
 */
proto.store.Customer.prototype.getFirstName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setFirstName = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string last_name = 8;
 * @return {string}
 */
proto.store.Customer.prototype.getLastName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setLastName = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional int32 web_store_id = 9;
 * @return {number}
 */
proto.store.Customer.prototype.getWebStoreId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setWebStoreId = function(value) {
  return jspb.Message.setProto3IntField(this, 9, value);
};


/**
 * optional int32 website_id = 10;
 * @return {number}
 */
proto.store.Customer.prototype.getWebsiteId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.setWebsiteId = function(value) {
  return jspb.Message.setProto3IntField(this, 10, value);
};


/**
 * repeated Address addresses = 11;
 * @return {!Array<!proto.store.Address>}
 */
proto.store.Customer.prototype.getAddressesList = function() {
  return /** @type{!Array<!proto.store.Address>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.store.Address, 11));
};


/**
 * @param {!Array<!proto.store.Address>} value
 * @return {!proto.store.Customer} returns this
*/
proto.store.Customer.prototype.setAddressesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 11, value);
};


/**
 * @param {!proto.store.Address=} opt_value
 * @param {number=} opt_index
 * @return {!proto.store.Address}
 */
proto.store.Customer.prototype.addAddresses = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.store.Address, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.store.Customer} returns this
 */
proto.store.Customer.prototype.clearAddressesList = function() {
  return this.setAddressesList([]);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.Address} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Address.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    firstName: jspb.Message.getFieldWithDefault(msg, 2, ""),
    lastName: jspb.Message.getFieldWithDefault(msg, 3, ""),
    region: (f = msg.getRegion()) && proto.store.Region.toObject(includeInstance, f),
    city: (f = msg.getCity()) && proto.store.City.toObject(includeInstance, f),
    address1: jspb.Message.getFieldWithDefault(msg, 6, ""),
    address2: jspb.Message.getFieldWithDefault(msg, 7, ""),
    address3: jspb.Message.getFieldWithDefault(msg, 8, ""),
    address4: jspb.Message.getFieldWithDefault(msg, 9, ""),
    phone: jspb.Message.getFieldWithDefault(msg, 10, ""),
    postalCode: jspb.Message.getFieldWithDefault(msg, 11, ""),
    countryCode: jspb.Message.getFieldWithDefault(msg, 12, ""),
    isDefaultShipping: jspb.Message.getBooleanFieldWithDefault(msg, 13, false),
    isDefaultBilling: jspb.Message.getBooleanFieldWithDefault(msg, 14, false)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.store.Address} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.store.Address}
 */
proto.store.Address.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setFirstName(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setLastName(value);
      break;
    case 4:
      var value = new proto.store.Region;
      reader.readMessage(value,proto.store.Region.deserializeBinaryFromReader);
      msg.setRegion(value);
      break;
    case 5:
      var value = new proto.store.City;
      reader.readMessage(value,proto.store.City.deserializeBinaryFromReader);
      msg.setCity(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setAddress1(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setAddress2(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setAddress3(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setAddress4(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setPhone(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setPostalCode(value);
      break;
    case 12:
      var value = /** @type {string} */ (reader.readString());
      msg.setCountryCode(value);
      break;
    case 13:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsDefaultShipping(value);
      break;
    case 14:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsDefaultBilling(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.Address} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.Address.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getFirstName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getLastName();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getRegion();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.store.Region.serializeBinaryToWriter
    );
  }
  f = message.getCity();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      proto.store.City.serializeBinaryToWriter
    );
  }
  f = message.getAddress1();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getAddress2();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getAddress3();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getAddress4();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getPhone();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
  f = message.getPostalCode();
  if (f.length > 0) {
    writer.writeString(
      11,
      f
    );
  }
  f = message.getCountryCode();
  if (f.length > 0) {
    writer.writeString(
      12,
      f
    );
  }
  f = message.getIsDefaultShipping();
  if (f) {
    writer.writeBool(
      13,
      f
    );
  }
  f = message.getIsDefaultBilling();
  if (f) {
    writer.writeBool(
      14,
      f
    );
  }
};


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.Address.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string first_name = 2;
 * @return {string}
 */
proto.store.Address.prototype.getFirstName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setFirstName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string last_name = 3;
 * @return {string}
 */
proto.store.Address.prototype.getLastName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setLastName = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional Region region = 4;
 * @return {?proto.store.Region}
 */
proto.store.Address.prototype.getRegion = function() {
  return /** @type{?proto.store.Region} */ (
    jspb.Message.getWrapperField(this, proto.store.Region, 4));
};


/**
 * @param {?proto.store.Region|undefined} value
 * @return {!proto.store.Address} returns this
*/
proto.store.Address.prototype.setRegion = function(value) {
  return jspb.Message.setWrapperField(this, 4, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.clearRegion = function() {
  return this.setRegion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.Address.prototype.hasRegion = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional City city = 5;
 * @return {?proto.store.City}
 */
proto.store.Address.prototype.getCity = function() {
  return /** @type{?proto.store.City} */ (
    jspb.Message.getWrapperField(this, proto.store.City, 5));
};


/**
 * @param {?proto.store.City|undefined} value
 * @return {!proto.store.Address} returns this
*/
proto.store.Address.prototype.setCity = function(value) {
  return jspb.Message.setWrapperField(this, 5, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.clearCity = function() {
  return this.setCity(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.store.Address.prototype.hasCity = function() {
  return jspb.Message.getField(this, 5) != null;
};


/**
 * optional string address1 = 6;
 * @return {string}
 */
proto.store.Address.prototype.getAddress1 = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setAddress1 = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string address2 = 7;
 * @return {string}
 */
proto.store.Address.prototype.getAddress2 = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setAddress2 = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string address3 = 8;
 * @return {string}
 */
proto.store.Address.prototype.getAddress3 = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setAddress3 = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string address4 = 9;
 * @return {string}
 */
proto.store.Address.prototype.getAddress4 = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setAddress4 = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};


/**
 * optional string phone = 10;
 * @return {string}
 */
proto.store.Address.prototype.getPhone = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setPhone = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};


/**
 * optional string postal_code = 11;
 * @return {string}
 */
proto.store.Address.prototype.getPostalCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setPostalCode = function(value) {
  return jspb.Message.setProto3StringField(this, 11, value);
};


/**
 * optional string country_code = 12;
 * @return {string}
 */
proto.store.Address.prototype.getCountryCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setCountryCode = function(value) {
  return jspb.Message.setProto3StringField(this, 12, value);
};


/**
 * optional bool is_default_shipping = 13;
 * @return {boolean}
 */
proto.store.Address.prototype.getIsDefaultShipping = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 13, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setIsDefaultShipping = function(value) {
  return jspb.Message.setProto3BooleanField(this, 13, value);
};


/**
 * optional bool is_default_billing = 14;
 * @return {boolean}
 */
proto.store.Address.prototype.getIsDefaultBilling = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false));
};


/**
 * @param {boolean} value
 * @return {!proto.store.Address} returns this
 */
proto.store.Address.prototype.setIsDefaultBilling = function(value) {
  return jspb.Message.setProto3BooleanField(this, 14, value);
};





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


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

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


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


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


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


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


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.City.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.City} returns this
 */
proto.store.City.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string name = 2;
 * @return {string}
 */
proto.store.City.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.City} returns this
 */
proto.store.City.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};





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


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

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


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


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


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


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


/**
 * optional int32 id = 1;
 * @return {number}
 */
proto.store.Region.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.store.Region} returns this
 */
proto.store.Region.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional string name = 2;
 * @return {string}
 */
proto.store.Region.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.Region} returns this
 */
proto.store.Region.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ResetPasswordRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ResetPasswordRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    userName: jspb.Message.getFieldWithDefault(msg, 2, ""),
    email: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ResetPasswordRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ResetPasswordRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getUserName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getEmail();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.ResetPasswordRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.ResetPasswordRequest} returns this
*/
proto.store.ResetPasswordRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ResetPasswordRequest} returns this
 */
proto.store.ResetPasswordRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional string user_name = 2;
 * @return {string}
 */
proto.store.ResetPasswordRequest.prototype.getUserName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ResetPasswordRequest} returns this
 */
proto.store.ResetPasswordRequest.prototype.setUserName = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string email = 3;
 * @return {string}
 */
proto.store.ResetPasswordRequest.prototype.getEmail = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ResetPasswordRequest} returns this
 */
proto.store.ResetPasswordRequest.prototype.setEmail = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ResetPasswordResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ResetPasswordResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getResponseType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * @enum {number}
 */
proto.store.ResetPasswordResponse.ResponseType = {
  OK: 0,
  USER_NOT_FOUND: 1,
  TOKEN_NOT_FOUND: 2,
  ERROR: 3
};

/**
 * optional ResponseType response_type = 1;
 * @return {!proto.store.ResetPasswordResponse.ResponseType}
 */
proto.store.ResetPasswordResponse.prototype.getResponseType = function() {
  return /** @type {!proto.store.ResetPasswordResponse.ResponseType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {!proto.store.ResetPasswordResponse.ResponseType} value
 * @return {!proto.store.ResetPasswordResponse} returns this
 */
proto.store.ResetPasswordResponse.prototype.setResponseType = function(value) {
  return jspb.Message.setProto3EnumField(this, 1, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.store.ChangePasswordRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ChangePasswordRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    clientRequest: (f = msg.getClientRequest()) && proto_client_pb.ClientRequest.toObject(includeInstance, f),
    currentPassword: jspb.Message.getFieldWithDefault(msg, 2, ""),
    newPassword: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ChangePasswordRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ChangePasswordRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClientRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto_client_pb.ClientRequest.serializeBinaryToWriter
    );
  }
  f = message.getCurrentPassword();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getNewPassword();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional data.ClientRequest client_request = 1;
 * @return {?proto.data.ClientRequest}
 */
proto.store.ChangePasswordRequest.prototype.getClientRequest = function() {
  return /** @type{?proto.data.ClientRequest} */ (
    jspb.Message.getWrapperField(this, proto_client_pb.ClientRequest, 1));
};


/**
 * @param {?proto.data.ClientRequest|undefined} value
 * @return {!proto.store.ChangePasswordRequest} returns this
*/
proto.store.ChangePasswordRequest.prototype.setClientRequest = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.store.ChangePasswordRequest} returns this
 */
proto.store.ChangePasswordRequest.prototype.clearClientRequest = function() {
  return this.setClientRequest(undefined);
};


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


/**
 * optional string current_password = 2;
 * @return {string}
 */
proto.store.ChangePasswordRequest.prototype.getCurrentPassword = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ChangePasswordRequest} returns this
 */
proto.store.ChangePasswordRequest.prototype.setCurrentPassword = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string new_password = 3;
 * @return {string}
 */
proto.store.ChangePasswordRequest.prototype.getNewPassword = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.store.ChangePasswordRequest} returns this
 */
proto.store.ChangePasswordRequest.prototype.setNewPassword = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};





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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.store.ChangePasswordResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.store.ChangePasswordResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getResponseType();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
};


/**
 * @enum {number}
 */
proto.store.ChangePasswordResponse.ResponseType = {
  OK: 0,
  USER_NOT_FOUND: 1,
  TOKEN_NOT_FOUND: 2,
  ERROR: 3
};

/**
 * optional ResponseType response_type = 1;
 * @return {!proto.store.ChangePasswordResponse.ResponseType}
 */
proto.store.ChangePasswordResponse.prototype.getResponseType = function() {
  return /** @type {!proto.store.ChangePasswordResponse.ResponseType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {!proto.store.ChangePasswordResponse.ResponseType} value
 * @return {!proto.store.ChangePasswordResponse} returns this
 */
proto.store.ChangePasswordResponse.prototype.setResponseType = function(value) {
  return jspb.Message.setProto3EnumField(this, 1, value);
};


goog.object.extend(exports, proto.store);