Class SetInventoryRequest (1.5.0)

public sealed class SetInventoryRequest : IMessage<SetInventoryRequest>, IEquatable<SetInventoryRequest>, IDeepCloneable<SetInventoryRequest>, IBufferMessage, IMessage

Request message for [SetInventory][] method.

Inheritance

Object > SetInventoryRequest

Namespace

Google.Cloud.Retail.V2

Assembly

Google.Cloud.Retail.V2.dll

Constructors

SetInventoryRequest()

public SetInventoryRequest()

SetInventoryRequest(SetInventoryRequest)

public SetInventoryRequest(SetInventoryRequest other)
Parameter
NameDescription
otherSetInventoryRequest

Properties

AllowMissing

public bool AllowMissing { get; set; }

If set to true, and the [Product][google.cloud.retail.v2.Product] with name [Product.name][google.cloud.retail.v2.Product.name] is not found, the inventory update will still be processed and retained for at most 1 day until the [Product][google.cloud.retail.v2.Product] is created. If set to false, a NOT_FOUND error is returned if the [Product][google.cloud.retail.v2.Product] is not found.

Property Value
TypeDescription
Boolean

Inventory

public Product Inventory { get; set; }

Required. The inventory information to update. The allowable fields to update are:

  • [Product.price_info][google.cloud.retail.v2.Product.price_info]
  • [Product.availability][google.cloud.retail.v2.Product.availability]
  • [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
  • [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info] The updated inventory fields must be specified in [SetInventoryRequest.set_mask][google.cloud.retail.v2.SetInventoryRequest.set_mask].

If [SetInventoryRequest.inventory.name][] is empty or invalid, an INVALID_ARGUMENT error is returned.

If the caller does not have permission to update the [Product][google.cloud.retail.v2.Product] named in [Product.name][google.cloud.retail.v2.Product.name], regardless of whether or not it exists, a PERMISSION_DENIED error is returned.

If the [Product][google.cloud.retail.v2.Product] to update does not have existing inventory information, the provided inventory information will be inserted.

If the [Product][google.cloud.retail.v2.Product] to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for [SetInventoryRequest.set_time][google.cloud.retail.v2.SetInventoryRequest.set_time].

The last update time is recorded for the following inventory fields:

  • [Product.price_info][google.cloud.retail.v2.Product.price_info]
  • [Product.availability][google.cloud.retail.v2.Product.availability]
  • [Product.available_quantity][google.cloud.retail.v2.Product.available_quantity]
  • [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info]

If a full overwrite of inventory information while ignoring timestamps is needed, [UpdateProduct][] should be invoked instead.

Property Value
TypeDescription
Product

SetMask

public FieldMask SetMask { get; set; }

Indicates which inventory fields in the provided [Product][google.cloud.retail.v2.Product] to update. If not set or set with empty paths, all inventory fields will be updated.

If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.

Property Value
TypeDescription
FieldMask

SetTime

public Timestamp SetTime { get; set; }

The time when the request is issued, used to prevent out-of-order updates on inventory fields with the last update time recorded. If not provided, the internal system time will be used.

Property Value
TypeDescription
Timestamp