/**
 * @fileoverview
 * @enhanceable
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!

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

var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');
var api_user_pb = require('../api/user_pb.js');
goog.exportSymbol('proto.api.ApiKey', null, global);
goog.exportSymbol('proto.api.CreateApiKeyRequest', null, global);
goog.exportSymbol('proto.api.CreateApiKeyResponse', null, global);
goog.exportSymbol('proto.api.DeleteApiKeyRequest', null, global);
goog.exportSymbol('proto.api.GetDevicesSummaryRequest', null, global);
goog.exportSymbol('proto.api.GetDevicesSummaryResponse', null, global);
goog.exportSymbol('proto.api.GetGatewaysSummaryRequest', null, global);
goog.exportSymbol('proto.api.GetGatewaysSummaryResponse', null, global);
goog.exportSymbol('proto.api.GlobalSearchRequest', null, global);
goog.exportSymbol('proto.api.GlobalSearchResponse', null, global);
goog.exportSymbol('proto.api.GlobalSearchResult', null, global);
goog.exportSymbol('proto.api.ListApiKeysRequest', null, global);
goog.exportSymbol('proto.api.ListApiKeysResponse', null, global);
goog.exportSymbol('proto.api.LogItem', null, global);
goog.exportSymbol('proto.api.LoginRequest', null, global);
goog.exportSymbol('proto.api.LoginResponse', null, global);
goog.exportSymbol('proto.api.OpenIdConnect', null, global);
goog.exportSymbol('proto.api.OpenIdConnectLoginRequest', null, global);
goog.exportSymbol('proto.api.OpenIdConnectLoginResponse', null, global);
goog.exportSymbol('proto.api.ProfileResponse', null, global);
goog.exportSymbol('proto.api.SettingsResponse', null, global);
goog.exportSymbol('proto.api.StreamDeviceEventsRequest', null, global);
goog.exportSymbol('proto.api.StreamDeviceFramesRequest', null, global);
goog.exportSymbol('proto.api.StreamGatewayFramesRequest', null, global);
goog.exportSymbol('proto.api.UserTenantLink', 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.api.ApiKey = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.ApiKey, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.ApiKey.displayName = 'proto.api.ApiKey';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.ApiKey} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.ApiKey.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: msg.getId(),
    name: msg.getName(),
    isAdmin: msg.getIsAdmin(),
    tenantId: msg.getTenantId()
  };

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


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


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.ApiKey} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.ApiKey.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.ApiKey.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = this.getName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = this.getIsAdmin();
  if (f) {
    writer.writeBool(
      3,
      f
    );
  }
  f = this.getTenantId();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.ApiKey} The clone.
 */
proto.api.ApiKey.prototype.cloneMessage = function() {
  return /** @type {!proto.api.ApiKey} */ (jspb.Message.cloneMessage(this));
};


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


/** @param {string} value  */
proto.api.ApiKey.prototype.setId = function(value) {
  jspb.Message.setField(this, 1, value);
};


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


/** @param {string} value  */
proto.api.ApiKey.prototype.setName = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional bool is_admin = 3;
 * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
 * You should avoid comparisons like {@code val === true/false} in those cases.
 * @return {boolean}
 */
proto.api.ApiKey.prototype.getIsAdmin = function() {
  return /** @type {boolean} */ (jspb.Message.getFieldProto3(this, 3, false));
};


/** @param {boolean} value  */
proto.api.ApiKey.prototype.setIsAdmin = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional string tenant_id = 4;
 * @return {string}
 */
proto.api.ApiKey.prototype.getTenantId = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 4, ""));
};


/** @param {string} value  */
proto.api.ApiKey.prototype.setTenantId = function(value) {
  jspb.Message.setField(this, 4, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.CreateApiKeyRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.CreateApiKeyRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.CreateApiKeyRequest.displayName = 'proto.api.CreateApiKeyRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.CreateApiKeyRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.CreateApiKeyRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    apiKey: (f = msg.getApiKey()) && proto.api.ApiKey.toObject(includeInstance, f)
  };

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


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


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.CreateApiKeyRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.CreateApiKeyRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.CreateApiKeyRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getApiKey();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.api.ApiKey.serializeBinaryToWriter
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.CreateApiKeyRequest} The clone.
 */
proto.api.CreateApiKeyRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.CreateApiKeyRequest} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional ApiKey api_key = 1;
 * @return {proto.api.ApiKey}
 */
proto.api.CreateApiKeyRequest.prototype.getApiKey = function() {
  return /** @type{proto.api.ApiKey} */ (
    jspb.Message.getWrapperField(this, proto.api.ApiKey, 1));
};


/** @param {proto.api.ApiKey|undefined} value  */
proto.api.CreateApiKeyRequest.prototype.setApiKey = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.api.CreateApiKeyRequest.prototype.clearApiKey = function() {
  this.setApiKey(undefined);
};


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



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.CreateApiKeyResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.CreateApiKeyResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.CreateApiKeyResponse.displayName = 'proto.api.CreateApiKeyResponse';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.CreateApiKeyResponse} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.CreateApiKeyResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: msg.getId(),
    token: msg.getToken()
  };

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


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


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.CreateApiKeyResponse} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.CreateApiKeyResponse.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.CreateApiKeyResponse.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = this.getToken();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.CreateApiKeyResponse} The clone.
 */
proto.api.CreateApiKeyResponse.prototype.cloneMessage = function() {
  return /** @type {!proto.api.CreateApiKeyResponse} */ (jspb.Message.cloneMessage(this));
};


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


/** @param {string} value  */
proto.api.CreateApiKeyResponse.prototype.setId = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional string token = 2;
 * @return {string}
 */
proto.api.CreateApiKeyResponse.prototype.getToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 2, ""));
};


/** @param {string} value  */
proto.api.CreateApiKeyResponse.prototype.setToken = function(value) {
  jspb.Message.setField(this, 2, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.DeleteApiKeyRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.DeleteApiKeyRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.DeleteApiKeyRequest.displayName = 'proto.api.DeleteApiKeyRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.DeleteApiKeyRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.DeleteApiKeyRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: msg.getId()
  };

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


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


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.DeleteApiKeyRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.DeleteApiKeyRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.DeleteApiKeyRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.DeleteApiKeyRequest} The clone.
 */
proto.api.DeleteApiKeyRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.DeleteApiKeyRequest} */ (jspb.Message.cloneMessage(this));
};


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


/** @param {string} value  */
proto.api.DeleteApiKeyRequest.prototype.setId = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.ListApiKeysRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.ListApiKeysRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.ListApiKeysRequest.displayName = 'proto.api.ListApiKeysRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.ListApiKeysRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.ListApiKeysRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    limit: msg.getLimit(),
    offset: msg.getOffset(),
    isAdmin: msg.getIsAdmin(),
    tenantId: msg.getTenantId()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.ListApiKeysRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.ListApiKeysRequest}
 */
proto.api.ListApiKeysRequest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setLimit(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setOffset(value);
      break;
    case 3:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsAdmin(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setTenantId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.ListApiKeysRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.ListApiKeysRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.ListApiKeysRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getLimit();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = this.getOffset();
  if (f !== 0) {
    writer.writeUint32(
      2,
      f
    );
  }
  f = this.getIsAdmin();
  if (f) {
    writer.writeBool(
      3,
      f
    );
  }
  f = this.getTenantId();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.ListApiKeysRequest} The clone.
 */
proto.api.ListApiKeysRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.ListApiKeysRequest} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional uint32 limit = 1;
 * @return {number}
 */
proto.api.ListApiKeysRequest.prototype.getLimit = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0));
};


/** @param {number} value  */
proto.api.ListApiKeysRequest.prototype.setLimit = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional uint32 offset = 2;
 * @return {number}
 */
proto.api.ListApiKeysRequest.prototype.getOffset = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0));
};


/** @param {number} value  */
proto.api.ListApiKeysRequest.prototype.setOffset = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional bool is_admin = 3;
 * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
 * You should avoid comparisons like {@code val === true/false} in those cases.
 * @return {boolean}
 */
proto.api.ListApiKeysRequest.prototype.getIsAdmin = function() {
  return /** @type {boolean} */ (jspb.Message.getFieldProto3(this, 3, false));
};


/** @param {boolean} value  */
proto.api.ListApiKeysRequest.prototype.setIsAdmin = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional string tenant_id = 4;
 * @return {string}
 */
proto.api.ListApiKeysRequest.prototype.getTenantId = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 4, ""));
};


/** @param {string} value  */
proto.api.ListApiKeysRequest.prototype.setTenantId = function(value) {
  jspb.Message.setField(this, 4, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.ListApiKeysResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.api.ListApiKeysResponse.repeatedFields_, null);
};
goog.inherits(proto.api.ListApiKeysResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.ListApiKeysResponse.displayName = 'proto.api.ListApiKeysResponse';
}
/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.api.ListApiKeysResponse.repeatedFields_ = [2];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.ListApiKeysResponse} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.ListApiKeysResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    totalCount: msg.getTotalCount(),
    resultList: jspb.Message.toObjectList(msg.getResultList(),
    proto.api.ApiKey.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.api.ListApiKeysResponse}
 */
proto.api.ListApiKeysResponse.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.api.ListApiKeysResponse;
  return proto.api.ListApiKeysResponse.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.ListApiKeysResponse} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.ListApiKeysResponse.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.ListApiKeysResponse.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getTotalCount();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = this.getResultList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.api.ApiKey.serializeBinaryToWriter
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.ListApiKeysResponse} The clone.
 */
proto.api.ListApiKeysResponse.prototype.cloneMessage = function() {
  return /** @type {!proto.api.ListApiKeysResponse} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional uint32 total_count = 1;
 * @return {number}
 */
proto.api.ListApiKeysResponse.prototype.getTotalCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0));
};


/** @param {number} value  */
proto.api.ListApiKeysResponse.prototype.setTotalCount = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * repeated ApiKey result = 2;
 * If you change this array by adding, removing or replacing elements, or if you
 * replace the array itself, then you must call the setter to update it.
 * @return {!Array.<!proto.api.ApiKey>}
 */
proto.api.ListApiKeysResponse.prototype.getResultList = function() {
  return /** @type{!Array.<!proto.api.ApiKey>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.api.ApiKey, 2));
};


/** @param {Array.<!proto.api.ApiKey>} value  */
proto.api.ListApiKeysResponse.prototype.setResultList = function(value) {
  jspb.Message.setRepeatedWrapperField(this, 2, value);
};


proto.api.ListApiKeysResponse.prototype.clearResultList = function() {
  this.setResultList([]);
};



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


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.UserTenantLink} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.UserTenantLink.toObject = function(includeInstance, msg) {
  var f, obj = {
    createdAt: (f = msg.getCreatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    updatedAt: (f = msg.getUpdatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    tenantId: msg.getTenantId(),
    isAdmin: msg.getIsAdmin(),
    isDeviceAdmin: msg.getIsDeviceAdmin(),
    isGatewayAdmin: msg.getIsGatewayAdmin()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.UserTenantLink} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.UserTenantLink}
 */
proto.api.UserTenantLink.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setCreatedAt(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setUpdatedAt(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setTenantId(value);
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsAdmin(value);
      break;
    case 5:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsDeviceAdmin(value);
      break;
    case 6:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsGatewayAdmin(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.UserTenantLink} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.UserTenantLink.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.UserTenantLink.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getCreatedAt();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = this.getUpdatedAt();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = this.getTenantId();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = this.getIsAdmin();
  if (f) {
    writer.writeBool(
      4,
      f
    );
  }
  f = this.getIsDeviceAdmin();
  if (f) {
    writer.writeBool(
      5,
      f
    );
  }
  f = this.getIsGatewayAdmin();
  if (f) {
    writer.writeBool(
      6,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.UserTenantLink} The clone.
 */
proto.api.UserTenantLink.prototype.cloneMessage = function() {
  return /** @type {!proto.api.UserTenantLink} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional google.protobuf.Timestamp created_at = 1;
 * @return {proto.google.protobuf.Timestamp}
 */
proto.api.UserTenantLink.prototype.getCreatedAt = function() {
  return /** @type{proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));
};


/** @param {proto.google.protobuf.Timestamp|undefined} value  */
proto.api.UserTenantLink.prototype.setCreatedAt = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.api.UserTenantLink.prototype.clearCreatedAt = function() {
  this.setCreatedAt(undefined);
};


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


/**
 * optional google.protobuf.Timestamp updated_at = 2;
 * @return {proto.google.protobuf.Timestamp}
 */
proto.api.UserTenantLink.prototype.getUpdatedAt = function() {
  return /** @type{proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));
};


/** @param {proto.google.protobuf.Timestamp|undefined} value  */
proto.api.UserTenantLink.prototype.setUpdatedAt = function(value) {
  jspb.Message.setWrapperField(this, 2, value);
};


proto.api.UserTenantLink.prototype.clearUpdatedAt = function() {
  this.setUpdatedAt(undefined);
};


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


/**
 * optional string tenant_id = 3;
 * @return {string}
 */
proto.api.UserTenantLink.prototype.getTenantId = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 3, ""));
};


/** @param {string} value  */
proto.api.UserTenantLink.prototype.setTenantId = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional bool is_admin = 4;
 * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
 * You should avoid comparisons like {@code val === true/false} in those cases.
 * @return {boolean}
 */
proto.api.UserTenantLink.prototype.getIsAdmin = function() {
  return /** @type {boolean} */ (jspb.Message.getFieldProto3(this, 4, false));
};


/** @param {boolean} value  */
proto.api.UserTenantLink.prototype.setIsAdmin = function(value) {
  jspb.Message.setField(this, 4, value);
};


/**
 * optional bool is_device_admin = 5;
 * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
 * You should avoid comparisons like {@code val === true/false} in those cases.
 * @return {boolean}
 */
proto.api.UserTenantLink.prototype.getIsDeviceAdmin = function() {
  return /** @type {boolean} */ (jspb.Message.getFieldProto3(this, 5, false));
};


/** @param {boolean} value  */
proto.api.UserTenantLink.prototype.setIsDeviceAdmin = function(value) {
  jspb.Message.setField(this, 5, value);
};


/**
 * optional bool is_gateway_admin = 6;
 * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
 * You should avoid comparisons like {@code val === true/false} in those cases.
 * @return {boolean}
 */
proto.api.UserTenantLink.prototype.getIsGatewayAdmin = function() {
  return /** @type {boolean} */ (jspb.Message.getFieldProto3(this, 6, false));
};


/** @param {boolean} value  */
proto.api.UserTenantLink.prototype.setIsGatewayAdmin = function(value) {
  jspb.Message.setField(this, 6, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.LoginRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.LoginRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.LoginRequest.displayName = 'proto.api.LoginRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.LoginRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.LoginRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    email: msg.getEmail(),
    password: msg.getPassword()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.LoginRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.LoginRequest}
 */
proto.api.LoginRequest.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.setEmail(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setPassword(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.LoginRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.LoginRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.LoginRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getEmail();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = this.getPassword();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.LoginRequest} The clone.
 */
proto.api.LoginRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.LoginRequest} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string email = 1;
 * @return {string}
 */
proto.api.LoginRequest.prototype.getEmail = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.LoginRequest.prototype.setEmail = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional string password = 2;
 * @return {string}
 */
proto.api.LoginRequest.prototype.getPassword = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 2, ""));
};


/** @param {string} value  */
proto.api.LoginRequest.prototype.setPassword = function(value) {
  jspb.Message.setField(this, 2, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.LoginResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.LoginResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.LoginResponse.displayName = 'proto.api.LoginResponse';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.LoginResponse} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.LoginResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    jwt: msg.getJwt()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.LoginResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.LoginResponse}
 */
proto.api.LoginResponse.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.setJwt(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.LoginResponse} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.LoginResponse.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.LoginResponse.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getJwt();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.LoginResponse} The clone.
 */
proto.api.LoginResponse.prototype.cloneMessage = function() {
  return /** @type {!proto.api.LoginResponse} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string jwt = 1;
 * @return {string}
 */
proto.api.LoginResponse.prototype.getJwt = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.LoginResponse.prototype.setJwt = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.ProfileResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.api.ProfileResponse.repeatedFields_, null);
};
goog.inherits(proto.api.ProfileResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.ProfileResponse.displayName = 'proto.api.ProfileResponse';
}
/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.api.ProfileResponse.repeatedFields_ = [3];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.ProfileResponse} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.ProfileResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    user: (f = msg.getUser()) && api_user_pb.User.toObject(includeInstance, f),
    tenantsList: jspb.Message.toObjectList(msg.getTenantsList(),
    proto.api.UserTenantLink.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.api.ProfileResponse}
 */
proto.api.ProfileResponse.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.api.ProfileResponse;
  return proto.api.ProfileResponse.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.ProfileResponse} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.ProfileResponse.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.ProfileResponse.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getUser();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      api_user_pb.User.serializeBinaryToWriter
    );
  }
  f = this.getTenantsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      3,
      f,
      proto.api.UserTenantLink.serializeBinaryToWriter
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.ProfileResponse} The clone.
 */
proto.api.ProfileResponse.prototype.cloneMessage = function() {
  return /** @type {!proto.api.ProfileResponse} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional User user = 1;
 * @return {proto.api.User}
 */
proto.api.ProfileResponse.prototype.getUser = function() {
  return /** @type{proto.api.User} */ (
    jspb.Message.getWrapperField(this, api_user_pb.User, 1));
};


/** @param {proto.api.User|undefined} value  */
proto.api.ProfileResponse.prototype.setUser = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.api.ProfileResponse.prototype.clearUser = function() {
  this.setUser(undefined);
};


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


/**
 * repeated UserTenantLink tenants = 3;
 * If you change this array by adding, removing or replacing elements, or if you
 * replace the array itself, then you must call the setter to update it.
 * @return {!Array.<!proto.api.UserTenantLink>}
 */
proto.api.ProfileResponse.prototype.getTenantsList = function() {
  return /** @type{!Array.<!proto.api.UserTenantLink>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.api.UserTenantLink, 3));
};


/** @param {Array.<!proto.api.UserTenantLink>} value  */
proto.api.ProfileResponse.prototype.setTenantsList = function(value) {
  jspb.Message.setRepeatedWrapperField(this, 3, value);
};


proto.api.ProfileResponse.prototype.clearTenantsList = function() {
  this.setTenantsList([]);
};



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


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.GlobalSearchRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.GlobalSearchRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    search: msg.getSearch(),
    limit: msg.getLimit(),
    offset: msg.getOffset()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.GlobalSearchRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.GlobalSearchRequest}
 */
proto.api.GlobalSearchRequest.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.setSearch(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setLimit(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setOffset(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.GlobalSearchRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GlobalSearchRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GlobalSearchRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getSearch();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = this.getLimit();
  if (f !== 0) {
    writer.writeInt64(
      2,
      f
    );
  }
  f = this.getOffset();
  if (f !== 0) {
    writer.writeInt64(
      3,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.GlobalSearchRequest} The clone.
 */
proto.api.GlobalSearchRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.GlobalSearchRequest} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string search = 1;
 * @return {string}
 */
proto.api.GlobalSearchRequest.prototype.getSearch = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchRequest.prototype.setSearch = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional int64 limit = 2;
 * @return {number}
 */
proto.api.GlobalSearchRequest.prototype.getLimit = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0));
};


/** @param {number} value  */
proto.api.GlobalSearchRequest.prototype.setLimit = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional int64 offset = 3;
 * @return {number}
 */
proto.api.GlobalSearchRequest.prototype.getOffset = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 3, 0));
};


/** @param {number} value  */
proto.api.GlobalSearchRequest.prototype.setOffset = function(value) {
  jspb.Message.setField(this, 3, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.GlobalSearchResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.api.GlobalSearchResponse.repeatedFields_, null);
};
goog.inherits(proto.api.GlobalSearchResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.GlobalSearchResponse.displayName = 'proto.api.GlobalSearchResponse';
}
/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.api.GlobalSearchResponse.repeatedFields_ = [1];



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.GlobalSearchResponse} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.GlobalSearchResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    resultList: jspb.Message.toObjectList(msg.getResultList(),
    proto.api.GlobalSearchResult.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.api.GlobalSearchResponse}
 */
proto.api.GlobalSearchResponse.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.api.GlobalSearchResponse;
  return proto.api.GlobalSearchResponse.deserializeBinaryFromReader(msg, reader);
};


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.GlobalSearchResponse} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GlobalSearchResponse.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GlobalSearchResponse.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getResultList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.api.GlobalSearchResult.serializeBinaryToWriter
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.GlobalSearchResponse} The clone.
 */
proto.api.GlobalSearchResponse.prototype.cloneMessage = function() {
  return /** @type {!proto.api.GlobalSearchResponse} */ (jspb.Message.cloneMessage(this));
};


/**
 * repeated GlobalSearchResult result = 1;
 * If you change this array by adding, removing or replacing elements, or if you
 * replace the array itself, then you must call the setter to update it.
 * @return {!Array.<!proto.api.GlobalSearchResult>}
 */
proto.api.GlobalSearchResponse.prototype.getResultList = function() {
  return /** @type{!Array.<!proto.api.GlobalSearchResult>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.api.GlobalSearchResult, 1));
};


/** @param {Array.<!proto.api.GlobalSearchResult>} value  */
proto.api.GlobalSearchResponse.prototype.setResultList = function(value) {
  jspb.Message.setRepeatedWrapperField(this, 1, value);
};


proto.api.GlobalSearchResponse.prototype.clearResultList = function() {
  this.setResultList([]);
};



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


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.GlobalSearchResult} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.GlobalSearchResult.toObject = function(includeInstance, msg) {
  var f, obj = {
    kind: msg.getKind(),
    score: msg.getScore(),
    tenantId: msg.getTenantId(),
    tenantName: msg.getTenantName(),
    applicationId: msg.getApplicationId(),
    applicationName: msg.getApplicationName(),
    deviceDevEui: msg.getDeviceDevEui(),
    deviceName: msg.getDeviceName(),
    gatewayId: msg.getGatewayId(),
    gatewayName: msg.getGatewayName()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.GlobalSearchResult} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.GlobalSearchResult}
 */
proto.api.GlobalSearchResult.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.setKind(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setScore(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setTenantId(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setTenantName(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setApplicationId(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setApplicationName(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setDeviceDevEui(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setDeviceName(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setGatewayId(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setGatewayName(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.GlobalSearchResult} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GlobalSearchResult.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GlobalSearchResult.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getKind();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = this.getScore();
  if (f !== 0.0) {
    writer.writeFloat(
      2,
      f
    );
  }
  f = this.getTenantId();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = this.getTenantName();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = this.getApplicationId();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = this.getApplicationName();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = this.getDeviceDevEui();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = this.getDeviceName();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = this.getGatewayId();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = this.getGatewayName();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.GlobalSearchResult} The clone.
 */
proto.api.GlobalSearchResult.prototype.cloneMessage = function() {
  return /** @type {!proto.api.GlobalSearchResult} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string kind = 1;
 * @return {string}
 */
proto.api.GlobalSearchResult.prototype.getKind = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchResult.prototype.setKind = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional float score = 2;
 * @return {number}
 */
proto.api.GlobalSearchResult.prototype.getScore = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0));
};


/** @param {number} value  */
proto.api.GlobalSearchResult.prototype.setScore = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional string tenant_id = 3;
 * @return {string}
 */
proto.api.GlobalSearchResult.prototype.getTenantId = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 3, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchResult.prototype.setTenantId = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional string tenant_name = 4;
 * @return {string}
 */
proto.api.GlobalSearchResult.prototype.getTenantName = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 4, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchResult.prototype.setTenantName = function(value) {
  jspb.Message.setField(this, 4, value);
};


/**
 * optional string application_id = 5;
 * @return {string}
 */
proto.api.GlobalSearchResult.prototype.getApplicationId = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 5, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchResult.prototype.setApplicationId = function(value) {
  jspb.Message.setField(this, 5, value);
};


/**
 * optional string application_name = 6;
 * @return {string}
 */
proto.api.GlobalSearchResult.prototype.getApplicationName = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 6, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchResult.prototype.setApplicationName = function(value) {
  jspb.Message.setField(this, 6, value);
};


/**
 * optional string device_dev_eui = 7;
 * @return {string}
 */
proto.api.GlobalSearchResult.prototype.getDeviceDevEui = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 7, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchResult.prototype.setDeviceDevEui = function(value) {
  jspb.Message.setField(this, 7, value);
};


/**
 * optional string device_name = 8;
 * @return {string}
 */
proto.api.GlobalSearchResult.prototype.getDeviceName = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 8, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchResult.prototype.setDeviceName = function(value) {
  jspb.Message.setField(this, 8, value);
};


/**
 * optional string gateway_id = 9;
 * @return {string}
 */
proto.api.GlobalSearchResult.prototype.getGatewayId = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 9, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchResult.prototype.setGatewayId = function(value) {
  jspb.Message.setField(this, 9, value);
};


/**
 * optional string gateway_name = 10;
 * @return {string}
 */
proto.api.GlobalSearchResult.prototype.getGatewayName = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 10, ""));
};


/** @param {string} value  */
proto.api.GlobalSearchResult.prototype.setGatewayName = function(value) {
  jspb.Message.setField(this, 10, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.SettingsResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.SettingsResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.SettingsResponse.displayName = 'proto.api.SettingsResponse';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.SettingsResponse} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.SettingsResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    openidConnect: (f = msg.getOpenidConnect()) && proto.api.OpenIdConnect.toObject(includeInstance, f)
  };

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


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


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.SettingsResponse} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.SettingsResponse.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.SettingsResponse.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getOpenidConnect();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.api.OpenIdConnect.serializeBinaryToWriter
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.SettingsResponse} The clone.
 */
proto.api.SettingsResponse.prototype.cloneMessage = function() {
  return /** @type {!proto.api.SettingsResponse} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional OpenIdConnect openid_connect = 1;
 * @return {proto.api.OpenIdConnect}
 */
proto.api.SettingsResponse.prototype.getOpenidConnect = function() {
  return /** @type{proto.api.OpenIdConnect} */ (
    jspb.Message.getWrapperField(this, proto.api.OpenIdConnect, 1));
};


/** @param {proto.api.OpenIdConnect|undefined} value  */
proto.api.SettingsResponse.prototype.setOpenidConnect = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.api.SettingsResponse.prototype.clearOpenidConnect = function() {
  this.setOpenidConnect(undefined);
};


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



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.OpenIdConnect = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.OpenIdConnect, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.OpenIdConnect.displayName = 'proto.api.OpenIdConnect';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.OpenIdConnect} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.OpenIdConnect.toObject = function(includeInstance, msg) {
  var f, obj = {
    enabled: msg.getEnabled(),
    loginUrl: msg.getLoginUrl(),
    loginLabel: msg.getLoginLabel(),
    logoutUrl: msg.getLogoutUrl()
  };

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


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


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.OpenIdConnect} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.OpenIdConnect.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.OpenIdConnect.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getEnabled();
  if (f) {
    writer.writeBool(
      1,
      f
    );
  }
  f = this.getLoginUrl();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = this.getLoginLabel();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = this.getLogoutUrl();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.OpenIdConnect} The clone.
 */
proto.api.OpenIdConnect.prototype.cloneMessage = function() {
  return /** @type {!proto.api.OpenIdConnect} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional bool enabled = 1;
 * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
 * You should avoid comparisons like {@code val === true/false} in those cases.
 * @return {boolean}
 */
proto.api.OpenIdConnect.prototype.getEnabled = function() {
  return /** @type {boolean} */ (jspb.Message.getFieldProto3(this, 1, false));
};


/** @param {boolean} value  */
proto.api.OpenIdConnect.prototype.setEnabled = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional string login_url = 2;
 * @return {string}
 */
proto.api.OpenIdConnect.prototype.getLoginUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 2, ""));
};


/** @param {string} value  */
proto.api.OpenIdConnect.prototype.setLoginUrl = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional string login_label = 3;
 * @return {string}
 */
proto.api.OpenIdConnect.prototype.getLoginLabel = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 3, ""));
};


/** @param {string} value  */
proto.api.OpenIdConnect.prototype.setLoginLabel = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional string logout_url = 4;
 * @return {string}
 */
proto.api.OpenIdConnect.prototype.getLogoutUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 4, ""));
};


/** @param {string} value  */
proto.api.OpenIdConnect.prototype.setLogoutUrl = function(value) {
  jspb.Message.setField(this, 4, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.OpenIdConnectLoginRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.OpenIdConnectLoginRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.OpenIdConnectLoginRequest.displayName = 'proto.api.OpenIdConnectLoginRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.OpenIdConnectLoginRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.OpenIdConnectLoginRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    code: msg.getCode(),
    state: msg.getState()
  };

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


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


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.OpenIdConnectLoginRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.OpenIdConnectLoginRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.OpenIdConnectLoginRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getCode();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = this.getState();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.OpenIdConnectLoginRequest} The clone.
 */
proto.api.OpenIdConnectLoginRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.OpenIdConnectLoginRequest} */ (jspb.Message.cloneMessage(this));
};


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


/** @param {string} value  */
proto.api.OpenIdConnectLoginRequest.prototype.setCode = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional string state = 2;
 * @return {string}
 */
proto.api.OpenIdConnectLoginRequest.prototype.getState = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 2, ""));
};


/** @param {string} value  */
proto.api.OpenIdConnectLoginRequest.prototype.setState = function(value) {
  jspb.Message.setField(this, 2, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.OpenIdConnectLoginResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.OpenIdConnectLoginResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.OpenIdConnectLoginResponse.displayName = 'proto.api.OpenIdConnectLoginResponse';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.OpenIdConnectLoginResponse} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.OpenIdConnectLoginResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    token: msg.getToken()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.OpenIdConnectLoginResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.OpenIdConnectLoginResponse}
 */
proto.api.OpenIdConnectLoginResponse.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.setToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.OpenIdConnectLoginResponse} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.OpenIdConnectLoginResponse.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.OpenIdConnectLoginResponse.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getToken();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.OpenIdConnectLoginResponse} The clone.
 */
proto.api.OpenIdConnectLoginResponse.prototype.cloneMessage = function() {
  return /** @type {!proto.api.OpenIdConnectLoginResponse} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string token = 1;
 * @return {string}
 */
proto.api.OpenIdConnectLoginResponse.prototype.getToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.OpenIdConnectLoginResponse.prototype.setToken = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.GetDevicesSummaryRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.GetDevicesSummaryRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.GetDevicesSummaryRequest.displayName = 'proto.api.GetDevicesSummaryRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.GetDevicesSummaryRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.GetDevicesSummaryRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    tenantId: msg.getTenantId()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.GetDevicesSummaryRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.GetDevicesSummaryRequest}
 */
proto.api.GetDevicesSummaryRequest.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.setTenantId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.GetDevicesSummaryRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GetDevicesSummaryRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GetDevicesSummaryRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getTenantId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.GetDevicesSummaryRequest} The clone.
 */
proto.api.GetDevicesSummaryRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.GetDevicesSummaryRequest} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string tenant_id = 1;
 * @return {string}
 */
proto.api.GetDevicesSummaryRequest.prototype.getTenantId = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.GetDevicesSummaryRequest.prototype.setTenantId = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.GetDevicesSummaryResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.GetDevicesSummaryResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.GetDevicesSummaryResponse.displayName = 'proto.api.GetDevicesSummaryResponse';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.GetDevicesSummaryResponse} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.GetDevicesSummaryResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    activeCount: msg.getActiveCount(),
    inactiveCount: msg.getInactiveCount(),
    drCountMap: (f = msg.getDrCountMap(true)) ? f.toArray() : [],
    neverSeenCount: msg.getNeverSeenCount()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.GetDevicesSummaryResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.GetDevicesSummaryResponse}
 */
proto.api.GetDevicesSummaryResponse.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setActiveCount(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setInactiveCount(value);
      break;
    case 3:
      var value = msg.getDrCountMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readUint32, jspb.BinaryReader.prototype.readUint32);
         });
      break;
    case 4:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setNeverSeenCount(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.GetDevicesSummaryResponse} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GetDevicesSummaryResponse.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GetDevicesSummaryResponse.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getActiveCount();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = this.getInactiveCount();
  if (f !== 0) {
    writer.writeUint32(
      2,
      f
    );
  }
  f = this.getDrCountMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeUint32, jspb.BinaryWriter.prototype.writeUint32);
  }
  f = this.getNeverSeenCount();
  if (f !== 0) {
    writer.writeUint32(
      4,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.GetDevicesSummaryResponse} The clone.
 */
proto.api.GetDevicesSummaryResponse.prototype.cloneMessage = function() {
  return /** @type {!proto.api.GetDevicesSummaryResponse} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional uint32 active_count = 1;
 * @return {number}
 */
proto.api.GetDevicesSummaryResponse.prototype.getActiveCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0));
};


/** @param {number} value  */
proto.api.GetDevicesSummaryResponse.prototype.setActiveCount = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional uint32 inactive_count = 2;
 * @return {number}
 */
proto.api.GetDevicesSummaryResponse.prototype.getInactiveCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0));
};


/** @param {number} value  */
proto.api.GetDevicesSummaryResponse.prototype.setInactiveCount = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * map<uint32, uint32> dr_count = 3;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<number,number>}
 */
proto.api.GetDevicesSummaryResponse.prototype.getDrCountMap = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<number,number>} */ (
      jspb.Message.getMapField(this, 3, opt_noLazyCreate,
      null));
};


/**
 * optional uint32 never_seen_count = 4;
 * @return {number}
 */
proto.api.GetDevicesSummaryResponse.prototype.getNeverSeenCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 4, 0));
};


/** @param {number} value  */
proto.api.GetDevicesSummaryResponse.prototype.setNeverSeenCount = function(value) {
  jspb.Message.setField(this, 4, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.GetGatewaysSummaryRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.GetGatewaysSummaryRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.GetGatewaysSummaryRequest.displayName = 'proto.api.GetGatewaysSummaryRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.GetGatewaysSummaryRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.GetGatewaysSummaryRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    tenantId: msg.getTenantId()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.GetGatewaysSummaryRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.GetGatewaysSummaryRequest}
 */
proto.api.GetGatewaysSummaryRequest.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.setTenantId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.GetGatewaysSummaryRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GetGatewaysSummaryRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GetGatewaysSummaryRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getTenantId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.GetGatewaysSummaryRequest} The clone.
 */
proto.api.GetGatewaysSummaryRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.GetGatewaysSummaryRequest} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string tenant_id = 1;
 * @return {string}
 */
proto.api.GetGatewaysSummaryRequest.prototype.getTenantId = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.GetGatewaysSummaryRequest.prototype.setTenantId = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.GetGatewaysSummaryResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.GetGatewaysSummaryResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.GetGatewaysSummaryResponse.displayName = 'proto.api.GetGatewaysSummaryResponse';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.GetGatewaysSummaryResponse} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.GetGatewaysSummaryResponse.toObject = function(includeInstance, msg) {
  var f, obj = {
    activeCount: msg.getActiveCount(),
    inactiveCount: msg.getInactiveCount(),
    neverSeenCount: msg.getNeverSeenCount()
  };

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


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


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


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.GetGatewaysSummaryResponse} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GetGatewaysSummaryResponse.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.GetGatewaysSummaryResponse.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getActiveCount();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = this.getInactiveCount();
  if (f !== 0) {
    writer.writeUint32(
      2,
      f
    );
  }
  f = this.getNeverSeenCount();
  if (f !== 0) {
    writer.writeUint32(
      3,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.GetGatewaysSummaryResponse} The clone.
 */
proto.api.GetGatewaysSummaryResponse.prototype.cloneMessage = function() {
  return /** @type {!proto.api.GetGatewaysSummaryResponse} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional uint32 active_count = 1;
 * @return {number}
 */
proto.api.GetGatewaysSummaryResponse.prototype.getActiveCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0));
};


/** @param {number} value  */
proto.api.GetGatewaysSummaryResponse.prototype.setActiveCount = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional uint32 inactive_count = 2;
 * @return {number}
 */
proto.api.GetGatewaysSummaryResponse.prototype.getInactiveCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0));
};


/** @param {number} value  */
proto.api.GetGatewaysSummaryResponse.prototype.setInactiveCount = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional uint32 never_seen_count = 3;
 * @return {number}
 */
proto.api.GetGatewaysSummaryResponse.prototype.getNeverSeenCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 3, 0));
};


/** @param {number} value  */
proto.api.GetGatewaysSummaryResponse.prototype.setNeverSeenCount = function(value) {
  jspb.Message.setField(this, 3, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.LogItem = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.LogItem, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.LogItem.displayName = 'proto.api.LogItem';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.LogItem} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.LogItem.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: msg.getId(),
    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    description: msg.getDescription(),
    body: msg.getBody(),
    propertiesMap: (f = msg.getPropertiesMap(true)) ? f.toArray() : []
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.LogItem} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.LogItem}
 */
proto.api.LogItem.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setId(value);
      break;
    case 2:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setTime(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setDescription(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setBody(value);
      break;
    case 5:
      var value = msg.getPropertiesMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString);
         });
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.LogItem} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.LogItem.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.LogItem.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = this.getTime();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = this.getDescription();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = this.getBody();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = this.getPropertiesMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.LogItem} The clone.
 */
proto.api.LogItem.prototype.cloneMessage = function() {
  return /** @type {!proto.api.LogItem} */ (jspb.Message.cloneMessage(this));
};


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


/** @param {string} value  */
proto.api.LogItem.prototype.setId = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional google.protobuf.Timestamp time = 2;
 * @return {proto.google.protobuf.Timestamp}
 */
proto.api.LogItem.prototype.getTime = function() {
  return /** @type{proto.google.protobuf.Timestamp} */ (
    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));
};


/** @param {proto.google.protobuf.Timestamp|undefined} value  */
proto.api.LogItem.prototype.setTime = function(value) {
  jspb.Message.setWrapperField(this, 2, value);
};


proto.api.LogItem.prototype.clearTime = function() {
  this.setTime(undefined);
};


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


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


/** @param {string} value  */
proto.api.LogItem.prototype.setDescription = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional string body = 4;
 * @return {string}
 */
proto.api.LogItem.prototype.getBody = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 4, ""));
};


/** @param {string} value  */
proto.api.LogItem.prototype.setBody = function(value) {
  jspb.Message.setField(this, 4, value);
};


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



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.StreamGatewayFramesRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.StreamGatewayFramesRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.StreamGatewayFramesRequest.displayName = 'proto.api.StreamGatewayFramesRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.StreamGatewayFramesRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.StreamGatewayFramesRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    gatewayId: msg.getGatewayId()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.StreamGatewayFramesRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.StreamGatewayFramesRequest}
 */
proto.api.StreamGatewayFramesRequest.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.setGatewayId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.StreamGatewayFramesRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.StreamGatewayFramesRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.StreamGatewayFramesRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getGatewayId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.StreamGatewayFramesRequest} The clone.
 */
proto.api.StreamGatewayFramesRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.StreamGatewayFramesRequest} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string gateway_id = 1;
 * @return {string}
 */
proto.api.StreamGatewayFramesRequest.prototype.getGatewayId = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.StreamGatewayFramesRequest.prototype.setGatewayId = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.StreamDeviceFramesRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.StreamDeviceFramesRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.StreamDeviceFramesRequest.displayName = 'proto.api.StreamDeviceFramesRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.StreamDeviceFramesRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.StreamDeviceFramesRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    devEui: msg.getDevEui()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.StreamDeviceFramesRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.StreamDeviceFramesRequest}
 */
proto.api.StreamDeviceFramesRequest.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.setDevEui(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.StreamDeviceFramesRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.StreamDeviceFramesRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.StreamDeviceFramesRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getDevEui();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.StreamDeviceFramesRequest} The clone.
 */
proto.api.StreamDeviceFramesRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.StreamDeviceFramesRequest} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string dev_eui = 1;
 * @return {string}
 */
proto.api.StreamDeviceFramesRequest.prototype.getDevEui = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.StreamDeviceFramesRequest.prototype.setDevEui = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.api.StreamDeviceEventsRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.StreamDeviceEventsRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.api.StreamDeviceEventsRequest.displayName = 'proto.api.StreamDeviceEventsRequest';
}


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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.StreamDeviceEventsRequest} msg The msg instance to transform.
 * @return {!Object}
 */
proto.api.StreamDeviceEventsRequest.toObject = function(includeInstance, msg) {
  var f, obj = {
    devEui: msg.getDevEui()
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.StreamDeviceEventsRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.StreamDeviceEventsRequest}
 */
proto.api.StreamDeviceEventsRequest.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.setDevEui(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Class method variant: serializes the given message to binary data
 * (in protobuf wire format), writing to the given BinaryWriter.
 * @param {!proto.api.StreamDeviceEventsRequest} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.StreamDeviceEventsRequest.serializeBinaryToWriter = function(message, writer) {
  message.serializeBinaryToWriter(writer);
};


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


/**
 * Serializes the message to binary data (in protobuf wire format),
 * writing to the given BinaryWriter.
 * @param {!jspb.BinaryWriter} writer
 */
proto.api.StreamDeviceEventsRequest.prototype.serializeBinaryToWriter = function (writer) {
  var f = undefined;
  f = this.getDevEui();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * Creates a deep clone of this proto. No data is shared with the original.
 * @return {!proto.api.StreamDeviceEventsRequest} The clone.
 */
proto.api.StreamDeviceEventsRequest.prototype.cloneMessage = function() {
  return /** @type {!proto.api.StreamDeviceEventsRequest} */ (jspb.Message.cloneMessage(this));
};


/**
 * optional string dev_eui = 1;
 * @return {string}
 */
proto.api.StreamDeviceEventsRequest.prototype.getDevEui = function() {
  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
};


/** @param {string} value  */
proto.api.StreamDeviceEventsRequest.prototype.setDevEui = function(value) {
  jspb.Message.setField(this, 1, value);
};


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