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

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

var google_api_annotations_pb = require('../google/api/annotations_pb.js');
goog.object.extend(proto, google_api_annotations_pb);
var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');
goog.object.extend(proto, google_protobuf_timestamp_pb);
var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');
goog.object.extend(proto, google_protobuf_empty_pb);
var common_common_pb = require('../common/common_pb.js');
goog.object.extend(proto, common_common_pb);
var api_device_profile_pb = require('../api/device_profile_pb.js');
goog.object.extend(proto, api_device_profile_pb);
goog.exportSymbol('proto.api.CreateDeviceProfileTemplateRequest', null, global);
goog.exportSymbol('proto.api.DeleteDeviceProfileTemplateRequest', null, global);
goog.exportSymbol('proto.api.DeviceProfileTemplate', null, global);
goog.exportSymbol('proto.api.DeviceProfileTemplateListItem', null, global);
goog.exportSymbol('proto.api.GetDeviceProfileTemplateRequest', null, global);
goog.exportSymbol('proto.api.GetDeviceProfileTemplateResponse', null, global);
goog.exportSymbol('proto.api.ListDeviceProfileTemplatesRequest', null, global);
goog.exportSymbol('proto.api.ListDeviceProfileTemplatesResponse', null, global);
goog.exportSymbol('proto.api.UpdateDeviceProfileTemplateRequest', 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.DeviceProfileTemplate = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.DeviceProfileTemplate, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.api.DeviceProfileTemplate.displayName = 'proto.api.DeviceProfileTemplate';
}
/**
 * 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.DeviceProfileTemplateListItem = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.DeviceProfileTemplateListItem, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.api.DeviceProfileTemplateListItem.displayName = 'proto.api.DeviceProfileTemplateListItem';
}
/**
 * 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.CreateDeviceProfileTemplateRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.CreateDeviceProfileTemplateRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.api.CreateDeviceProfileTemplateRequest.displayName = 'proto.api.CreateDeviceProfileTemplateRequest';
}
/**
 * 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.GetDeviceProfileTemplateRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.GetDeviceProfileTemplateRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.api.GetDeviceProfileTemplateRequest.displayName = 'proto.api.GetDeviceProfileTemplateRequest';
}
/**
 * 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.GetDeviceProfileTemplateResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.GetDeviceProfileTemplateResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.api.GetDeviceProfileTemplateResponse.displayName = 'proto.api.GetDeviceProfileTemplateResponse';
}
/**
 * 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.UpdateDeviceProfileTemplateRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.UpdateDeviceProfileTemplateRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.api.UpdateDeviceProfileTemplateRequest.displayName = 'proto.api.UpdateDeviceProfileTemplateRequest';
}
/**
 * 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.DeleteDeviceProfileTemplateRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.DeleteDeviceProfileTemplateRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.api.DeleteDeviceProfileTemplateRequest.displayName = 'proto.api.DeleteDeviceProfileTemplateRequest';
}
/**
 * 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.ListDeviceProfileTemplatesRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.api.ListDeviceProfileTemplatesRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.api.ListDeviceProfileTemplatesRequest.displayName = 'proto.api.ListDeviceProfileTemplatesRequest';
}
/**
 * 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.ListDeviceProfileTemplatesResponse = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.api.ListDeviceProfileTemplatesResponse.repeatedFields_, null);
};
goog.inherits(proto.api.ListDeviceProfileTemplatesResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.api.ListDeviceProfileTemplatesResponse.displayName = 'proto.api.ListDeviceProfileTemplatesResponse';
}



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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.DeviceProfileTemplate} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.api.DeviceProfileTemplate.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, ""),
    name: jspb.Message.getFieldWithDefault(msg, 2, ""),
    description: jspb.Message.getFieldWithDefault(msg, 3, ""),
    vendor: jspb.Message.getFieldWithDefault(msg, 4, ""),
    firmware: jspb.Message.getFieldWithDefault(msg, 5, ""),
    region: jspb.Message.getFieldWithDefault(msg, 6, 0),
    macVersion: jspb.Message.getFieldWithDefault(msg, 7, 0),
    regParamsRevision: jspb.Message.getFieldWithDefault(msg, 8, 0),
    adrAlgorithmId: jspb.Message.getFieldWithDefault(msg, 9, ""),
    payloadCodecRuntime: jspb.Message.getFieldWithDefault(msg, 10, 0),
    payloadCodecScript: jspb.Message.getFieldWithDefault(msg, 11, ""),
    flushQueueOnActivate: jspb.Message.getBooleanFieldWithDefault(msg, 12, false),
    uplinkInterval: jspb.Message.getFieldWithDefault(msg, 13, 0),
    deviceStatusReqInterval: jspb.Message.getFieldWithDefault(msg, 14, 0),
    supportsOtaa: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),
    supportsClassB: jspb.Message.getBooleanFieldWithDefault(msg, 16, false),
    supportsClassC: jspb.Message.getBooleanFieldWithDefault(msg, 17, false),
    classBTimeout: jspb.Message.getFieldWithDefault(msg, 18, 0),
    classBPingSlotNbK: jspb.Message.getFieldWithDefault(msg, 19, 0),
    classBPingSlotDr: jspb.Message.getFieldWithDefault(msg, 20, 0),
    classBPingSlotFreq: jspb.Message.getFieldWithDefault(msg, 21, 0),
    classCTimeout: jspb.Message.getFieldWithDefault(msg, 22, 0),
    abpRx1Delay: jspb.Message.getFieldWithDefault(msg, 23, 0),
    abpRx1DrOffset: jspb.Message.getFieldWithDefault(msg, 24, 0),
    abpRx2Dr: jspb.Message.getFieldWithDefault(msg, 25, 0),
    abpRx2Freq: jspb.Message.getFieldWithDefault(msg, 26, 0),
    tagsMap: (f = msg.getTagsMap()) ? f.toObject(includeInstance, undefined) : [],
    measurementsMap: (f = msg.getMeasurementsMap()) ? f.toObject(includeInstance, proto.api.Measurement.toObject) : [],
    autoDetectMeasurements: jspb.Message.getBooleanFieldWithDefault(msg, 29, false)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.DeviceProfileTemplate} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.DeviceProfileTemplate}
 */
proto.api.DeviceProfileTemplate.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 {string} */ (reader.readString());
      msg.setDescription(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setVendor(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setFirmware(value);
      break;
    case 6:
      var value = /** @type {!proto.common.Region} */ (reader.readEnum());
      msg.setRegion(value);
      break;
    case 7:
      var value = /** @type {!proto.common.MacVersion} */ (reader.readEnum());
      msg.setMacVersion(value);
      break;
    case 8:
      var value = /** @type {!proto.common.RegParamsRevision} */ (reader.readEnum());
      msg.setRegParamsRevision(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setAdrAlgorithmId(value);
      break;
    case 10:
      var value = /** @type {!proto.api.CodecRuntime} */ (reader.readEnum());
      msg.setPayloadCodecRuntime(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.setPayloadCodecScript(value);
      break;
    case 12:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setFlushQueueOnActivate(value);
      break;
    case 13:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setUplinkInterval(value);
      break;
    case 14:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setDeviceStatusReqInterval(value);
      break;
    case 15:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setSupportsOtaa(value);
      break;
    case 16:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setSupportsClassB(value);
      break;
    case 17:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setSupportsClassC(value);
      break;
    case 18:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setClassBTimeout(value);
      break;
    case 19:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setClassBPingSlotNbK(value);
      break;
    case 20:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setClassBPingSlotDr(value);
      break;
    case 21:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setClassBPingSlotFreq(value);
      break;
    case 22:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setClassCTimeout(value);
      break;
    case 23:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setAbpRx1Delay(value);
      break;
    case 24:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setAbpRx1DrOffset(value);
      break;
    case 25:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setAbpRx2Dr(value);
      break;
    case 26:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setAbpRx2Freq(value);
      break;
    case 27:
      var value = msg.getTagsMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
         });
      break;
    case 28:
      var value = msg.getMeasurementsMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.api.Measurement.deserializeBinaryFromReader, "", new proto.api.Measurement());
         });
      break;
    case 29:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setAutoDetectMeasurements(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.api.DeviceProfileTemplate} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.api.DeviceProfileTemplate.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getDescription();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getVendor();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getFirmware();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getRegion();
  if (f !== 0.0) {
    writer.writeEnum(
      6,
      f
    );
  }
  f = message.getMacVersion();
  if (f !== 0.0) {
    writer.writeEnum(
      7,
      f
    );
  }
  f = message.getRegParamsRevision();
  if (f !== 0.0) {
    writer.writeEnum(
      8,
      f
    );
  }
  f = message.getAdrAlgorithmId();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getPayloadCodecRuntime();
  if (f !== 0.0) {
    writer.writeEnum(
      10,
      f
    );
  }
  f = message.getPayloadCodecScript();
  if (f.length > 0) {
    writer.writeString(
      11,
      f
    );
  }
  f = message.getFlushQueueOnActivate();
  if (f) {
    writer.writeBool(
      12,
      f
    );
  }
  f = message.getUplinkInterval();
  if (f !== 0) {
    writer.writeUint32(
      13,
      f
    );
  }
  f = message.getDeviceStatusReqInterval();
  if (f !== 0) {
    writer.writeUint32(
      14,
      f
    );
  }
  f = message.getSupportsOtaa();
  if (f) {
    writer.writeBool(
      15,
      f
    );
  }
  f = message.getSupportsClassB();
  if (f) {
    writer.writeBool(
      16,
      f
    );
  }
  f = message.getSupportsClassC();
  if (f) {
    writer.writeBool(
      17,
      f
    );
  }
  f = message.getClassBTimeout();
  if (f !== 0) {
    writer.writeUint32(
      18,
      f
    );
  }
  f = message.getClassBPingSlotNbK();
  if (f !== 0) {
    writer.writeUint32(
      19,
      f
    );
  }
  f = message.getClassBPingSlotDr();
  if (f !== 0) {
    writer.writeUint32(
      20,
      f
    );
  }
  f = message.getClassBPingSlotFreq();
  if (f !== 0) {
    writer.writeUint32(
      21,
      f
    );
  }
  f = message.getClassCTimeout();
  if (f !== 0) {
    writer.writeUint32(
      22,
      f
    );
  }
  f = message.getAbpRx1Delay();
  if (f !== 0) {
    writer.writeUint32(
      23,
      f
    );
  }
  f = message.getAbpRx1DrOffset();
  if (f !== 0) {
    writer.writeUint32(
      24,
      f
    );
  }
  f = message.getAbpRx2Dr();
  if (f !== 0) {
    writer.writeUint32(
      25,
      f
    );
  }
  f = message.getAbpRx2Freq();
  if (f !== 0) {
    writer.writeUint32(
      26,
      f
    );
  }
  f = message.getTagsMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(27, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
  }
  f = message.getMeasurementsMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(28, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.api.Measurement.serializeBinaryToWriter);
  }
  f = message.getAutoDetectMeasurements();
  if (f) {
    writer.writeBool(
      29,
      f
    );
  }
};


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


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


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


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


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


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


/**
 * optional string vendor = 4;
 * @return {string}
 */
proto.api.DeviceProfileTemplate.prototype.getVendor = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


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


/**
 * optional string firmware = 5;
 * @return {string}
 */
proto.api.DeviceProfileTemplate.prototype.getFirmware = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


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


/**
 * optional common.Region region = 6;
 * @return {!proto.common.Region}
 */
proto.api.DeviceProfileTemplate.prototype.getRegion = function() {
  return /** @type {!proto.common.Region} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {!proto.common.Region} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setRegion = function(value) {
  return jspb.Message.setProto3EnumField(this, 6, value);
};


/**
 * optional common.MacVersion mac_version = 7;
 * @return {!proto.common.MacVersion}
 */
proto.api.DeviceProfileTemplate.prototype.getMacVersion = function() {
  return /** @type {!proto.common.MacVersion} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};


/**
 * @param {!proto.common.MacVersion} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setMacVersion = function(value) {
  return jspb.Message.setProto3EnumField(this, 7, value);
};


/**
 * optional common.RegParamsRevision reg_params_revision = 8;
 * @return {!proto.common.RegParamsRevision}
 */
proto.api.DeviceProfileTemplate.prototype.getRegParamsRevision = function() {
  return /** @type {!proto.common.RegParamsRevision} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};


/**
 * @param {!proto.common.RegParamsRevision} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setRegParamsRevision = function(value) {
  return jspb.Message.setProto3EnumField(this, 8, value);
};


/**
 * optional string adr_algorithm_id = 9;
 * @return {string}
 */
proto.api.DeviceProfileTemplate.prototype.getAdrAlgorithmId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


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


/**
 * optional CodecRuntime payload_codec_runtime = 10;
 * @return {!proto.api.CodecRuntime}
 */
proto.api.DeviceProfileTemplate.prototype.getPayloadCodecRuntime = function() {
  return /** @type {!proto.api.CodecRuntime} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
};


/**
 * @param {!proto.api.CodecRuntime} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setPayloadCodecRuntime = function(value) {
  return jspb.Message.setProto3EnumField(this, 10, value);
};


/**
 * optional string payload_codec_script = 11;
 * @return {string}
 */
proto.api.DeviceProfileTemplate.prototype.getPayloadCodecScript = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, ""));
};


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


/**
 * optional bool flush_queue_on_activate = 12;
 * @return {boolean}
 */
proto.api.DeviceProfileTemplate.prototype.getFlushQueueOnActivate = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false));
};


/**
 * @param {boolean} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setFlushQueueOnActivate = function(value) {
  return jspb.Message.setProto3BooleanField(this, 12, value);
};


/**
 * optional uint32 uplink_interval = 13;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getUplinkInterval = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 13, 0));
};


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


/**
 * optional uint32 device_status_req_interval = 14;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getDeviceStatusReqInterval = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 14, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setDeviceStatusReqInterval = function(value) {
  return jspb.Message.setProto3IntField(this, 14, value);
};


/**
 * optional bool supports_otaa = 15;
 * @return {boolean}
 */
proto.api.DeviceProfileTemplate.prototype.getSupportsOtaa = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));
};


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


/**
 * optional bool supports_class_b = 16;
 * @return {boolean}
 */
proto.api.DeviceProfileTemplate.prototype.getSupportsClassB = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 16, false));
};


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


/**
 * optional bool supports_class_c = 17;
 * @return {boolean}
 */
proto.api.DeviceProfileTemplate.prototype.getSupportsClassC = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 17, false));
};


/**
 * @param {boolean} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setSupportsClassC = function(value) {
  return jspb.Message.setProto3BooleanField(this, 17, value);
};


/**
 * optional uint32 class_b_timeout = 18;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getClassBTimeout = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 18, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setClassBTimeout = function(value) {
  return jspb.Message.setProto3IntField(this, 18, value);
};


/**
 * optional uint32 class_b_ping_slot_nb_k = 19;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getClassBPingSlotNbK = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 19, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setClassBPingSlotNbK = function(value) {
  return jspb.Message.setProto3IntField(this, 19, value);
};


/**
 * optional uint32 class_b_ping_slot_dr = 20;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getClassBPingSlotDr = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setClassBPingSlotDr = function(value) {
  return jspb.Message.setProto3IntField(this, 20, value);
};


/**
 * optional uint32 class_b_ping_slot_freq = 21;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getClassBPingSlotFreq = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setClassBPingSlotFreq = function(value) {
  return jspb.Message.setProto3IntField(this, 21, value);
};


/**
 * optional uint32 class_c_timeout = 22;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getClassCTimeout = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 22, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setClassCTimeout = function(value) {
  return jspb.Message.setProto3IntField(this, 22, value);
};


/**
 * optional uint32 abp_rx1_delay = 23;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getAbpRx1Delay = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 23, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setAbpRx1Delay = function(value) {
  return jspb.Message.setProto3IntField(this, 23, value);
};


/**
 * optional uint32 abp_rx1_dr_offset = 24;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getAbpRx1DrOffset = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setAbpRx1DrOffset = function(value) {
  return jspb.Message.setProto3IntField(this, 24, value);
};


/**
 * optional uint32 abp_rx2_dr = 25;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getAbpRx2Dr = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setAbpRx2Dr = function(value) {
  return jspb.Message.setProto3IntField(this, 25, value);
};


/**
 * optional uint32 abp_rx2_freq = 26;
 * @return {number}
 */
proto.api.DeviceProfileTemplate.prototype.getAbpRx2Freq = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 26, 0));
};


/**
 * @param {number} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setAbpRx2Freq = function(value) {
  return jspb.Message.setProto3IntField(this, 26, value);
};


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


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


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


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


/**
 * optional bool auto_detect_measurements = 29;
 * @return {boolean}
 */
proto.api.DeviceProfileTemplate.prototype.getAutoDetectMeasurements = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 29, false));
};


/**
 * @param {boolean} value
 * @return {!proto.api.DeviceProfileTemplate} returns this
 */
proto.api.DeviceProfileTemplate.prototype.setAutoDetectMeasurements = function(value) {
  return jspb.Message.setProto3BooleanField(this, 29, value);
};





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


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.api.DeviceProfileTemplateListItem} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.api.DeviceProfileTemplateListItem.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, ""),
    createdAt: (f = msg.getCreatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    updatedAt: (f = msg.getUpdatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),
    name: jspb.Message.getFieldWithDefault(msg, 4, ""),
    vendor: jspb.Message.getFieldWithDefault(msg, 5, ""),
    firmware: jspb.Message.getFieldWithDefault(msg, 6, ""),
    region: jspb.Message.getFieldWithDefault(msg, 7, 0),
    macVersion: jspb.Message.getFieldWithDefault(msg, 8, 0),
    regParamsRevision: jspb.Message.getFieldWithDefault(msg, 9, 0),
    supportsOtaa: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
    supportsClassB: jspb.Message.getBooleanFieldWithDefault(msg, 11, false),
    supportsClassC: jspb.Message.getBooleanFieldWithDefault(msg, 12, false)
  };

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


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


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.api.DeviceProfileTemplateListItem} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.api.DeviceProfileTemplateListItem}
 */
proto.api.DeviceProfileTemplateListItem.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.setCreatedAt(value);
      break;
    case 3:
      var value = new google_protobuf_timestamp_pb.Timestamp;
      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);
      msg.setUpdatedAt(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setVendor(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setFirmware(value);
      break;
    case 7:
      var value = /** @type {!proto.common.Region} */ (reader.readEnum());
      msg.setRegion(value);
      break;
    case 8:
      var value = /** @type {!proto.common.MacVersion} */ (reader.readEnum());
      msg.setMacVersion(value);
      break;
    case 9:
      var value = /** @type {!proto.common.RegParamsRevision} */ (reader.readEnum());
      msg.setRegParamsRevision(value);
      break;
    case 10:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setSupportsOtaa(value);
      break;
    case 11:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setSupportsClassB(value);
      break;
    case 12:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setSupportsClassC(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.api.DeviceProfileTemplateListItem} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.api.DeviceProfileTemplateListItem.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getCreatedAt();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getUpdatedAt();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getVendor();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getFirmware();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getRegion();
  if (f !== 0.0) {
    writer.writeEnum(
      7,
      f
    );
  }
  f = message.getMacVersion();
  if (f !== 0.0) {
    writer.writeEnum(
      8,
      f
    );
  }
  f = message.getRegParamsRevision();
  if (f !== 0.0) {
    writer.writeEnum(
      9,
      f
    );
  }
  f = message.getSupportsOtaa();
  if (f) {
    writer.writeBool(
      10,
      f
    );
  }
  f = message.getSupportsClassB();
  if (f) {
    writer.writeBool(
      11,
      f
    );
  }
  f = message.getSupportsClassC();
  if (f) {
    writer.writeBool(
      12,
      f
    );
  }
};


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


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


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


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


/**
 * Clears the message field making it undefined.
 * @return {!proto.api.DeviceProfileTemplateListItem} returns this
 */
proto.api.DeviceProfileTemplateListItem.prototype.clearCreatedAt = function() {
  return this.setCreatedAt(undefined);
};


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


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


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


/**
 * Clears the message field making it undefined.
 * @return {!proto.api.DeviceProfileTemplateListItem} returns this
 */
proto.api.DeviceProfileTemplateListItem.prototype.clearUpdatedAt = function() {
  return this.setUpdatedAt(undefined);
};


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


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


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


/**
 * optional string vendor = 5;
 * @return {string}
 */
proto.api.DeviceProfileTemplateListItem.prototype.getVendor = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


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


/**
 * optional string firmware = 6;
 * @return {string}
 */
proto.api.DeviceProfileTemplateListItem.prototype.getFirmware = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


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


/**
 * optional common.Region region = 7;
 * @return {!proto.common.Region}
 */
proto.api.DeviceProfileTemplateListItem.prototype.getRegion = function() {
  return /** @type {!proto.common.Region} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};


/**
 * @param {!proto.common.Region} value
 * @return {!proto.api.DeviceProfileTemplateListItem} returns this
 */
proto.api.DeviceProfileTemplateListItem.prototype.setRegion = function(value) {
  return jspb.Message.setProto3EnumField(this, 7, value);
};


/**
 * optional common.MacVersion mac_version = 8;
 * @return {!proto.common.MacVersion}
 */
proto.api.DeviceProfileTemplateListItem.prototype.getMacVersion = function() {
  return /** @type {!proto.common.MacVersion} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};


/**
 * @param {!proto.common.MacVersion} value
 * @return {!proto.api.DeviceProfileTemplateListItem} returns this
 */
proto.api.DeviceProfileTemplateListItem.prototype.setMacVersion = function(value) {
  return jspb.Message.setProto3EnumField(this, 8, value);
};


/**
 * optional common.RegParamsRevision reg_params_revision = 9;
 * @return {!proto.common.RegParamsRevision}
 */
proto.api.DeviceProfileTemplateListItem.prototype.getRegParamsRevision = function() {
  return /** @type {!proto.common.RegParamsRevision} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
};


/**
 * @param {!proto.common.RegParamsRevision} value
 * @return {!proto.api.DeviceProfileTemplateListItem} returns this
 */
proto.api.DeviceProfileTemplateListItem.prototype.setRegParamsRevision = function(value) {
  return jspb.Message.setProto3EnumField(this, 9, value);
};


/**
 * optional bool supports_otaa = 10;
 * @return {boolean}
 */
proto.api.DeviceProfileTemplateListItem.prototype.getSupportsOtaa = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false));
};


/**
 * @param {boolean} value
 * @return {!proto.api.DeviceProfileTemplateListItem} returns this
 */
proto.api.DeviceProfileTemplateListItem.prototype.setSupportsOtaa = function(value) {
  return jspb.Message.setProto3BooleanField(this, 10, value);
};


/**
 * optional bool supports_class_b = 11;
 * @return {boolean}
 */
proto.api.DeviceProfileTemplateListItem.prototype.getSupportsClassB = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false));
};


/**
 * @param {boolean} value
 * @return {!proto.api.DeviceProfileTemplateListItem} returns this
 */
proto.api.DeviceProfileTemplateListItem.prototype.setSupportsClassB = function(value) {
  return jspb.Message.setProto3BooleanField(this, 11, value);
};


/**
 * optional bool supports_class_c = 12;
 * @return {boolean}
 */
proto.api.DeviceProfileTemplateListItem.prototype.getSupportsClassC = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false));
};


/**
 * @param {boolean} value
 * @return {!proto.api.DeviceProfileTemplateListItem} returns this
 */
proto.api.DeviceProfileTemplateListItem.prototype.setSupportsClassC = function(value) {
  return jspb.Message.setProto3BooleanField(this, 12, value);
};





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


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


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


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


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


/**
 * optional DeviceProfileTemplate device_profile_template = 1;
 * @return {?proto.api.DeviceProfileTemplate}
 */
proto.api.CreateDeviceProfileTemplateRequest.prototype.getDeviceProfileTemplate = function() {
  return /** @type{?proto.api.DeviceProfileTemplate} */ (
    jspb.Message.getWrapperField(this, proto.api.DeviceProfileTemplate, 1));
};


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


/**
 * Clears the message field making it undefined.
 * @return {!proto.api.CreateDeviceProfileTemplateRequest} returns this
 */
proto.api.CreateDeviceProfileTemplateRequest.prototype.clearDeviceProfileTemplate = function() {
  return this.setDeviceProfileTemplate(undefined);
};


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





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


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

  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.GetDeviceProfileTemplateRequest}
 */
proto.api.GetDeviceProfileTemplateRequest.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.api.GetDeviceProfileTemplateRequest;
  return proto.api.GetDeviceProfileTemplateRequest.deserializeBinaryFromReader(msg, reader);
};


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


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


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


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


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





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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.api.GetDeviceProfileTemplateResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.api.GetDeviceProfileTemplateResponse.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getDeviceProfileTemplate();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.api.DeviceProfileTemplate.serializeBinaryToWriter
    );
  }
  f = message.getCreatedAt();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
  f = message.getUpdatedAt();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter
    );
  }
};


/**
 * optional DeviceProfileTemplate device_profile_template = 1;
 * @return {?proto.api.DeviceProfileTemplate}
 */
proto.api.GetDeviceProfileTemplateResponse.prototype.getDeviceProfileTemplate = function() {
  return /** @type{?proto.api.DeviceProfileTemplate} */ (
    jspb.Message.getWrapperField(this, proto.api.DeviceProfileTemplate, 1));
};


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


/**
 * Clears the message field making it undefined.
 * @return {!proto.api.GetDeviceProfileTemplateResponse} returns this
 */
proto.api.GetDeviceProfileTemplateResponse.prototype.clearDeviceProfileTemplate = function() {
  return this.setDeviceProfileTemplate(undefined);
};


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


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


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


/**
 * Clears the message field making it undefined.
 * @return {!proto.api.GetDeviceProfileTemplateResponse} returns this
 */
proto.api.GetDeviceProfileTemplateResponse.prototype.clearCreatedAt = function() {
  return this.setCreatedAt(undefined);
};


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


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


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


/**
 * Clears the message field making it undefined.
 * @return {!proto.api.GetDeviceProfileTemplateResponse} returns this
 */
proto.api.GetDeviceProfileTemplateResponse.prototype.clearUpdatedAt = function() {
  return this.setUpdatedAt(undefined);
};


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





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


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


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


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


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


/**
 * optional DeviceProfileTemplate device_profile_template = 1;
 * @return {?proto.api.DeviceProfileTemplate}
 */
proto.api.UpdateDeviceProfileTemplateRequest.prototype.getDeviceProfileTemplate = function() {
  return /** @type{?proto.api.DeviceProfileTemplate} */ (
    jspb.Message.getWrapperField(this, proto.api.DeviceProfileTemplate, 1));
};


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


/**
 * Clears the message field making it undefined.
 * @return {!proto.api.UpdateDeviceProfileTemplateRequest} returns this
 */
proto.api.UpdateDeviceProfileTemplateRequest.prototype.clearDeviceProfileTemplate = function() {
  return this.setDeviceProfileTemplate(undefined);
};


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





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


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

  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.DeleteDeviceProfileTemplateRequest}
 */
proto.api.DeleteDeviceProfileTemplateRequest.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.api.DeleteDeviceProfileTemplateRequest;
  return proto.api.DeleteDeviceProfileTemplateRequest.deserializeBinaryFromReader(msg, reader);
};


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


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


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


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


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





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


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

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


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


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


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


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.api.ListDeviceProfileTemplatesRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.api.ListDeviceProfileTemplatesRequest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getLimit();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = message.getOffset();
  if (f !== 0) {
    writer.writeUint32(
      2,
      f
    );
  }
};


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


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


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


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



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



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


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


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


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


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


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


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


/**
 * repeated DeviceProfileTemplateListItem result = 2;
 * @return {!Array<!proto.api.DeviceProfileTemplateListItem>}
 */
proto.api.ListDeviceProfileTemplatesResponse.prototype.getResultList = function() {
  return /** @type{!Array<!proto.api.DeviceProfileTemplateListItem>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.api.DeviceProfileTemplateListItem, 2));
};


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


/**
 * @param {!proto.api.DeviceProfileTemplateListItem=} opt_value
 * @param {number=} opt_index
 * @return {!proto.api.DeviceProfileTemplateListItem}
 */
proto.api.ListDeviceProfileTemplatesResponse.prototype.addResult = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.api.DeviceProfileTemplateListItem, opt_index);
};


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


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