// source: sync.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() {
  if (this) { return this; }
  if (typeof window !== 'undefined') { return window; }
  if (typeof global !== 'undefined') { return global; }
  if (typeof self !== 'undefined') { return self; }
  return Function('return this')();
}.call(null));

goog.exportSymbol('proto.sync.ItemConflictRepresentation', null, global);
goog.exportSymbol('proto.sync.ItemHash', null, global);
goog.exportSymbol('proto.sync.ItemHashRepresentation', null, global);
goog.exportSymbol('proto.sync.ItemRepresentation', null, global);
goog.exportSymbol('proto.sync.MessageRepresentation', null, global);
goog.exportSymbol('proto.sync.NotificationRepresentation', null, global);
goog.exportSymbol('proto.sync.SavedItemRepresentation', null, global);
goog.exportSymbol('proto.sync.SharedVaultInviteRepresentation', null, global);
goog.exportSymbol('proto.sync.SharedVaultRepresentation', null, global);
goog.exportSymbol('proto.sync.SyncRequest', null, global);
goog.exportSymbol('proto.sync.SyncResponse', 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.sync.ItemHashRepresentation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.sync.ItemHashRepresentation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.ItemHashRepresentation.displayName = 'proto.sync.ItemHashRepresentation';
}
/**
 * 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.sync.ItemConflictRepresentation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.sync.ItemConflictRepresentation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.ItemConflictRepresentation.displayName = 'proto.sync.ItemConflictRepresentation';
}
/**
 * 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.sync.ItemRepresentation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.sync.ItemRepresentation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.ItemRepresentation.displayName = 'proto.sync.ItemRepresentation';
}
/**
 * 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.sync.SavedItemRepresentation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.sync.SavedItemRepresentation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.SavedItemRepresentation.displayName = 'proto.sync.SavedItemRepresentation';
}
/**
 * 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.sync.MessageRepresentation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.sync.MessageRepresentation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.MessageRepresentation.displayName = 'proto.sync.MessageRepresentation';
}
/**
 * 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.sync.SharedVaultRepresentation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.sync.SharedVaultRepresentation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.SharedVaultRepresentation.displayName = 'proto.sync.SharedVaultRepresentation';
}
/**
 * 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.sync.SharedVaultInviteRepresentation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.sync.SharedVaultInviteRepresentation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.SharedVaultInviteRepresentation.displayName = 'proto.sync.SharedVaultInviteRepresentation';
}
/**
 * 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.sync.NotificationRepresentation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.sync.NotificationRepresentation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.NotificationRepresentation.displayName = 'proto.sync.NotificationRepresentation';
}
/**
 * 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.sync.ItemHash = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.sync.ItemHash, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.ItemHash.displayName = 'proto.sync.ItemHash';
}
/**
 * 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.sync.SyncResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.sync.SyncResponse.repeatedFields_, null);
};
goog.inherits(proto.sync.SyncResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.SyncResponse.displayName = 'proto.sync.SyncResponse';
}
/**
 * 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.sync.SyncRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.sync.SyncRequest.repeatedFields_, null);
};
goog.inherits(proto.sync.SyncRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.sync.SyncRequest.displayName = 'proto.sync.SyncRequest';
}



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.sync.ItemHashRepresentation.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.ItemHashRepresentation.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.sync.ItemHashRepresentation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.ItemHashRepresentation.toObject = function(includeInstance, msg) {
  var f, obj = {
    uuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
    userUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
    content: jspb.Message.getFieldWithDefault(msg, 3, ""),
    contentType: jspb.Message.getFieldWithDefault(msg, 4, ""),
    deleted: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
    duplicateOf: jspb.Message.getFieldWithDefault(msg, 6, ""),
    authHash: jspb.Message.getFieldWithDefault(msg, 7, ""),
    encItemKey: jspb.Message.getFieldWithDefault(msg, 8, ""),
    itemsKeyId: jspb.Message.getFieldWithDefault(msg, 9, ""),
    keySystemIdentifier: jspb.Message.getFieldWithDefault(msg, 10, ""),
    sharedVaultUuid: jspb.Message.getFieldWithDefault(msg, 11, ""),
    createdAt: jspb.Message.getFieldWithDefault(msg, 12, ""),
    createdAtTimestamp: jspb.Message.getFieldWithDefault(msg, 13, 0),
    updatedAt: jspb.Message.getFieldWithDefault(msg, 14, ""),
    updatedAtTimestamp: jspb.Message.getFieldWithDefault(msg, 15, 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.sync.ItemHashRepresentation}
 */
proto.sync.ItemHashRepresentation.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.sync.ItemHashRepresentation;
  return proto.sync.ItemHashRepresentation.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.ItemHashRepresentation} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.ItemHashRepresentation}
 */
proto.sync.ItemHashRepresentation.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.setUuid(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserUuid(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setContent(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setContentType(value);
      break;
    case 5:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setDeleted(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setDuplicateOf(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setAuthHash(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setEncItemKey(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setItemsKeyId(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setKeySystemIdentifier(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setSharedVaultUuid(value);
      break;
    case 12:
      var value = /** @type {string} */ (reader.readString());
      msg.setCreatedAt(value);
      break;
    case 13:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setCreatedAtTimestamp(value);
      break;
    case 14:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdatedAt(value);
      break;
    case 15:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setUpdatedAtTimestamp(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.ItemHashRepresentation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.ItemHashRepresentation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUuid();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getUserUuid();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 3));
  if (f != null) {
    writer.writeString(
      3,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 4));
  if (f != null) {
    writer.writeString(
      4,
      f
    );
  }
  f = /** @type {boolean} */ (jspb.Message.getField(message, 5));
  if (f != null) {
    writer.writeBool(
      5,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 6));
  if (f != null) {
    writer.writeString(
      6,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 7));
  if (f != null) {
    writer.writeString(
      7,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 8));
  if (f != null) {
    writer.writeString(
      8,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 9));
  if (f != null) {
    writer.writeString(
      9,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 10));
  if (f != null) {
    writer.writeString(
      10,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 11));
  if (f != null) {
    writer.writeString(
      11,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 12));
  if (f != null) {
    writer.writeString(
      12,
      f
    );
  }
  f = /** @type {number} */ (jspb.Message.getField(message, 13));
  if (f != null) {
    writer.writeUint64(
      13,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 14));
  if (f != null) {
    writer.writeString(
      14,
      f
    );
  }
  f = /** @type {number} */ (jspb.Message.getField(message, 15));
  if (f != null) {
    writer.writeUint64(
      15,
      f
    );
  }
};


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


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


/**
 * optional string user_uuid = 2;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getUserUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


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


/**
 * optional string content = 3;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getContent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setContent = function(value) {
  return jspb.Message.setField(this, 3, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearContent = function() {
  return jspb.Message.setField(this, 3, undefined);
};


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


/**
 * optional string content_type = 4;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getContentType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setContentType = function(value) {
  return jspb.Message.setField(this, 4, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearContentType = function() {
  return jspb.Message.setField(this, 4, undefined);
};


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


/**
 * optional bool deleted = 5;
 * @return {boolean}
 */
proto.sync.ItemHashRepresentation.prototype.getDeleted = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
};


/**
 * @param {boolean} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setDeleted = function(value) {
  return jspb.Message.setField(this, 5, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearDeleted = function() {
  return jspb.Message.setField(this, 5, undefined);
};


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


/**
 * optional string duplicate_of = 6;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getDuplicateOf = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setDuplicateOf = function(value) {
  return jspb.Message.setField(this, 6, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearDuplicateOf = function() {
  return jspb.Message.setField(this, 6, undefined);
};


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


/**
 * optional string auth_hash = 7;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getAuthHash = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setAuthHash = function(value) {
  return jspb.Message.setField(this, 7, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearAuthHash = function() {
  return jspb.Message.setField(this, 7, undefined);
};


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


/**
 * optional string enc_item_key = 8;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getEncItemKey = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setEncItemKey = function(value) {
  return jspb.Message.setField(this, 8, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearEncItemKey = function() {
  return jspb.Message.setField(this, 8, undefined);
};


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


/**
 * optional string items_key_id = 9;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getItemsKeyId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setItemsKeyId = function(value) {
  return jspb.Message.setField(this, 9, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearItemsKeyId = function() {
  return jspb.Message.setField(this, 9, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHashRepresentation.prototype.hasItemsKeyId = function() {
  return jspb.Message.getField(this, 9) != null;
};


/**
 * optional string key_system_identifier = 10;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getKeySystemIdentifier = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setKeySystemIdentifier = function(value) {
  return jspb.Message.setField(this, 10, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearKeySystemIdentifier = function() {
  return jspb.Message.setField(this, 10, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHashRepresentation.prototype.hasKeySystemIdentifier = function() {
  return jspb.Message.getField(this, 10) != null;
};


/**
 * optional string shared_vault_uuid = 11;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getSharedVaultUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setSharedVaultUuid = function(value) {
  return jspb.Message.setField(this, 11, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearSharedVaultUuid = function() {
  return jspb.Message.setField(this, 11, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHashRepresentation.prototype.hasSharedVaultUuid = function() {
  return jspb.Message.getField(this, 11) != null;
};


/**
 * optional string created_at = 12;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getCreatedAt = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setCreatedAt = function(value) {
  return jspb.Message.setField(this, 12, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearCreatedAt = function() {
  return jspb.Message.setField(this, 12, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHashRepresentation.prototype.hasCreatedAt = function() {
  return jspb.Message.getField(this, 12) != null;
};


/**
 * optional uint64 created_at_timestamp = 13;
 * @return {number}
 */
proto.sync.ItemHashRepresentation.prototype.getCreatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 13, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setCreatedAtTimestamp = function(value) {
  return jspb.Message.setField(this, 13, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearCreatedAtTimestamp = function() {
  return jspb.Message.setField(this, 13, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHashRepresentation.prototype.hasCreatedAtTimestamp = function() {
  return jspb.Message.getField(this, 13) != null;
};


/**
 * optional string updated_at = 14;
 * @return {string}
 */
proto.sync.ItemHashRepresentation.prototype.getUpdatedAt = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setUpdatedAt = function(value) {
  return jspb.Message.setField(this, 14, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearUpdatedAt = function() {
  return jspb.Message.setField(this, 14, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHashRepresentation.prototype.hasUpdatedAt = function() {
  return jspb.Message.getField(this, 14) != null;
};


/**
 * optional uint64 updated_at_timestamp = 15;
 * @return {number}
 */
proto.sync.ItemHashRepresentation.prototype.getUpdatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.setUpdatedAtTimestamp = function(value) {
  return jspb.Message.setField(this, 15, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHashRepresentation} returns this
 */
proto.sync.ItemHashRepresentation.prototype.clearUpdatedAtTimestamp = function() {
  return jspb.Message.setField(this, 15, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHashRepresentation.prototype.hasUpdatedAtTimestamp = function() {
  return jspb.Message.getField(this, 15) != 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.sync.ItemConflictRepresentation.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.ItemConflictRepresentation.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.sync.ItemConflictRepresentation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.ItemConflictRepresentation.toObject = function(includeInstance, msg) {
  var f, obj = {
    serverItem: (f = msg.getServerItem()) && proto.sync.ItemRepresentation.toObject(includeInstance, f),
    unsavedItem: (f = msg.getUnsavedItem()) && proto.sync.ItemHashRepresentation.toObject(includeInstance, f),
    type: 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.sync.ItemConflictRepresentation}
 */
proto.sync.ItemConflictRepresentation.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.sync.ItemConflictRepresentation;
  return proto.sync.ItemConflictRepresentation.deserializeBinaryFromReader(msg, reader);
};


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.ItemConflictRepresentation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.ItemConflictRepresentation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getServerItem();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.sync.ItemRepresentation.serializeBinaryToWriter
    );
  }
  f = message.getUnsavedItem();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.sync.ItemHashRepresentation.serializeBinaryToWriter
    );
  }
  f = message.getType();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional ItemRepresentation server_item = 1;
 * @return {?proto.sync.ItemRepresentation}
 */
proto.sync.ItemConflictRepresentation.prototype.getServerItem = function() {
  return /** @type{?proto.sync.ItemRepresentation} */ (
    jspb.Message.getWrapperField(this, proto.sync.ItemRepresentation, 1));
};


/**
 * @param {?proto.sync.ItemRepresentation|undefined} value
 * @return {!proto.sync.ItemConflictRepresentation} returns this
*/
proto.sync.ItemConflictRepresentation.prototype.setServerItem = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.sync.ItemConflictRepresentation} returns this
 */
proto.sync.ItemConflictRepresentation.prototype.clearServerItem = function() {
  return this.setServerItem(undefined);
};


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


/**
 * optional ItemHashRepresentation unsaved_item = 2;
 * @return {?proto.sync.ItemHashRepresentation}
 */
proto.sync.ItemConflictRepresentation.prototype.getUnsavedItem = function() {
  return /** @type{?proto.sync.ItemHashRepresentation} */ (
    jspb.Message.getWrapperField(this, proto.sync.ItemHashRepresentation, 2));
};


/**
 * @param {?proto.sync.ItemHashRepresentation|undefined} value
 * @return {!proto.sync.ItemConflictRepresentation} returns this
*/
proto.sync.ItemConflictRepresentation.prototype.setUnsavedItem = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.sync.ItemConflictRepresentation} returns this
 */
proto.sync.ItemConflictRepresentation.prototype.clearUnsavedItem = function() {
  return this.setUnsavedItem(undefined);
};


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


/**
 * optional string type = 3;
 * @return {string}
 */
proto.sync.ItemConflictRepresentation.prototype.getType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemConflictRepresentation} returns this
 */
proto.sync.ItemConflictRepresentation.prototype.setType = 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.sync.ItemRepresentation.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.ItemRepresentation.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.sync.ItemRepresentation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.ItemRepresentation.toObject = function(includeInstance, msg) {
  var f, obj = {
    uuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
    itemsKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""),
    duplicateOf: jspb.Message.getFieldWithDefault(msg, 3, ""),
    encItemKey: jspb.Message.getFieldWithDefault(msg, 4, ""),
    content: jspb.Message.getFieldWithDefault(msg, 5, ""),
    contentType: jspb.Message.getFieldWithDefault(msg, 6, ""),
    authHash: jspb.Message.getFieldWithDefault(msg, 7, ""),
    deleted: jspb.Message.getBooleanFieldWithDefault(msg, 8, false),
    createdAt: jspb.Message.getFieldWithDefault(msg, 9, ""),
    createdAtTimestamp: jspb.Message.getFieldWithDefault(msg, 10, 0),
    updatedAt: jspb.Message.getFieldWithDefault(msg, 11, ""),
    updatedAtTimestamp: jspb.Message.getFieldWithDefault(msg, 12, 0),
    updatedWithSession: jspb.Message.getFieldWithDefault(msg, 13, ""),
    keySystemIdentifier: jspb.Message.getFieldWithDefault(msg, 14, ""),
    sharedVaultUuid: jspb.Message.getFieldWithDefault(msg, 15, ""),
    userUuid: jspb.Message.getFieldWithDefault(msg, 16, ""),
    lastEditedByUuid: jspb.Message.getFieldWithDefault(msg, 17, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.ItemRepresentation} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.ItemRepresentation}
 */
proto.sync.ItemRepresentation.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.setUuid(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setItemsKeyId(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setDuplicateOf(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setEncItemKey(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setContent(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setContentType(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setAuthHash(value);
      break;
    case 8:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setDeleted(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setCreatedAt(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setCreatedAtTimestamp(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdatedAt(value);
      break;
    case 12:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setUpdatedAtTimestamp(value);
      break;
    case 13:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdatedWithSession(value);
      break;
    case 14:
      var value = /** @type {string} */ (reader.readString());
      msg.setKeySystemIdentifier(value);
      break;
    case 15:
      var value = /** @type {string} */ (reader.readString());
      msg.setSharedVaultUuid(value);
      break;
    case 16:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserUuid(value);
      break;
    case 17:
      var value = /** @type {string} */ (reader.readString());
      msg.setLastEditedByUuid(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.ItemRepresentation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.ItemRepresentation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUuid();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 2));
  if (f != null) {
    writer.writeString(
      2,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 3));
  if (f != null) {
    writer.writeString(
      3,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 4));
  if (f != null) {
    writer.writeString(
      4,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 5));
  if (f != null) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getContentType();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 7));
  if (f != null) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getDeleted();
  if (f) {
    writer.writeBool(
      8,
      f
    );
  }
  f = message.getCreatedAt();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getCreatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      10,
      f
    );
  }
  f = message.getUpdatedAt();
  if (f.length > 0) {
    writer.writeString(
      11,
      f
    );
  }
  f = message.getUpdatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      12,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 13));
  if (f != null) {
    writer.writeString(
      13,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 14));
  if (f != null) {
    writer.writeString(
      14,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 15));
  if (f != null) {
    writer.writeString(
      15,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 16));
  if (f != null) {
    writer.writeString(
      16,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 17));
  if (f != null) {
    writer.writeString(
      17,
      f
    );
  }
};


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


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


/**
 * optional string items_key_id = 2;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getItemsKeyId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setItemsKeyId = function(value) {
  return jspb.Message.setField(this, 2, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearItemsKeyId = function() {
  return jspb.Message.setField(this, 2, undefined);
};


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


/**
 * optional string duplicate_of = 3;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getDuplicateOf = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setDuplicateOf = function(value) {
  return jspb.Message.setField(this, 3, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearDuplicateOf = function() {
  return jspb.Message.setField(this, 3, undefined);
};


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


/**
 * optional string enc_item_key = 4;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getEncItemKey = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setEncItemKey = function(value) {
  return jspb.Message.setField(this, 4, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearEncItemKey = function() {
  return jspb.Message.setField(this, 4, undefined);
};


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


/**
 * optional string content = 5;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getContent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setContent = function(value) {
  return jspb.Message.setField(this, 5, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearContent = function() {
  return jspb.Message.setField(this, 5, undefined);
};


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


/**
 * optional string content_type = 6;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getContentType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


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


/**
 * optional string auth_hash = 7;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getAuthHash = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setAuthHash = function(value) {
  return jspb.Message.setField(this, 7, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearAuthHash = function() {
  return jspb.Message.setField(this, 7, undefined);
};


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


/**
 * optional bool deleted = 8;
 * @return {boolean}
 */
proto.sync.ItemRepresentation.prototype.getDeleted = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false));
};


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


/**
 * optional string created_at = 9;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getCreatedAt = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


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


/**
 * optional uint64 created_at_timestamp = 10;
 * @return {number}
 */
proto.sync.ItemRepresentation.prototype.getCreatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
};


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


/**
 * optional string updated_at = 11;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getUpdatedAt = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


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


/**
 * optional uint64 updated_at_timestamp = 12;
 * @return {number}
 */
proto.sync.ItemRepresentation.prototype.getUpdatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 12, 0));
};


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


/**
 * optional string updated_with_session = 13;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getUpdatedWithSession = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setUpdatedWithSession = function(value) {
  return jspb.Message.setField(this, 13, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearUpdatedWithSession = function() {
  return jspb.Message.setField(this, 13, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemRepresentation.prototype.hasUpdatedWithSession = function() {
  return jspb.Message.getField(this, 13) != null;
};


/**
 * optional string key_system_identifier = 14;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getKeySystemIdentifier = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setKeySystemIdentifier = function(value) {
  return jspb.Message.setField(this, 14, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearKeySystemIdentifier = function() {
  return jspb.Message.setField(this, 14, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemRepresentation.prototype.hasKeySystemIdentifier = function() {
  return jspb.Message.getField(this, 14) != null;
};


/**
 * optional string shared_vault_uuid = 15;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getSharedVaultUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setSharedVaultUuid = function(value) {
  return jspb.Message.setField(this, 15, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearSharedVaultUuid = function() {
  return jspb.Message.setField(this, 15, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemRepresentation.prototype.hasSharedVaultUuid = function() {
  return jspb.Message.getField(this, 15) != null;
};


/**
 * optional string user_uuid = 16;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getUserUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 16, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setUserUuid = function(value) {
  return jspb.Message.setField(this, 16, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearUserUuid = function() {
  return jspb.Message.setField(this, 16, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemRepresentation.prototype.hasUserUuid = function() {
  return jspb.Message.getField(this, 16) != null;
};


/**
 * optional string last_edited_by_uuid = 17;
 * @return {string}
 */
proto.sync.ItemRepresentation.prototype.getLastEditedByUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.setLastEditedByUuid = function(value) {
  return jspb.Message.setField(this, 17, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemRepresentation} returns this
 */
proto.sync.ItemRepresentation.prototype.clearLastEditedByUuid = function() {
  return jspb.Message.setField(this, 17, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemRepresentation.prototype.hasLastEditedByUuid = function() {
  return jspb.Message.getField(this, 17) != 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.sync.SavedItemRepresentation.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.SavedItemRepresentation.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.sync.SavedItemRepresentation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SavedItemRepresentation.toObject = function(includeInstance, msg) {
  var f, obj = {
    uuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
    duplicateOf: jspb.Message.getFieldWithDefault(msg, 2, ""),
    contentType: jspb.Message.getFieldWithDefault(msg, 3, ""),
    authHash: jspb.Message.getFieldWithDefault(msg, 4, ""),
    deleted: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
    createdAt: jspb.Message.getFieldWithDefault(msg, 6, ""),
    createdAtTimestamp: jspb.Message.getFieldWithDefault(msg, 7, 0),
    updatedAt: jspb.Message.getFieldWithDefault(msg, 8, ""),
    updatedAtTimestamp: jspb.Message.getFieldWithDefault(msg, 9, 0),
    keySystemIdentifier: jspb.Message.getFieldWithDefault(msg, 10, ""),
    sharedVaultUuid: jspb.Message.getFieldWithDefault(msg, 11, ""),
    userUuid: jspb.Message.getFieldWithDefault(msg, 12, ""),
    lastEditedByUuid: jspb.Message.getFieldWithDefault(msg, 13, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.SavedItemRepresentation} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.SavedItemRepresentation}
 */
proto.sync.SavedItemRepresentation.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.setUuid(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setDuplicateOf(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setContentType(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setAuthHash(value);
      break;
    case 5:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setDeleted(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setCreatedAt(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setCreatedAtTimestamp(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdatedAt(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setUpdatedAtTimestamp(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setKeySystemIdentifier(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setSharedVaultUuid(value);
      break;
    case 12:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserUuid(value);
      break;
    case 13:
      var value = /** @type {string} */ (reader.readString());
      msg.setLastEditedByUuid(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.SavedItemRepresentation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SavedItemRepresentation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUuid();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 2));
  if (f != null) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getContentType();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 4));
  if (f != null) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getDeleted();
  if (f) {
    writer.writeBool(
      5,
      f
    );
  }
  f = message.getCreatedAt();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getCreatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      7,
      f
    );
  }
  f = message.getUpdatedAt();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getUpdatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      9,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 10));
  if (f != null) {
    writer.writeString(
      10,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 11));
  if (f != null) {
    writer.writeString(
      11,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 12));
  if (f != null) {
    writer.writeString(
      12,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 13));
  if (f != null) {
    writer.writeString(
      13,
      f
    );
  }
};


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


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


/**
 * optional string duplicate_of = 2;
 * @return {string}
 */
proto.sync.SavedItemRepresentation.prototype.getDuplicateOf = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.setDuplicateOf = function(value) {
  return jspb.Message.setField(this, 2, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.clearDuplicateOf = function() {
  return jspb.Message.setField(this, 2, undefined);
};


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


/**
 * optional string content_type = 3;
 * @return {string}
 */
proto.sync.SavedItemRepresentation.prototype.getContentType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


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


/**
 * optional string auth_hash = 4;
 * @return {string}
 */
proto.sync.SavedItemRepresentation.prototype.getAuthHash = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.setAuthHash = function(value) {
  return jspb.Message.setField(this, 4, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.clearAuthHash = function() {
  return jspb.Message.setField(this, 4, undefined);
};


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


/**
 * optional bool deleted = 5;
 * @return {boolean}
 */
proto.sync.SavedItemRepresentation.prototype.getDeleted = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
};


/**
 * @param {boolean} value
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.setDeleted = function(value) {
  return jspb.Message.setProto3BooleanField(this, 5, value);
};


/**
 * optional string created_at = 6;
 * @return {string}
 */
proto.sync.SavedItemRepresentation.prototype.getCreatedAt = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


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


/**
 * optional uint64 created_at_timestamp = 7;
 * @return {number}
 */
proto.sync.SavedItemRepresentation.prototype.getCreatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.setCreatedAtTimestamp = function(value) {
  return jspb.Message.setProto3IntField(this, 7, value);
};


/**
 * optional string updated_at = 8;
 * @return {string}
 */
proto.sync.SavedItemRepresentation.prototype.getUpdatedAt = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


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


/**
 * optional uint64 updated_at_timestamp = 9;
 * @return {number}
 */
proto.sync.SavedItemRepresentation.prototype.getUpdatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.setUpdatedAtTimestamp = function(value) {
  return jspb.Message.setProto3IntField(this, 9, value);
};


/**
 * optional string key_system_identifier = 10;
 * @return {string}
 */
proto.sync.SavedItemRepresentation.prototype.getKeySystemIdentifier = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.setKeySystemIdentifier = function(value) {
  return jspb.Message.setField(this, 10, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.clearKeySystemIdentifier = function() {
  return jspb.Message.setField(this, 10, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.SavedItemRepresentation.prototype.hasKeySystemIdentifier = function() {
  return jspb.Message.getField(this, 10) != null;
};


/**
 * optional string shared_vault_uuid = 11;
 * @return {string}
 */
proto.sync.SavedItemRepresentation.prototype.getSharedVaultUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.setSharedVaultUuid = function(value) {
  return jspb.Message.setField(this, 11, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.clearSharedVaultUuid = function() {
  return jspb.Message.setField(this, 11, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.SavedItemRepresentation.prototype.hasSharedVaultUuid = function() {
  return jspb.Message.getField(this, 11) != null;
};


/**
 * optional string user_uuid = 12;
 * @return {string}
 */
proto.sync.SavedItemRepresentation.prototype.getUserUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.setUserUuid = function(value) {
  return jspb.Message.setField(this, 12, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.clearUserUuid = function() {
  return jspb.Message.setField(this, 12, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.SavedItemRepresentation.prototype.hasUserUuid = function() {
  return jspb.Message.getField(this, 12) != null;
};


/**
 * optional string last_edited_by_uuid = 13;
 * @return {string}
 */
proto.sync.SavedItemRepresentation.prototype.getLastEditedByUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.setLastEditedByUuid = function(value) {
  return jspb.Message.setField(this, 13, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SavedItemRepresentation} returns this
 */
proto.sync.SavedItemRepresentation.prototype.clearLastEditedByUuid = function() {
  return jspb.Message.setField(this, 13, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.SavedItemRepresentation.prototype.hasLastEditedByUuid = function() {
  return jspb.Message.getField(this, 13) != 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.sync.MessageRepresentation.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.MessageRepresentation.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.sync.MessageRepresentation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.MessageRepresentation.toObject = function(includeInstance, msg) {
  var f, obj = {
    uuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
    recipientUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
    senderUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
    encryptedMessage: jspb.Message.getFieldWithDefault(msg, 4, ""),
    replaceabilityIdentifier: jspb.Message.getFieldWithDefault(msg, 5, ""),
    createdAtTimestamp: jspb.Message.getFieldWithDefault(msg, 6, 0),
    updatedAtTimestamp: jspb.Message.getFieldWithDefault(msg, 7, 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.sync.MessageRepresentation}
 */
proto.sync.MessageRepresentation.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.sync.MessageRepresentation;
  return proto.sync.MessageRepresentation.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.MessageRepresentation} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.MessageRepresentation}
 */
proto.sync.MessageRepresentation.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.setUuid(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setRecipientUuid(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setSenderUuid(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setEncryptedMessage(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setReplaceabilityIdentifier(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setCreatedAtTimestamp(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setUpdatedAtTimestamp(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.MessageRepresentation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.MessageRepresentation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUuid();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getRecipientUuid();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getSenderUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getEncryptedMessage();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 5));
  if (f != null) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getCreatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      6,
      f
    );
  }
  f = message.getUpdatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      7,
      f
    );
  }
};


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


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


/**
 * optional string recipient_uuid = 2;
 * @return {string}
 */
proto.sync.MessageRepresentation.prototype.getRecipientUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


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


/**
 * optional string sender_uuid = 3;
 * @return {string}
 */
proto.sync.MessageRepresentation.prototype.getSenderUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


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


/**
 * optional string encrypted_message = 4;
 * @return {string}
 */
proto.sync.MessageRepresentation.prototype.getEncryptedMessage = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


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


/**
 * optional string replaceability_identifier = 5;
 * @return {string}
 */
proto.sync.MessageRepresentation.prototype.getReplaceabilityIdentifier = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.MessageRepresentation} returns this
 */
proto.sync.MessageRepresentation.prototype.setReplaceabilityIdentifier = function(value) {
  return jspb.Message.setField(this, 5, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.MessageRepresentation} returns this
 */
proto.sync.MessageRepresentation.prototype.clearReplaceabilityIdentifier = function() {
  return jspb.Message.setField(this, 5, undefined);
};


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


/**
 * optional uint64 created_at_timestamp = 6;
 * @return {number}
 */
proto.sync.MessageRepresentation.prototype.getCreatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


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


/**
 * optional uint64 updated_at_timestamp = 7;
 * @return {number}
 */
proto.sync.MessageRepresentation.prototype.getUpdatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.MessageRepresentation} returns this
 */
proto.sync.MessageRepresentation.prototype.setUpdatedAtTimestamp = function(value) {
  return jspb.Message.setProto3IntField(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.sync.SharedVaultRepresentation.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.SharedVaultRepresentation.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.sync.SharedVaultRepresentation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SharedVaultRepresentation.toObject = function(includeInstance, msg) {
  var f, obj = {
    uuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
    userUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
    fileUploadBytesUsed: jspb.Message.getFieldWithDefault(msg, 3, 0),
    createdAtTimestamp: jspb.Message.getFieldWithDefault(msg, 4, 0),
    updatedAtTimestamp: 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.sync.SharedVaultRepresentation}
 */
proto.sync.SharedVaultRepresentation.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.sync.SharedVaultRepresentation;
  return proto.sync.SharedVaultRepresentation.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.SharedVaultRepresentation} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.SharedVaultRepresentation}
 */
proto.sync.SharedVaultRepresentation.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.setUuid(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserUuid(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setFileUploadBytesUsed(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setCreatedAtTimestamp(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setUpdatedAtTimestamp(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.SharedVaultRepresentation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SharedVaultRepresentation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUuid();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getUserUuid();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getFileUploadBytesUsed();
  if (f !== 0) {
    writer.writeUint32(
      3,
      f
    );
  }
  f = message.getCreatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      4,
      f
    );
  }
  f = message.getUpdatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      5,
      f
    );
  }
};


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


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


/**
 * optional string user_uuid = 2;
 * @return {string}
 */
proto.sync.SharedVaultRepresentation.prototype.getUserUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


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


/**
 * optional uint32 file_upload_bytes_used = 3;
 * @return {number}
 */
proto.sync.SharedVaultRepresentation.prototype.getFileUploadBytesUsed = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


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


/**
 * optional uint64 created_at_timestamp = 4;
 * @return {number}
 */
proto.sync.SharedVaultRepresentation.prototype.getCreatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


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


/**
 * optional uint64 updated_at_timestamp = 5;
 * @return {number}
 */
proto.sync.SharedVaultRepresentation.prototype.getUpdatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.SharedVaultRepresentation} returns this
 */
proto.sync.SharedVaultRepresentation.prototype.setUpdatedAtTimestamp = 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.sync.SharedVaultInviteRepresentation.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.SharedVaultInviteRepresentation.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.sync.SharedVaultInviteRepresentation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SharedVaultInviteRepresentation.toObject = function(includeInstance, msg) {
  var f, obj = {
    uuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
    sharedVaultUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
    userUuid: jspb.Message.getFieldWithDefault(msg, 3, ""),
    senderUuid: jspb.Message.getFieldWithDefault(msg, 4, ""),
    encryptedMessage: jspb.Message.getFieldWithDefault(msg, 5, ""),
    permission: jspb.Message.getFieldWithDefault(msg, 6, ""),
    createdAtTimestamp: jspb.Message.getFieldWithDefault(msg, 7, 0),
    updatedAtTimestamp: jspb.Message.getFieldWithDefault(msg, 8, 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.sync.SharedVaultInviteRepresentation}
 */
proto.sync.SharedVaultInviteRepresentation.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.sync.SharedVaultInviteRepresentation;
  return proto.sync.SharedVaultInviteRepresentation.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.SharedVaultInviteRepresentation} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.SharedVaultInviteRepresentation}
 */
proto.sync.SharedVaultInviteRepresentation.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.setUuid(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setSharedVaultUuid(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserUuid(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setSenderUuid(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setEncryptedMessage(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setPermission(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setCreatedAtTimestamp(value);
      break;
    case 8:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setUpdatedAtTimestamp(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.SharedVaultInviteRepresentation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SharedVaultInviteRepresentation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUuid();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getSharedVaultUuid();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getUserUuid();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getSenderUuid();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getEncryptedMessage();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getPermission();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getCreatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      7,
      f
    );
  }
  f = message.getUpdatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      8,
      f
    );
  }
};


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


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


/**
 * optional string shared_vault_uuid = 2;
 * @return {string}
 */
proto.sync.SharedVaultInviteRepresentation.prototype.getSharedVaultUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


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


/**
 * optional string user_uuid = 3;
 * @return {string}
 */
proto.sync.SharedVaultInviteRepresentation.prototype.getUserUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


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


/**
 * optional string sender_uuid = 4;
 * @return {string}
 */
proto.sync.SharedVaultInviteRepresentation.prototype.getSenderUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


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


/**
 * optional string encrypted_message = 5;
 * @return {string}
 */
proto.sync.SharedVaultInviteRepresentation.prototype.getEncryptedMessage = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


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


/**
 * optional string permission = 6;
 * @return {string}
 */
proto.sync.SharedVaultInviteRepresentation.prototype.getPermission = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


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


/**
 * optional uint64 created_at_timestamp = 7;
 * @return {number}
 */
proto.sync.SharedVaultInviteRepresentation.prototype.getCreatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.SharedVaultInviteRepresentation} returns this
 */
proto.sync.SharedVaultInviteRepresentation.prototype.setCreatedAtTimestamp = function(value) {
  return jspb.Message.setProto3IntField(this, 7, value);
};


/**
 * optional uint64 updated_at_timestamp = 8;
 * @return {number}
 */
proto.sync.SharedVaultInviteRepresentation.prototype.getUpdatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.SharedVaultInviteRepresentation} returns this
 */
proto.sync.SharedVaultInviteRepresentation.prototype.setUpdatedAtTimestamp = function(value) {
  return jspb.Message.setProto3IntField(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.sync.NotificationRepresentation.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.NotificationRepresentation.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.sync.NotificationRepresentation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.NotificationRepresentation.toObject = function(includeInstance, msg) {
  var f, obj = {
    uuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
    userUuid: jspb.Message.getFieldWithDefault(msg, 2, ""),
    type: jspb.Message.getFieldWithDefault(msg, 3, ""),
    payload: jspb.Message.getFieldWithDefault(msg, 4, ""),
    createdAtTimestamp: jspb.Message.getFieldWithDefault(msg, 5, 0),
    updatedAtTimestamp: 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.sync.NotificationRepresentation}
 */
proto.sync.NotificationRepresentation.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.sync.NotificationRepresentation;
  return proto.sync.NotificationRepresentation.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.NotificationRepresentation} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.NotificationRepresentation}
 */
proto.sync.NotificationRepresentation.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.setUuid(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setUserUuid(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setType(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setPayload(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setCreatedAtTimestamp(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setUpdatedAtTimestamp(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.NotificationRepresentation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.NotificationRepresentation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUuid();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getUserUuid();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getType();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getPayload();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getCreatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      5,
      f
    );
  }
  f = message.getUpdatedAtTimestamp();
  if (f !== 0) {
    writer.writeUint64(
      6,
      f
    );
  }
};


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


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


/**
 * optional string user_uuid = 2;
 * @return {string}
 */
proto.sync.NotificationRepresentation.prototype.getUserUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


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


/**
 * optional string type = 3;
 * @return {string}
 */
proto.sync.NotificationRepresentation.prototype.getType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


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


/**
 * optional string payload = 4;
 * @return {string}
 */
proto.sync.NotificationRepresentation.prototype.getPayload = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


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


/**
 * optional uint64 created_at_timestamp = 5;
 * @return {number}
 */
proto.sync.NotificationRepresentation.prototype.getCreatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


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


/**
 * optional uint64 updated_at_timestamp = 6;
 * @return {number}
 */
proto.sync.NotificationRepresentation.prototype.getUpdatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.NotificationRepresentation} returns this
 */
proto.sync.NotificationRepresentation.prototype.setUpdatedAtTimestamp = function(value) {
  return jspb.Message.setProto3IntField(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.sync.ItemHash.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.ItemHash.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.sync.ItemHash} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.ItemHash.toObject = function(includeInstance, msg) {
  var f, obj = {
    uuid: jspb.Message.getFieldWithDefault(msg, 1, ""),
    content: jspb.Message.getFieldWithDefault(msg, 2, ""),
    contentType: jspb.Message.getFieldWithDefault(msg, 3, ""),
    deleted: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
    duplicateOf: jspb.Message.getFieldWithDefault(msg, 5, ""),
    authHash: jspb.Message.getFieldWithDefault(msg, 6, ""),
    encItemKey: jspb.Message.getFieldWithDefault(msg, 7, ""),
    itemsKeyId: jspb.Message.getFieldWithDefault(msg, 8, ""),
    keySystemIdentifier: jspb.Message.getFieldWithDefault(msg, 9, ""),
    sharedVaultUuid: jspb.Message.getFieldWithDefault(msg, 10, ""),
    createdAt: jspb.Message.getFieldWithDefault(msg, 11, ""),
    createdAtTimestamp: jspb.Message.getFieldWithDefault(msg, 12, 0),
    updatedAt: jspb.Message.getFieldWithDefault(msg, 13, ""),
    updatedAtTimestamp: jspb.Message.getFieldWithDefault(msg, 14, 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.sync.ItemHash}
 */
proto.sync.ItemHash.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.sync.ItemHash;
  return proto.sync.ItemHash.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.ItemHash} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.ItemHash}
 */
proto.sync.ItemHash.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.setUuid(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setContent(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setContentType(value);
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setDeleted(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setDuplicateOf(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setAuthHash(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setEncItemKey(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setItemsKeyId(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setKeySystemIdentifier(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setSharedVaultUuid(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setCreatedAt(value);
      break;
    case 12:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setCreatedAtTimestamp(value);
      break;
    case 13:
      var value = /** @type {string} */ (reader.readString());
      msg.setUpdatedAt(value);
      break;
    case 14:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setUpdatedAtTimestamp(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.ItemHash} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.ItemHash.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getUuid();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 2));
  if (f != null) {
    writer.writeString(
      2,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 3));
  if (f != null) {
    writer.writeString(
      3,
      f
    );
  }
  f = /** @type {boolean} */ (jspb.Message.getField(message, 4));
  if (f != null) {
    writer.writeBool(
      4,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 5));
  if (f != null) {
    writer.writeString(
      5,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 6));
  if (f != null) {
    writer.writeString(
      6,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 7));
  if (f != null) {
    writer.writeString(
      7,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 8));
  if (f != null) {
    writer.writeString(
      8,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 9));
  if (f != null) {
    writer.writeString(
      9,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 10));
  if (f != null) {
    writer.writeString(
      10,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 11));
  if (f != null) {
    writer.writeString(
      11,
      f
    );
  }
  f = /** @type {number} */ (jspb.Message.getField(message, 12));
  if (f != null) {
    writer.writeUint64(
      12,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 13));
  if (f != null) {
    writer.writeString(
      13,
      f
    );
  }
  f = /** @type {number} */ (jspb.Message.getField(message, 14));
  if (f != null) {
    writer.writeUint64(
      14,
      f
    );
  }
};


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


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


/**
 * optional string content = 2;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getContent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setContent = function(value) {
  return jspb.Message.setField(this, 2, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearContent = function() {
  return jspb.Message.setField(this, 2, undefined);
};


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


/**
 * optional string content_type = 3;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getContentType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setContentType = function(value) {
  return jspb.Message.setField(this, 3, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearContentType = function() {
  return jspb.Message.setField(this, 3, undefined);
};


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


/**
 * optional bool deleted = 4;
 * @return {boolean}
 */
proto.sync.ItemHash.prototype.getDeleted = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
};


/**
 * @param {boolean} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setDeleted = function(value) {
  return jspb.Message.setField(this, 4, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearDeleted = function() {
  return jspb.Message.setField(this, 4, undefined);
};


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


/**
 * optional string duplicate_of = 5;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getDuplicateOf = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setDuplicateOf = function(value) {
  return jspb.Message.setField(this, 5, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearDuplicateOf = function() {
  return jspb.Message.setField(this, 5, undefined);
};


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


/**
 * optional string auth_hash = 6;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getAuthHash = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setAuthHash = function(value) {
  return jspb.Message.setField(this, 6, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearAuthHash = function() {
  return jspb.Message.setField(this, 6, undefined);
};


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


/**
 * optional string enc_item_key = 7;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getEncItemKey = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setEncItemKey = function(value) {
  return jspb.Message.setField(this, 7, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearEncItemKey = function() {
  return jspb.Message.setField(this, 7, undefined);
};


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


/**
 * optional string items_key_id = 8;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getItemsKeyId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setItemsKeyId = function(value) {
  return jspb.Message.setField(this, 8, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearItemsKeyId = function() {
  return jspb.Message.setField(this, 8, undefined);
};


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


/**
 * optional string key_system_identifier = 9;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getKeySystemIdentifier = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setKeySystemIdentifier = function(value) {
  return jspb.Message.setField(this, 9, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearKeySystemIdentifier = function() {
  return jspb.Message.setField(this, 9, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHash.prototype.hasKeySystemIdentifier = function() {
  return jspb.Message.getField(this, 9) != null;
};


/**
 * optional string shared_vault_uuid = 10;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getSharedVaultUuid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setSharedVaultUuid = function(value) {
  return jspb.Message.setField(this, 10, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearSharedVaultUuid = function() {
  return jspb.Message.setField(this, 10, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHash.prototype.hasSharedVaultUuid = function() {
  return jspb.Message.getField(this, 10) != null;
};


/**
 * optional string created_at = 11;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getCreatedAt = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setCreatedAt = function(value) {
  return jspb.Message.setField(this, 11, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearCreatedAt = function() {
  return jspb.Message.setField(this, 11, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHash.prototype.hasCreatedAt = function() {
  return jspb.Message.getField(this, 11) != null;
};


/**
 * optional uint64 created_at_timestamp = 12;
 * @return {number}
 */
proto.sync.ItemHash.prototype.getCreatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 12, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setCreatedAtTimestamp = function(value) {
  return jspb.Message.setField(this, 12, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearCreatedAtTimestamp = function() {
  return jspb.Message.setField(this, 12, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHash.prototype.hasCreatedAtTimestamp = function() {
  return jspb.Message.getField(this, 12) != null;
};


/**
 * optional string updated_at = 13;
 * @return {string}
 */
proto.sync.ItemHash.prototype.getUpdatedAt = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setUpdatedAt = function(value) {
  return jspb.Message.setField(this, 13, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearUpdatedAt = function() {
  return jspb.Message.setField(this, 13, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHash.prototype.hasUpdatedAt = function() {
  return jspb.Message.getField(this, 13) != null;
};


/**
 * optional uint64 updated_at_timestamp = 14;
 * @return {number}
 */
proto.sync.ItemHash.prototype.getUpdatedAtTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 14, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.setUpdatedAtTimestamp = function(value) {
  return jspb.Message.setField(this, 14, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.ItemHash} returns this
 */
proto.sync.ItemHash.prototype.clearUpdatedAtTimestamp = function() {
  return jspb.Message.setField(this, 14, undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.sync.ItemHash.prototype.hasUpdatedAtTimestamp = function() {
  return jspb.Message.getField(this, 14) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.sync.SyncResponse.repeatedFields_ = [1,2,3,6,7,8,9];



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.sync.SyncResponse.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.SyncResponse.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.sync.SyncResponse} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SyncResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    retrievedItemsList: jspb.Message.toObjectList(msg.getRetrievedItemsList(),
    proto.sync.ItemRepresentation.toObject, includeInstance),
    savedItemsList: jspb.Message.toObjectList(msg.getSavedItemsList(),
    proto.sync.SavedItemRepresentation.toObject, includeInstance),
    conflictsList: jspb.Message.toObjectList(msg.getConflictsList(),
    proto.sync.ItemConflictRepresentation.toObject, includeInstance),
    syncToken: jspb.Message.getFieldWithDefault(msg, 4, ""),
    cursorToken: jspb.Message.getFieldWithDefault(msg, 5, ""),
    messagesList: jspb.Message.toObjectList(msg.getMessagesList(),
    proto.sync.MessageRepresentation.toObject, includeInstance),
    sharedVaultsList: jspb.Message.toObjectList(msg.getSharedVaultsList(),
    proto.sync.SharedVaultRepresentation.toObject, includeInstance),
    sharedVaultInvitesList: jspb.Message.toObjectList(msg.getSharedVaultInvitesList(),
    proto.sync.SharedVaultInviteRepresentation.toObject, includeInstance),
    notificationsList: jspb.Message.toObjectList(msg.getNotificationsList(),
    proto.sync.NotificationRepresentation.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.sync.SyncResponse}
 */
proto.sync.SyncResponse.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.sync.SyncResponse;
  return proto.sync.SyncResponse.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.SyncResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.SyncResponse}
 */
proto.sync.SyncResponse.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.sync.ItemRepresentation;
      reader.readMessage(value,proto.sync.ItemRepresentation.deserializeBinaryFromReader);
      msg.addRetrievedItems(value);
      break;
    case 2:
      var value = new proto.sync.SavedItemRepresentation;
      reader.readMessage(value,proto.sync.SavedItemRepresentation.deserializeBinaryFromReader);
      msg.addSavedItems(value);
      break;
    case 3:
      var value = new proto.sync.ItemConflictRepresentation;
      reader.readMessage(value,proto.sync.ItemConflictRepresentation.deserializeBinaryFromReader);
      msg.addConflicts(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setSyncToken(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setCursorToken(value);
      break;
    case 6:
      var value = new proto.sync.MessageRepresentation;
      reader.readMessage(value,proto.sync.MessageRepresentation.deserializeBinaryFromReader);
      msg.addMessages(value);
      break;
    case 7:
      var value = new proto.sync.SharedVaultRepresentation;
      reader.readMessage(value,proto.sync.SharedVaultRepresentation.deserializeBinaryFromReader);
      msg.addSharedVaults(value);
      break;
    case 8:
      var value = new proto.sync.SharedVaultInviteRepresentation;
      reader.readMessage(value,proto.sync.SharedVaultInviteRepresentation.deserializeBinaryFromReader);
      msg.addSharedVaultInvites(value);
      break;
    case 9:
      var value = new proto.sync.NotificationRepresentation;
      reader.readMessage(value,proto.sync.NotificationRepresentation.deserializeBinaryFromReader);
      msg.addNotifications(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.SyncResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SyncResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getRetrievedItemsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.sync.ItemRepresentation.serializeBinaryToWriter
    );
  }
  f = message.getSavedItemsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.sync.SavedItemRepresentation.serializeBinaryToWriter
    );
  }
  f = message.getConflictsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      3,
      f,
      proto.sync.ItemConflictRepresentation.serializeBinaryToWriter
    );
  }
  f = message.getSyncToken();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 5));
  if (f != null) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getMessagesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      6,
      f,
      proto.sync.MessageRepresentation.serializeBinaryToWriter
    );
  }
  f = message.getSharedVaultsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      7,
      f,
      proto.sync.SharedVaultRepresentation.serializeBinaryToWriter
    );
  }
  f = message.getSharedVaultInvitesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      8,
      f,
      proto.sync.SharedVaultInviteRepresentation.serializeBinaryToWriter
    );
  }
  f = message.getNotificationsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      9,
      f,
      proto.sync.NotificationRepresentation.serializeBinaryToWriter
    );
  }
};


/**
 * repeated ItemRepresentation retrieved_items = 1;
 * @return {!Array<!proto.sync.ItemRepresentation>}
 */
proto.sync.SyncResponse.prototype.getRetrievedItemsList = function() {
  return /** @type{!Array<!proto.sync.ItemRepresentation>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.sync.ItemRepresentation, 1));
};


/**
 * @param {!Array<!proto.sync.ItemRepresentation>} value
 * @return {!proto.sync.SyncResponse} returns this
*/
proto.sync.SyncResponse.prototype.setRetrievedItemsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.sync.ItemRepresentation=} opt_value
 * @param {number=} opt_index
 * @return {!proto.sync.ItemRepresentation}
 */
proto.sync.SyncResponse.prototype.addRetrievedItems = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.sync.ItemRepresentation, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.sync.SyncResponse} returns this
 */
proto.sync.SyncResponse.prototype.clearRetrievedItemsList = function() {
  return this.setRetrievedItemsList([]);
};


/**
 * repeated SavedItemRepresentation saved_items = 2;
 * @return {!Array<!proto.sync.SavedItemRepresentation>}
 */
proto.sync.SyncResponse.prototype.getSavedItemsList = function() {
  return /** @type{!Array<!proto.sync.SavedItemRepresentation>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.sync.SavedItemRepresentation, 2));
};


/**
 * @param {!Array<!proto.sync.SavedItemRepresentation>} value
 * @return {!proto.sync.SyncResponse} returns this
*/
proto.sync.SyncResponse.prototype.setSavedItemsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.sync.SavedItemRepresentation=} opt_value
 * @param {number=} opt_index
 * @return {!proto.sync.SavedItemRepresentation}
 */
proto.sync.SyncResponse.prototype.addSavedItems = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.sync.SavedItemRepresentation, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.sync.SyncResponse} returns this
 */
proto.sync.SyncResponse.prototype.clearSavedItemsList = function() {
  return this.setSavedItemsList([]);
};


/**
 * repeated ItemConflictRepresentation conflicts = 3;
 * @return {!Array<!proto.sync.ItemConflictRepresentation>}
 */
proto.sync.SyncResponse.prototype.getConflictsList = function() {
  return /** @type{!Array<!proto.sync.ItemConflictRepresentation>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.sync.ItemConflictRepresentation, 3));
};


/**
 * @param {!Array<!proto.sync.ItemConflictRepresentation>} value
 * @return {!proto.sync.SyncResponse} returns this
*/
proto.sync.SyncResponse.prototype.setConflictsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 3, value);
};


/**
 * @param {!proto.sync.ItemConflictRepresentation=} opt_value
 * @param {number=} opt_index
 * @return {!proto.sync.ItemConflictRepresentation}
 */
proto.sync.SyncResponse.prototype.addConflicts = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.sync.ItemConflictRepresentation, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.sync.SyncResponse} returns this
 */
proto.sync.SyncResponse.prototype.clearConflictsList = function() {
  return this.setConflictsList([]);
};


/**
 * optional string sync_token = 4;
 * @return {string}
 */
proto.sync.SyncResponse.prototype.getSyncToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


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


/**
 * optional string cursor_token = 5;
 * @return {string}
 */
proto.sync.SyncResponse.prototype.getCursorToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SyncResponse} returns this
 */
proto.sync.SyncResponse.prototype.setCursorToken = function(value) {
  return jspb.Message.setField(this, 5, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SyncResponse} returns this
 */
proto.sync.SyncResponse.prototype.clearCursorToken = function() {
  return jspb.Message.setField(this, 5, undefined);
};


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


/**
 * repeated MessageRepresentation messages = 6;
 * @return {!Array<!proto.sync.MessageRepresentation>}
 */
proto.sync.SyncResponse.prototype.getMessagesList = function() {
  return /** @type{!Array<!proto.sync.MessageRepresentation>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.sync.MessageRepresentation, 6));
};


/**
 * @param {!Array<!proto.sync.MessageRepresentation>} value
 * @return {!proto.sync.SyncResponse} returns this
*/
proto.sync.SyncResponse.prototype.setMessagesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 6, value);
};


/**
 * @param {!proto.sync.MessageRepresentation=} opt_value
 * @param {number=} opt_index
 * @return {!proto.sync.MessageRepresentation}
 */
proto.sync.SyncResponse.prototype.addMessages = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.sync.MessageRepresentation, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.sync.SyncResponse} returns this
 */
proto.sync.SyncResponse.prototype.clearMessagesList = function() {
  return this.setMessagesList([]);
};


/**
 * repeated SharedVaultRepresentation shared_vaults = 7;
 * @return {!Array<!proto.sync.SharedVaultRepresentation>}
 */
proto.sync.SyncResponse.prototype.getSharedVaultsList = function() {
  return /** @type{!Array<!proto.sync.SharedVaultRepresentation>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.sync.SharedVaultRepresentation, 7));
};


/**
 * @param {!Array<!proto.sync.SharedVaultRepresentation>} value
 * @return {!proto.sync.SyncResponse} returns this
*/
proto.sync.SyncResponse.prototype.setSharedVaultsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 7, value);
};


/**
 * @param {!proto.sync.SharedVaultRepresentation=} opt_value
 * @param {number=} opt_index
 * @return {!proto.sync.SharedVaultRepresentation}
 */
proto.sync.SyncResponse.prototype.addSharedVaults = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.sync.SharedVaultRepresentation, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.sync.SyncResponse} returns this
 */
proto.sync.SyncResponse.prototype.clearSharedVaultsList = function() {
  return this.setSharedVaultsList([]);
};


/**
 * repeated SharedVaultInviteRepresentation shared_vault_invites = 8;
 * @return {!Array<!proto.sync.SharedVaultInviteRepresentation>}
 */
proto.sync.SyncResponse.prototype.getSharedVaultInvitesList = function() {
  return /** @type{!Array<!proto.sync.SharedVaultInviteRepresentation>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.sync.SharedVaultInviteRepresentation, 8));
};


/**
 * @param {!Array<!proto.sync.SharedVaultInviteRepresentation>} value
 * @return {!proto.sync.SyncResponse} returns this
*/
proto.sync.SyncResponse.prototype.setSharedVaultInvitesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 8, value);
};


/**
 * @param {!proto.sync.SharedVaultInviteRepresentation=} opt_value
 * @param {number=} opt_index
 * @return {!proto.sync.SharedVaultInviteRepresentation}
 */
proto.sync.SyncResponse.prototype.addSharedVaultInvites = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.sync.SharedVaultInviteRepresentation, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.sync.SyncResponse} returns this
 */
proto.sync.SyncResponse.prototype.clearSharedVaultInvitesList = function() {
  return this.setSharedVaultInvitesList([]);
};


/**
 * repeated NotificationRepresentation notifications = 9;
 * @return {!Array<!proto.sync.NotificationRepresentation>}
 */
proto.sync.SyncResponse.prototype.getNotificationsList = function() {
  return /** @type{!Array<!proto.sync.NotificationRepresentation>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.sync.NotificationRepresentation, 9));
};


/**
 * @param {!Array<!proto.sync.NotificationRepresentation>} value
 * @return {!proto.sync.SyncResponse} returns this
*/
proto.sync.SyncResponse.prototype.setNotificationsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 9, value);
};


/**
 * @param {!proto.sync.NotificationRepresentation=} opt_value
 * @param {number=} opt_index
 * @return {!proto.sync.NotificationRepresentation}
 */
proto.sync.SyncResponse.prototype.addNotifications = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 9, opt_value, proto.sync.NotificationRepresentation, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.sync.SyncResponse} returns this
 */
proto.sync.SyncResponse.prototype.clearNotificationsList = function() {
  return this.setNotificationsList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.sync.SyncRequest.repeatedFields_ = [1,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.sync.SyncRequest.prototype.toObject = function(opt_includeInstance) {
  return proto.sync.SyncRequest.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.sync.SyncRequest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SyncRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    itemsList: jspb.Message.toObjectList(msg.getItemsList(),
    proto.sync.ItemHash.toObject, includeInstance),
    sharedVaultUuidsList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,
    computeIntegrity: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
    syncToken: jspb.Message.getFieldWithDefault(msg, 4, ""),
    cursorToken: jspb.Message.getFieldWithDefault(msg, 5, ""),
    limit: jspb.Message.getFieldWithDefault(msg, 6, 0),
    contentType: jspb.Message.getFieldWithDefault(msg, 7, ""),
    apiVersion: jspb.Message.getFieldWithDefault(msg, 8, "")
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.sync.SyncRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.sync.SyncRequest}
 */
proto.sync.SyncRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.sync.ItemHash;
      reader.readMessage(value,proto.sync.ItemHash.deserializeBinaryFromReader);
      msg.addItems(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.addSharedVaultUuids(value);
      break;
    case 3:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setComputeIntegrity(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setSyncToken(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setCursorToken(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setLimit(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setContentType(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setApiVersion(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.sync.SyncRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.sync.SyncRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getItemsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.sync.ItemHash.serializeBinaryToWriter
    );
  }
  f = message.getSharedVaultUuidsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      2,
      f
    );
  }
  f = /** @type {boolean} */ (jspb.Message.getField(message, 3));
  if (f != null) {
    writer.writeBool(
      3,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 4));
  if (f != null) {
    writer.writeString(
      4,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 5));
  if (f != null) {
    writer.writeString(
      5,
      f
    );
  }
  f = /** @type {number} */ (jspb.Message.getField(message, 6));
  if (f != null) {
    writer.writeUint32(
      6,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 7));
  if (f != null) {
    writer.writeString(
      7,
      f
    );
  }
  f = /** @type {string} */ (jspb.Message.getField(message, 8));
  if (f != null) {
    writer.writeString(
      8,
      f
    );
  }
};


/**
 * repeated ItemHash items = 1;
 * @return {!Array<!proto.sync.ItemHash>}
 */
proto.sync.SyncRequest.prototype.getItemsList = function() {
  return /** @type{!Array<!proto.sync.ItemHash>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.sync.ItemHash, 1));
};


/**
 * @param {!Array<!proto.sync.ItemHash>} value
 * @return {!proto.sync.SyncRequest} returns this
*/
proto.sync.SyncRequest.prototype.setItemsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};


/**
 * @param {!proto.sync.ItemHash=} opt_value
 * @param {number=} opt_index
 * @return {!proto.sync.ItemHash}
 */
proto.sync.SyncRequest.prototype.addItems = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.sync.ItemHash, opt_index);
};


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


/**
 * repeated string shared_vault_uuids = 2;
 * @return {!Array<string>}
 */
proto.sync.SyncRequest.prototype.getSharedVaultUuidsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));
};


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


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


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.clearSharedVaultUuidsList = function() {
  return this.setSharedVaultUuidsList([]);
};


/**
 * optional bool compute_integrity = 3;
 * @return {boolean}
 */
proto.sync.SyncRequest.prototype.getComputeIntegrity = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
};


/**
 * @param {boolean} value
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.setComputeIntegrity = function(value) {
  return jspb.Message.setField(this, 3, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.clearComputeIntegrity = function() {
  return jspb.Message.setField(this, 3, undefined);
};


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


/**
 * optional string sync_token = 4;
 * @return {string}
 */
proto.sync.SyncRequest.prototype.getSyncToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.setSyncToken = function(value) {
  return jspb.Message.setField(this, 4, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.clearSyncToken = function() {
  return jspb.Message.setField(this, 4, undefined);
};


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


/**
 * optional string cursor_token = 5;
 * @return {string}
 */
proto.sync.SyncRequest.prototype.getCursorToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.setCursorToken = function(value) {
  return jspb.Message.setField(this, 5, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.clearCursorToken = function() {
  return jspb.Message.setField(this, 5, undefined);
};


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


/**
 * optional uint32 limit = 6;
 * @return {number}
 */
proto.sync.SyncRequest.prototype.getLimit = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {number} value
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.setLimit = function(value) {
  return jspb.Message.setField(this, 6, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.clearLimit = function() {
  return jspb.Message.setField(this, 6, undefined);
};


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


/**
 * optional string content_type = 7;
 * @return {string}
 */
proto.sync.SyncRequest.prototype.getContentType = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.setContentType = function(value) {
  return jspb.Message.setField(this, 7, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.clearContentType = function() {
  return jspb.Message.setField(this, 7, undefined);
};


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


/**
 * optional string api_version = 8;
 * @return {string}
 */
proto.sync.SyncRequest.prototype.getApiVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.setApiVersion = function(value) {
  return jspb.Message.setField(this, 8, value);
};


/**
 * Clears the field making it undefined.
 * @return {!proto.sync.SyncRequest} returns this
 */
proto.sync.SyncRequest.prototype.clearApiVersion = function() {
  return jspb.Message.setField(this, 8, undefined);
};


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


goog.object.extend(exports, proto.sync);
