text: /**
   * @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 plugin_pb = require('./plugin_pb.js');
  var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');
  var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js');
  goog.exportSymbol('proto.pulumirpc.CheckFailure', null, global);
  goog.exportSymbol('proto.pulumirpc.CheckRequest', null, global);
  goog.exportSymbol('proto.pulumirpc.CheckResponse', null, global);
  goog.exportSymbol('proto.pulumirpc.ConfigureErrorMissingKeys', null, global);
  goog.exportSymbol('proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey', null, global);
  goog.exportSymbol('proto.pulumirpc.ConfigureRequest', null, global);
  goog.exportSymbol('proto.pulumirpc.CreateRequest', null, global);
  goog.exportSymbol('proto.pulumirpc.CreateResponse', null, global);
  goog.exportSymbol('proto.pulumirpc.DeleteRequest', null, global);
  goog.exportSymbol('proto.pulumirpc.DiffRequest', null, global);
  goog.exportSymbol('proto.pulumirpc.DiffResponse', null, global);
  goog.exportSymbol('proto.pulumirpc.DiffResponse.DiffChanges', null, global);
  goog.exportSymbol('proto.pulumirpc.InvokeRequest', null, global);
  goog.exportSymbol('proto.pulumirpc.InvokeResponse', null, global);
  goog.exportSymbol('proto.pulumirpc.ReadRequest', null, global);
  goog.exportSymbol('proto.pulumirpc.ReadResponse', null, global);
  goog.exportSymbol('proto.pulumirpc.UpdateRequest', null, global);
  goog.exportSymbol('proto.pulumirpc.UpdateResponse', 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.pulumirpc.ConfigureRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.ConfigureRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.ConfigureRequest.displayName = 'proto.pulumirpc.ConfigureRequest';
  }
  
  
  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.pulumirpc.ConfigureRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.ConfigureRequest.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.pulumirpc.ConfigureRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ConfigureRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      variablesMap: (f = msg.getVariablesMap()) ? f.toObject(includeInstance, undefined) : []
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.pulumirpc.ConfigureRequest}
   */
  proto.pulumirpc.ConfigureRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.ConfigureRequest;
    return proto.pulumirpc.ConfigureRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.ConfigureRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.ConfigureRequest}
   */
  proto.pulumirpc.ConfigureRequest.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = msg.getVariablesMap();
        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;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.ConfigureRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.ConfigureRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.ConfigureRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ConfigureRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getVariablesMap(true);
    if (f && f.getLength() > 0) {
      f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
    }
  };
  
  
  /**
   * map<string, string> variables = 1;
   * @param {boolean=} opt_noLazyCreate Do not create the map if
   * empty, instead returning `undefined`
   * @return {!jspb.Map<string,string>}
   */
  proto.pulumirpc.ConfigureRequest.prototype.getVariablesMap = function(opt_noLazyCreate) {
    return /** @type {!jspb.Map<string,string>} */ (
        jspb.Message.getMapField(this, 1, opt_noLazyCreate,
        null));
  };
  
  
  proto.pulumirpc.ConfigureRequest.prototype.clearVariablesMap = function() {
    this.getVariablesMap().clear();
  };
  
  
  
  /**
   * 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.pulumirpc.ConfigureErrorMissingKeys = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.pulumirpc.ConfigureErrorMissingKeys.repeatedFields_, null);
  };
  goog.inherits(proto.pulumirpc.ConfigureErrorMissingKeys, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.ConfigureErrorMissingKeys.displayName = 'proto.pulumirpc.ConfigureErrorMissingKeys';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.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.pulumirpc.ConfigureErrorMissingKeys.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.ConfigureErrorMissingKeys.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.pulumirpc.ConfigureErrorMissingKeys} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.toObject = function(includeInstance, msg) {
    var f, obj = {
      missingkeysList: jspb.Message.toObjectList(msg.getMissingkeysList(),
      proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.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.pulumirpc.ConfigureErrorMissingKeys}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.ConfigureErrorMissingKeys;
    return proto.pulumirpc.ConfigureErrorMissingKeys.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.ConfigureErrorMissingKeys} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.ConfigureErrorMissingKeys}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey;
        reader.readMessage(value,proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.deserializeBinaryFromReader);
        msg.addMissingkeys(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.ConfigureErrorMissingKeys.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.ConfigureErrorMissingKeys} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getMissingkeysList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        1,
        f,
        proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.serializeBinaryToWriter
      );
    }
  };
  
  
  
  /**
   * 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.pulumirpc.ConfigureErrorMissingKeys.MissingKey = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.displayName = 'proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey';
  }
  
  
  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.pulumirpc.ConfigureErrorMissingKeys.MissingKey.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.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.pulumirpc.ConfigureErrorMissingKeys.MissingKey} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.toObject = function(includeInstance, msg) {
    var f, obj = {
      name: jspb.Message.getFieldWithDefault(msg, 1, ""),
      description: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey;
    return proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.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.setName(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setDescription(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getName();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getDescription();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string name = 1;
   * @return {string}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.prototype.getName = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.prototype.setName = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string description = 2;
   * @return {string}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.prototype.getDescription = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey.prototype.setDescription = function(value) {
    jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * repeated MissingKey missingKeys = 1;
   * @return {!Array.<!proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey>}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.prototype.getMissingkeysList = function() {
    return /** @type{!Array.<!proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey, 1));
  };
  
  
  /** @param {!Array.<!proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey>} value */
  proto.pulumirpc.ConfigureErrorMissingKeys.prototype.setMissingkeysList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 1, value);
  };
  
  
  /**
   * @param {!proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey=} opt_value
   * @param {number=} opt_index
   * @return {!proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey}
   */
  proto.pulumirpc.ConfigureErrorMissingKeys.prototype.addMissingkeys = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.pulumirpc.ConfigureErrorMissingKeys.MissingKey, opt_index);
  };
  
  
  proto.pulumirpc.ConfigureErrorMissingKeys.prototype.clearMissingkeysList = function() {
    this.setMissingkeysList([]);
  };
  
  
  
  /**
   * 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.pulumirpc.InvokeRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.InvokeRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.InvokeRequest.displayName = 'proto.pulumirpc.InvokeRequest';
  }
  
  
  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.pulumirpc.InvokeRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.InvokeRequest.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.pulumirpc.InvokeRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.InvokeRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      tok: jspb.Message.getFieldWithDefault(msg, 1, ""),
      args: (f = msg.getArgs()) && google_protobuf_struct_pb.Struct.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.pulumirpc.InvokeRequest}
   */
  proto.pulumirpc.InvokeRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.InvokeRequest;
    return proto.pulumirpc.InvokeRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.InvokeRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.InvokeRequest}
   */
  proto.pulumirpc.InvokeRequest.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.setTok(value);
        break;
      case 2:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setArgs(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.InvokeRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.InvokeRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.InvokeRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.InvokeRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getTok();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getArgs();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string tok = 1;
   * @return {string}
   */
  proto.pulumirpc.InvokeRequest.prototype.getTok = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.InvokeRequest.prototype.setTok = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional google.protobuf.Struct args = 2;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.InvokeRequest.prototype.getArgs = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 2));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.InvokeRequest.prototype.setArgs = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.pulumirpc.InvokeRequest.prototype.clearArgs = function() {
    this.setArgs(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.InvokeRequest.prototype.hasArgs = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.pulumirpc.InvokeResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.pulumirpc.InvokeResponse.repeatedFields_, null);
  };
  goog.inherits(proto.pulumirpc.InvokeResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.InvokeResponse.displayName = 'proto.pulumirpc.InvokeResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.pulumirpc.InvokeResponse.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.pulumirpc.InvokeResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.InvokeResponse.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.pulumirpc.InvokeResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.InvokeResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      pb_return: (f = msg.getReturn()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),
      failuresList: jspb.Message.toObjectList(msg.getFailuresList(),
      proto.pulumirpc.CheckFailure.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.pulumirpc.InvokeResponse}
   */
  proto.pulumirpc.InvokeResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.InvokeResponse;
    return proto.pulumirpc.InvokeResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.InvokeResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.InvokeResponse}
   */
  proto.pulumirpc.InvokeResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setReturn(value);
        break;
      case 2:
        var value = new proto.pulumirpc.CheckFailure;
        reader.readMessage(value,proto.pulumirpc.CheckFailure.deserializeBinaryFromReader);
        msg.addFailures(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.InvokeResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.InvokeResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.InvokeResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.InvokeResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getReturn();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
    f = message.getFailuresList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.pulumirpc.CheckFailure.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional google.protobuf.Struct return = 1;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.InvokeResponse.prototype.getReturn = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 1));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.InvokeResponse.prototype.setReturn = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.pulumirpc.InvokeResponse.prototype.clearReturn = function() {
    this.setReturn(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.InvokeResponse.prototype.hasReturn = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * repeated CheckFailure failures = 2;
   * @return {!Array.<!proto.pulumirpc.CheckFailure>}
   */
  proto.pulumirpc.InvokeResponse.prototype.getFailuresList = function() {
    return /** @type{!Array.<!proto.pulumirpc.CheckFailure>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.pulumirpc.CheckFailure, 2));
  };
  
  
  /** @param {!Array.<!proto.pulumirpc.CheckFailure>} value */
  proto.pulumirpc.InvokeResponse.prototype.setFailuresList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.pulumirpc.CheckFailure=} opt_value
   * @param {number=} opt_index
   * @return {!proto.pulumirpc.CheckFailure}
   */
  proto.pulumirpc.InvokeResponse.prototype.addFailures = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.pulumirpc.CheckFailure, opt_index);
  };
  
  
  proto.pulumirpc.InvokeResponse.prototype.clearFailuresList = function() {
    this.setFailuresList([]);
  };
  
  
  
  /**
   * 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.pulumirpc.CheckRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.CheckRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.CheckRequest.displayName = 'proto.pulumirpc.CheckRequest';
  }
  
  
  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.pulumirpc.CheckRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.CheckRequest.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.pulumirpc.CheckRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CheckRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      urn: jspb.Message.getFieldWithDefault(msg, 1, ""),
      olds: (f = msg.getOlds()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),
      news: (f = msg.getNews()) && google_protobuf_struct_pb.Struct.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.pulumirpc.CheckRequest}
   */
  proto.pulumirpc.CheckRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.CheckRequest;
    return proto.pulumirpc.CheckRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.CheckRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.CheckRequest}
   */
  proto.pulumirpc.CheckRequest.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.setUrn(value);
        break;
      case 2:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setOlds(value);
        break;
      case 3:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setNews(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.CheckRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.CheckRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.CheckRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CheckRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getUrn();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getOlds();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
    f = message.getNews();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string urn = 1;
   * @return {string}
   */
  proto.pulumirpc.CheckRequest.prototype.getUrn = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.CheckRequest.prototype.setUrn = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional google.protobuf.Struct olds = 2;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.CheckRequest.prototype.getOlds = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 2));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.CheckRequest.prototype.setOlds = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.pulumirpc.CheckRequest.prototype.clearOlds = function() {
    this.setOlds(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.CheckRequest.prototype.hasOlds = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  /**
   * optional google.protobuf.Struct news = 3;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.CheckRequest.prototype.getNews = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.CheckRequest.prototype.setNews = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.pulumirpc.CheckRequest.prototype.clearNews = function() {
    this.setNews(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.CheckRequest.prototype.hasNews = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.pulumirpc.CheckResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.pulumirpc.CheckResponse.repeatedFields_, null);
  };
  goog.inherits(proto.pulumirpc.CheckResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.CheckResponse.displayName = 'proto.pulumirpc.CheckResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.pulumirpc.CheckResponse.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.pulumirpc.CheckResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.CheckResponse.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.pulumirpc.CheckResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CheckResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      inputs: (f = msg.getInputs()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),
      failuresList: jspb.Message.toObjectList(msg.getFailuresList(),
      proto.pulumirpc.CheckFailure.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.pulumirpc.CheckResponse}
   */
  proto.pulumirpc.CheckResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.CheckResponse;
    return proto.pulumirpc.CheckResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.CheckResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.CheckResponse}
   */
  proto.pulumirpc.CheckResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setInputs(value);
        break;
      case 2:
        var value = new proto.pulumirpc.CheckFailure;
        reader.readMessage(value,proto.pulumirpc.CheckFailure.deserializeBinaryFromReader);
        msg.addFailures(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.CheckResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.CheckResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.CheckResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CheckResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getInputs();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
    f = message.getFailuresList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.pulumirpc.CheckFailure.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional google.protobuf.Struct inputs = 1;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.CheckResponse.prototype.getInputs = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 1));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.CheckResponse.prototype.setInputs = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.pulumirpc.CheckResponse.prototype.clearInputs = function() {
    this.setInputs(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.CheckResponse.prototype.hasInputs = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * repeated CheckFailure failures = 2;
   * @return {!Array.<!proto.pulumirpc.CheckFailure>}
   */
  proto.pulumirpc.CheckResponse.prototype.getFailuresList = function() {
    return /** @type{!Array.<!proto.pulumirpc.CheckFailure>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.pulumirpc.CheckFailure, 2));
  };
  
  
  /** @param {!Array.<!proto.pulumirpc.CheckFailure>} value */
  proto.pulumirpc.CheckResponse.prototype.setFailuresList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.pulumirpc.CheckFailure=} opt_value
   * @param {number=} opt_index
   * @return {!proto.pulumirpc.CheckFailure}
   */
  proto.pulumirpc.CheckResponse.prototype.addFailures = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.pulumirpc.CheckFailure, opt_index);
  };
  
  
  proto.pulumirpc.CheckResponse.prototype.clearFailuresList = function() {
    this.setFailuresList([]);
  };
  
  
  
  /**
   * 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.pulumirpc.CheckFailure = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.CheckFailure, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.CheckFailure.displayName = 'proto.pulumirpc.CheckFailure';
  }
  
  
  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.pulumirpc.CheckFailure.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.CheckFailure.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.pulumirpc.CheckFailure} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CheckFailure.toObject = function(includeInstance, msg) {
    var f, obj = {
      property: jspb.Message.getFieldWithDefault(msg, 1, ""),
      reason: jspb.Message.getFieldWithDefault(msg, 2, "")
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.pulumirpc.CheckFailure}
   */
  proto.pulumirpc.CheckFailure.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.CheckFailure;
    return proto.pulumirpc.CheckFailure.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.CheckFailure} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.CheckFailure}
   */
  proto.pulumirpc.CheckFailure.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.setProperty(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setReason(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.CheckFailure.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.CheckFailure.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.CheckFailure} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CheckFailure.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getProperty();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getReason();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
  };
  
  
  /**
   * optional string property = 1;
   * @return {string}
   */
  proto.pulumirpc.CheckFailure.prototype.getProperty = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.CheckFailure.prototype.setProperty = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string reason = 2;
   * @return {string}
   */
  proto.pulumirpc.CheckFailure.prototype.getReason = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.CheckFailure.prototype.setReason = function(value) {
    jspb.Message.setProto3StringField(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.pulumirpc.DiffRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.DiffRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.DiffRequest.displayName = 'proto.pulumirpc.DiffRequest';
  }
  
  
  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.pulumirpc.DiffRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.DiffRequest.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.pulumirpc.DiffRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.DiffRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      urn: jspb.Message.getFieldWithDefault(msg, 2, ""),
      olds: (f = msg.getOlds()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),
      news: (f = msg.getNews()) && google_protobuf_struct_pb.Struct.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.pulumirpc.DiffRequest}
   */
  proto.pulumirpc.DiffRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.DiffRequest;
    return proto.pulumirpc.DiffRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.DiffRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.DiffRequest}
   */
  proto.pulumirpc.DiffRequest.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.setUrn(value);
        break;
      case 3:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setOlds(value);
        break;
      case 4:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setNews(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.DiffRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.DiffRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.DiffRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.DiffRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getUrn();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getOlds();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
    f = message.getNews();
    if (f != null) {
      writer.writeMessage(
        4,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.pulumirpc.DiffRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.DiffRequest.prototype.setId = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string urn = 2;
   * @return {string}
   */
  proto.pulumirpc.DiffRequest.prototype.getUrn = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.DiffRequest.prototype.setUrn = function(value) {
    jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional google.protobuf.Struct olds = 3;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.DiffRequest.prototype.getOlds = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.DiffRequest.prototype.setOlds = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.pulumirpc.DiffRequest.prototype.clearOlds = function() {
    this.setOlds(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.DiffRequest.prototype.hasOlds = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  /**
   * optional google.protobuf.Struct news = 4;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.DiffRequest.prototype.getNews = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 4));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.DiffRequest.prototype.setNews = function(value) {
    jspb.Message.setWrapperField(this, 4, value);
  };
  
  
  proto.pulumirpc.DiffRequest.prototype.clearNews = function() {
    this.setNews(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.DiffRequest.prototype.hasNews = function() {
    return jspb.Message.getField(this, 4) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.pulumirpc.DiffResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.pulumirpc.DiffResponse.repeatedFields_, null);
  };
  goog.inherits(proto.pulumirpc.DiffResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.DiffResponse.displayName = 'proto.pulumirpc.DiffResponse';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.pulumirpc.DiffResponse.repeatedFields_ = [1,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.pulumirpc.DiffResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.DiffResponse.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.pulumirpc.DiffResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.DiffResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      replacesList: jspb.Message.getRepeatedField(msg, 1),
      stablesList: jspb.Message.getRepeatedField(msg, 2),
      deletebeforereplace: jspb.Message.getFieldWithDefault(msg, 3, false),
      changes: jspb.Message.getFieldWithDefault(msg, 4, 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.pulumirpc.DiffResponse}
   */
  proto.pulumirpc.DiffResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.DiffResponse;
    return proto.pulumirpc.DiffResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.DiffResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.DiffResponse}
   */
  proto.pulumirpc.DiffResponse.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.addReplaces(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.addStables(value);
        break;
      case 3:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setDeletebeforereplace(value);
        break;
      case 4:
        var value = /** @type {!proto.pulumirpc.DiffResponse.DiffChanges} */ (reader.readEnum());
        msg.setChanges(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.DiffResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.DiffResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.DiffResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.DiffResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getReplacesList();
    if (f.length > 0) {
      writer.writeRepeatedString(
        1,
        f
      );
    }
    f = message.getStablesList();
    if (f.length > 0) {
      writer.writeRepeatedString(
        2,
        f
      );
    }
    f = message.getDeletebeforereplace();
    if (f) {
      writer.writeBool(
        3,
        f
      );
    }
    f = message.getChanges();
    if (f !== 0.0) {
      writer.writeEnum(
        4,
        f
      );
    }
  };
  
  
  /**
   * @enum {number}
   */
  proto.pulumirpc.DiffResponse.DiffChanges = {
    DIFF_UNKNOWN: 0,
    DIFF_NONE: 1,
    DIFF_SOME: 2
  };
  
  /**
   * repeated string replaces = 1;
   * @return {!Array.<string>}
   */
  proto.pulumirpc.DiffResponse.prototype.getReplacesList = function() {
    return /** @type {!Array.<string>} */ (jspb.Message.getRepeatedField(this, 1));
  };
  
  
  /** @param {!Array.<string>} value */
  proto.pulumirpc.DiffResponse.prototype.setReplacesList = function(value) {
    jspb.Message.setField(this, 1, value || []);
  };
  
  
  /**
   * @param {!string} value
   * @param {number=} opt_index
   */
  proto.pulumirpc.DiffResponse.prototype.addReplaces = function(value, opt_index) {
    jspb.Message.addToRepeatedField(this, 1, value, opt_index);
  };
  
  
  proto.pulumirpc.DiffResponse.prototype.clearReplacesList = function() {
    this.setReplacesList([]);
  };
  
  
  /**
   * repeated string stables = 2;
   * @return {!Array.<string>}
   */
  proto.pulumirpc.DiffResponse.prototype.getStablesList = function() {
    return /** @type {!Array.<string>} */ (jspb.Message.getRepeatedField(this, 2));
  };
  
  
  /** @param {!Array.<string>} value */
  proto.pulumirpc.DiffResponse.prototype.setStablesList = function(value) {
    jspb.Message.setField(this, 2, value || []);
  };
  
  
  /**
   * @param {!string} value
   * @param {number=} opt_index
   */
  proto.pulumirpc.DiffResponse.prototype.addStables = function(value, opt_index) {
    jspb.Message.addToRepeatedField(this, 2, value, opt_index);
  };
  
  
  proto.pulumirpc.DiffResponse.prototype.clearStablesList = function() {
    this.setStablesList([]);
  };
  
  
  /**
   * optional bool deleteBeforeReplace = 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.pulumirpc.DiffResponse.prototype.getDeletebeforereplace = function() {
    return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 3, false));
  };
  
  
  /** @param {boolean} value */
  proto.pulumirpc.DiffResponse.prototype.setDeletebeforereplace = function(value) {
    jspb.Message.setProto3BooleanField(this, 3, value);
  };
  
  
  /**
   * optional DiffChanges changes = 4;
   * @return {!proto.pulumirpc.DiffResponse.DiffChanges}
   */
  proto.pulumirpc.DiffResponse.prototype.getChanges = function() {
    return /** @type {!proto.pulumirpc.DiffResponse.DiffChanges} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {!proto.pulumirpc.DiffResponse.DiffChanges} value */
  proto.pulumirpc.DiffResponse.prototype.setChanges = function(value) {
    jspb.Message.setProto3EnumField(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.pulumirpc.CreateRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.CreateRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.CreateRequest.displayName = 'proto.pulumirpc.CreateRequest';
  }
  
  
  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.pulumirpc.CreateRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.CreateRequest.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.pulumirpc.CreateRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CreateRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      urn: jspb.Message.getFieldWithDefault(msg, 1, ""),
      properties: (f = msg.getProperties()) && google_protobuf_struct_pb.Struct.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.pulumirpc.CreateRequest}
   */
  proto.pulumirpc.CreateRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.CreateRequest;
    return proto.pulumirpc.CreateRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.CreateRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.CreateRequest}
   */
  proto.pulumirpc.CreateRequest.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.setUrn(value);
        break;
      case 2:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setProperties(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.CreateRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.CreateRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.CreateRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CreateRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getUrn();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getProperties();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string urn = 1;
   * @return {string}
   */
  proto.pulumirpc.CreateRequest.prototype.getUrn = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.CreateRequest.prototype.setUrn = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional google.protobuf.Struct properties = 2;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.CreateRequest.prototype.getProperties = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 2));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.CreateRequest.prototype.setProperties = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.pulumirpc.CreateRequest.prototype.clearProperties = function() {
    this.setProperties(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.CreateRequest.prototype.hasProperties = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.pulumirpc.CreateResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.CreateResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.CreateResponse.displayName = 'proto.pulumirpc.CreateResponse';
  }
  
  
  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.pulumirpc.CreateResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.CreateResponse.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.pulumirpc.CreateResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CreateResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      properties: (f = msg.getProperties()) && google_protobuf_struct_pb.Struct.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.pulumirpc.CreateResponse}
   */
  proto.pulumirpc.CreateResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.CreateResponse;
    return proto.pulumirpc.CreateResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.CreateResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.CreateResponse}
   */
  proto.pulumirpc.CreateResponse.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_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setProperties(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.CreateResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.CreateResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.CreateResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.CreateResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getProperties();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.pulumirpc.CreateResponse.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.CreateResponse.prototype.setId = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional google.protobuf.Struct properties = 2;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.CreateResponse.prototype.getProperties = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 2));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.CreateResponse.prototype.setProperties = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.pulumirpc.CreateResponse.prototype.clearProperties = function() {
    this.setProperties(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.CreateResponse.prototype.hasProperties = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.pulumirpc.ReadRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.ReadRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.ReadRequest.displayName = 'proto.pulumirpc.ReadRequest';
  }
  
  
  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.pulumirpc.ReadRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.ReadRequest.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.pulumirpc.ReadRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ReadRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      urn: jspb.Message.getFieldWithDefault(msg, 2, ""),
      properties: (f = msg.getProperties()) && google_protobuf_struct_pb.Struct.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.pulumirpc.ReadRequest}
   */
  proto.pulumirpc.ReadRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.ReadRequest;
    return proto.pulumirpc.ReadRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.ReadRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.ReadRequest}
   */
  proto.pulumirpc.ReadRequest.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.setUrn(value);
        break;
      case 3:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setProperties(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.ReadRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.ReadRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.ReadRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ReadRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getUrn();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getProperties();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.pulumirpc.ReadRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.ReadRequest.prototype.setId = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string urn = 2;
   * @return {string}
   */
  proto.pulumirpc.ReadRequest.prototype.getUrn = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.ReadRequest.prototype.setUrn = function(value) {
    jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional google.protobuf.Struct properties = 3;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.ReadRequest.prototype.getProperties = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.ReadRequest.prototype.setProperties = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.pulumirpc.ReadRequest.prototype.clearProperties = function() {
    this.setProperties(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.ReadRequest.prototype.hasProperties = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.pulumirpc.ReadResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.ReadResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.ReadResponse.displayName = 'proto.pulumirpc.ReadResponse';
  }
  
  
  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.pulumirpc.ReadResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.ReadResponse.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.pulumirpc.ReadResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ReadResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      properties: (f = msg.getProperties()) && google_protobuf_struct_pb.Struct.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.pulumirpc.ReadResponse}
   */
  proto.pulumirpc.ReadResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.ReadResponse;
    return proto.pulumirpc.ReadResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.ReadResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.ReadResponse}
   */
  proto.pulumirpc.ReadResponse.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_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setProperties(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.ReadResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.ReadResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.ReadResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.ReadResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getProperties();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.pulumirpc.ReadResponse.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.ReadResponse.prototype.setId = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional google.protobuf.Struct properties = 2;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.ReadResponse.prototype.getProperties = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 2));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.ReadResponse.prototype.setProperties = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.pulumirpc.ReadResponse.prototype.clearProperties = function() {
    this.setProperties(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.ReadResponse.prototype.hasProperties = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.pulumirpc.UpdateRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.UpdateRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.UpdateRequest.displayName = 'proto.pulumirpc.UpdateRequest';
  }
  
  
  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.pulumirpc.UpdateRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.UpdateRequest.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.pulumirpc.UpdateRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.UpdateRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      urn: jspb.Message.getFieldWithDefault(msg, 2, ""),
      olds: (f = msg.getOlds()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),
      news: (f = msg.getNews()) && google_protobuf_struct_pb.Struct.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.pulumirpc.UpdateRequest}
   */
  proto.pulumirpc.UpdateRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.UpdateRequest;
    return proto.pulumirpc.UpdateRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.UpdateRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.UpdateRequest}
   */
  proto.pulumirpc.UpdateRequest.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.setUrn(value);
        break;
      case 3:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setOlds(value);
        break;
      case 4:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setNews(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.UpdateRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.UpdateRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.UpdateRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.UpdateRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getUrn();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getOlds();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
    f = message.getNews();
    if (f != null) {
      writer.writeMessage(
        4,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.pulumirpc.UpdateRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.UpdateRequest.prototype.setId = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string urn = 2;
   * @return {string}
   */
  proto.pulumirpc.UpdateRequest.prototype.getUrn = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.UpdateRequest.prototype.setUrn = function(value) {
    jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional google.protobuf.Struct olds = 3;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.UpdateRequest.prototype.getOlds = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.UpdateRequest.prototype.setOlds = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.pulumirpc.UpdateRequest.prototype.clearOlds = function() {
    this.setOlds(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.UpdateRequest.prototype.hasOlds = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  /**
   * optional google.protobuf.Struct news = 4;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.UpdateRequest.prototype.getNews = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 4));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.UpdateRequest.prototype.setNews = function(value) {
    jspb.Message.setWrapperField(this, 4, value);
  };
  
  
  proto.pulumirpc.UpdateRequest.prototype.clearNews = function() {
    this.setNews(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.UpdateRequest.prototype.hasNews = function() {
    return jspb.Message.getField(this, 4) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.pulumirpc.UpdateResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.UpdateResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.UpdateResponse.displayName = 'proto.pulumirpc.UpdateResponse';
  }
  
  
  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.pulumirpc.UpdateResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.UpdateResponse.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.pulumirpc.UpdateResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.UpdateResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      properties: (f = msg.getProperties()) && google_protobuf_struct_pb.Struct.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.pulumirpc.UpdateResponse}
   */
  proto.pulumirpc.UpdateResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.UpdateResponse;
    return proto.pulumirpc.UpdateResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.UpdateResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.UpdateResponse}
   */
  proto.pulumirpc.UpdateResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setProperties(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.UpdateResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.UpdateResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.UpdateResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.UpdateResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getProperties();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional google.protobuf.Struct properties = 1;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.UpdateResponse.prototype.getProperties = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 1));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.UpdateResponse.prototype.setProperties = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.pulumirpc.UpdateResponse.prototype.clearProperties = function() {
    this.setProperties(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.UpdateResponse.prototype.hasProperties = 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.pulumirpc.DeleteRequest = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.pulumirpc.DeleteRequest, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.pulumirpc.DeleteRequest.displayName = 'proto.pulumirpc.DeleteRequest';
  }
  
  
  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.pulumirpc.DeleteRequest.prototype.toObject = function(opt_includeInstance) {
    return proto.pulumirpc.DeleteRequest.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.pulumirpc.DeleteRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.DeleteRequest.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      urn: jspb.Message.getFieldWithDefault(msg, 2, ""),
      properties: (f = msg.getProperties()) && google_protobuf_struct_pb.Struct.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.pulumirpc.DeleteRequest}
   */
  proto.pulumirpc.DeleteRequest.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.pulumirpc.DeleteRequest;
    return proto.pulumirpc.DeleteRequest.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.pulumirpc.DeleteRequest} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.pulumirpc.DeleteRequest}
   */
  proto.pulumirpc.DeleteRequest.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.setUrn(value);
        break;
      case 3:
        var value = new google_protobuf_struct_pb.Struct;
        reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
        msg.setProperties(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.pulumirpc.DeleteRequest.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.pulumirpc.DeleteRequest.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.pulumirpc.DeleteRequest} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.pulumirpc.DeleteRequest.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getUrn();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getProperties();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        google_protobuf_struct_pb.Struct.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.pulumirpc.DeleteRequest.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.DeleteRequest.prototype.setId = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string urn = 2;
   * @return {string}
   */
  proto.pulumirpc.DeleteRequest.prototype.getUrn = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.pulumirpc.DeleteRequest.prototype.setUrn = function(value) {
    jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional google.protobuf.Struct properties = 3;
   * @return {?proto.google.protobuf.Struct}
   */
  proto.pulumirpc.DeleteRequest.prototype.getProperties = function() {
    return /** @type{?proto.google.protobuf.Struct} */ (
      jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3));
  };
  
  
  /** @param {?proto.google.protobuf.Struct|undefined} value */
  proto.pulumirpc.DeleteRequest.prototype.setProperties = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.pulumirpc.DeleteRequest.prototype.clearProperties = function() {
    this.setProperties(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.pulumirpc.DeleteRequest.prototype.hasProperties = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  goog.object.extend(exports, proto.pulumirpc);
  