// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.2
// source: google/cloud/retail/v2alpha/product_service.proto

package retailpb

import (
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"

	longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Request message for
// [ProductService.CreateProduct][google.cloud.retail.v2alpha.ProductService.CreateProduct]
// method.
type CreateProductRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The parent catalog resource name, such as
	// `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. The [Product][google.cloud.retail.v2alpha.Product] to create.
	Product *Product `protobuf:"bytes,2,opt,name=product,proto3" json:"product,omitempty"`
	// Required. The ID to use for the
	// [Product][google.cloud.retail.v2alpha.Product], which will become the final
	// component of the [Product.name][google.cloud.retail.v2alpha.Product.name].
	//
	// If the caller does not have permission to create the
	// [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
	// not it exists, a PERMISSION_DENIED error is returned.
	//
	// This field must be unique among all
	// [Product][google.cloud.retail.v2alpha.Product]s with the same
	// [parent][google.cloud.retail.v2alpha.CreateProductRequest.parent].
	// Otherwise, an ALREADY_EXISTS error is returned.
	//
	// This field must be a UTF-8 encoded string with a length limit of 128
	// characters. Otherwise, an INVALID_ARGUMENT error is returned.
	ProductId     string `protobuf:"bytes,3,opt,name=product_id,json=productId,proto3" json:"product_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CreateProductRequest) Reset() {
	*x = CreateProductRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateProductRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateProductRequest) ProtoMessage() {}

func (x *CreateProductRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateProductRequest.ProtoReflect.Descriptor instead.
func (*CreateProductRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{0}
}

func (x *CreateProductRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *CreateProductRequest) GetProduct() *Product {
	if x != nil {
		return x.Product
	}
	return nil
}

func (x *CreateProductRequest) GetProductId() string {
	if x != nil {
		return x.ProductId
	}
	return ""
}

// Request message for
// [ProductService.GetProduct][google.cloud.retail.v2alpha.ProductService.GetProduct]
// method.
type GetProductRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Full resource name of
	// [Product][google.cloud.retail.v2alpha.Product], such as
	// `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
	//
	// If the caller does not have permission to access the
	// [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
	// not it exists, a PERMISSION_DENIED error is returned.
	//
	// If the requested [Product][google.cloud.retail.v2alpha.Product] does not
	// exist, a NOT_FOUND error is returned.
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetProductRequest) Reset() {
	*x = GetProductRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetProductRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetProductRequest) ProtoMessage() {}

func (x *GetProductRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetProductRequest.ProtoReflect.Descriptor instead.
func (*GetProductRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{1}
}

func (x *GetProductRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Request message for
// [ProductService.UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct]
// method.
type UpdateProductRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The product to update/create.
	//
	// If the caller does not have permission to update the
	// [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
	// not it exists, a PERMISSION_DENIED error is returned.
	//
	// If the [Product][google.cloud.retail.v2alpha.Product] to update does not
	// exist and
	// [allow_missing][google.cloud.retail.v2alpha.UpdateProductRequest.allow_missing]
	// is not set, a NOT_FOUND error is returned.
	Product *Product `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
	// Indicates which fields in the provided
	// [Product][google.cloud.retail.v2alpha.Product] to update. The immutable and
	// output only fields are NOT supported. If not set, all supported fields (the
	// fields that are neither immutable nor output only) are updated.
	//
	// If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
	// is returned.
	//
	// The attribute key can be updated by setting the mask path as
	// "attributes.${key_name}". If a key name is present in the mask but not in
	// the patching product from the request, this key will be deleted after the
	// update.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// If set to true, and the [Product][google.cloud.retail.v2alpha.Product] is
	// not found, a new [Product][google.cloud.retail.v2alpha.Product] will be
	// created. In this situation, `update_mask` is ignored.
	AllowMissing  bool `protobuf:"varint,3,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateProductRequest) Reset() {
	*x = UpdateProductRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateProductRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateProductRequest) ProtoMessage() {}

func (x *UpdateProductRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateProductRequest.ProtoReflect.Descriptor instead.
func (*UpdateProductRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{2}
}

func (x *UpdateProductRequest) GetProduct() *Product {
	if x != nil {
		return x.Product
	}
	return nil
}

func (x *UpdateProductRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

func (x *UpdateProductRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Request message for
// [ProductService.DeleteProduct][google.cloud.retail.v2alpha.ProductService.DeleteProduct]
// method.
type DeleteProductRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Full resource name of
	// [Product][google.cloud.retail.v2alpha.Product], such as
	// `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
	//
	// If the caller does not have permission to delete the
	// [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
	// not it exists, a PERMISSION_DENIED error is returned.
	//
	// If the [Product][google.cloud.retail.v2alpha.Product] to delete does not
	// exist, a NOT_FOUND error is returned.
	//
	// The [Product][google.cloud.retail.v2alpha.Product] to delete can neither be
	// a
	// [Product.Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION]
	// [Product][google.cloud.retail.v2alpha.Product] member nor a
	// [Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
	// [Product][google.cloud.retail.v2alpha.Product] with more than one
	// [variants][google.cloud.retail.v2alpha.Product.Type.VARIANT]. Otherwise, an
	// INVALID_ARGUMENT error is returned.
	//
	// All inventory information for the named
	// [Product][google.cloud.retail.v2alpha.Product] will be deleted.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// This value only applies to the case when the target product is of type
	// PRIMARY.
	// When deleting a product of VARIANT/COLLECTION type, this value
	// will be ignored.
	// When set to true, the subsequent variant products will be
	// deleted.
	// When set to false, if the primary product has active variant products, an
	// error will be returned.
	Force         bool `protobuf:"varint,4,opt,name=force,proto3" json:"force,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteProductRequest) Reset() {
	*x = DeleteProductRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteProductRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteProductRequest) ProtoMessage() {}

func (x *DeleteProductRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteProductRequest.ProtoReflect.Descriptor instead.
func (*DeleteProductRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{3}
}

func (x *DeleteProductRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *DeleteProductRequest) GetForce() bool {
	if x != nil {
		return x.Force
	}
	return false
}

// Request message for
// [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]
// method.
type ListProductsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The parent branch resource name, such as
	// `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use
	// `default_branch` as the branch ID, to list products under the default
	// branch.
	//
	// If the caller does not have permission to list
	// [Product][google.cloud.retail.v2alpha.Product]s under this branch,
	// regardless of whether or not this branch exists, a PERMISSION_DENIED error
	// is returned.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Maximum number of [Product][google.cloud.retail.v2alpha.Product]s to
	// return. If unspecified, defaults to 100. The maximum allowed value is 1000.
	// Values above 1000 will be coerced to 1000.
	//
	// If this field is negative, an INVALID_ARGUMENT error is returned.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// A page token
	// [ListProductsResponse.next_page_token][google.cloud.retail.v2alpha.ListProductsResponse.next_page_token],
	// received from a previous
	// [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]
	// call. Provide this to retrieve the subsequent page.
	//
	// When paginating, all other parameters provided to
	// [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]
	// must match the call that provided the page token. Otherwise, an
	// INVALID_ARGUMENT error is returned.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// A filter to apply on the list results. Supported features:
	//
	// * List all the products under the parent branch if
	// [filter][google.cloud.retail.v2alpha.ListProductsRequest.filter] is unset.
	// * List
	// [Product.Type.VARIANT][google.cloud.retail.v2alpha.Product.Type.VARIANT]
	// [Product][google.cloud.retail.v2alpha.Product]s sharing the same
	//
	//	[Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
	//	[Product][google.cloud.retail.v2alpha.Product]. For example:
	//	  `primary_product_id = "some_product_id"`
	//
	// * List [Product][google.cloud.retail.v2alpha.Product]s bundled in a
	// [Product.Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION]
	// [Product][google.cloud.retail.v2alpha.Product].
	//
	//	For example:
	//	  `collection_product_id = "some_product_id"`
	//
	// * List [Product][google.cloud.retail.v2alpha.Product]s with a partibular
	// type. For example:
	//
	//	`type = "PRIMARY"`
	//	`type = "VARIANT"`
	//	`type = "COLLECTION"`
	//
	// If the field is unrecognizable, an INVALID_ARGUMENT error is returned.
	//
	// If the specified
	// [Product.Type.PRIMARY][google.cloud.retail.v2alpha.Product.Type.PRIMARY]
	// [Product][google.cloud.retail.v2alpha.Product] or
	// [Product.Type.COLLECTION][google.cloud.retail.v2alpha.Product.Type.COLLECTION]
	// [Product][google.cloud.retail.v2alpha.Product] does not exist, a NOT_FOUND
	// error is returned.
	Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
	// The fields of [Product][google.cloud.retail.v2alpha.Product] to return in
	// the responses. If not set or empty, the following fields are returned:
	//
	// * [Product.name][google.cloud.retail.v2alpha.Product.name]
	// * [Product.id][google.cloud.retail.v2alpha.Product.id]
	// * [Product.title][google.cloud.retail.v2alpha.Product.title]
	// * [Product.uri][google.cloud.retail.v2alpha.Product.uri]
	// * [Product.images][google.cloud.retail.v2alpha.Product.images]
	// * [Product.price_info][google.cloud.retail.v2alpha.Product.price_info]
	// * [Product.brands][google.cloud.retail.v2alpha.Product.brands]
	//
	// If "*" is provided, all fields are returned.
	// [Product.name][google.cloud.retail.v2alpha.Product.name] is always returned
	// no matter what mask is set.
	//
	// If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
	// is returned.
	ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"`
	// If true and
	// [page_token][google.cloud.retail.v2alpha.ListProductsRequest.page_token] is
	// empty,
	// [ListProductsResponse.total_size][google.cloud.retail.v2alpha.ListProductsResponse.total_size]
	// is set to the total count of matched items irrespective of pagination.
	//
	// Notice that setting this field to true affects the performance.
	RequireTotalSize bool `protobuf:"varint,6,opt,name=require_total_size,json=requireTotalSize,proto3" json:"require_total_size,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *ListProductsRequest) Reset() {
	*x = ListProductsRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListProductsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListProductsRequest) ProtoMessage() {}

func (x *ListProductsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListProductsRequest.ProtoReflect.Descriptor instead.
func (*ListProductsRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{4}
}

func (x *ListProductsRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *ListProductsRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListProductsRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

func (x *ListProductsRequest) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

func (x *ListProductsRequest) GetReadMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.ReadMask
	}
	return nil
}

func (x *ListProductsRequest) GetRequireTotalSize() bool {
	if x != nil {
		return x.RequireTotalSize
	}
	return false
}

// Response message for
// [ProductService.ListProducts][google.cloud.retail.v2alpha.ProductService.ListProducts]
// method.
type ListProductsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The [Product][google.cloud.retail.v2alpha.Product]s.
	Products []*Product `protobuf:"bytes,1,rep,name=products,proto3" json:"products,omitempty"`
	// A token that can be sent as
	// [ListProductsRequest.page_token][google.cloud.retail.v2alpha.ListProductsRequest.page_token]
	// to retrieve the next page. If this field is omitted, there are no
	// subsequent pages.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// The total count of matched [Product][google.cloud.retail.v2alpha.Product]s
	// irrespective of pagination. The total number of
	// [Product][google.cloud.retail.v2alpha.Product]s returned by pagination may
	// be less than the
	// [total_size][google.cloud.retail.v2alpha.ListProductsResponse.total_size]
	// that matches.
	//
	// This field is ignored if
	// [ListProductsRequest.require_total_size][google.cloud.retail.v2alpha.ListProductsRequest.require_total_size]
	// is not set or
	// [ListProductsRequest.page_token][google.cloud.retail.v2alpha.ListProductsRequest.page_token]
	// is not empty.
	TotalSize     int32 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListProductsResponse) Reset() {
	*x = ListProductsResponse{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListProductsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListProductsResponse) ProtoMessage() {}

func (x *ListProductsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListProductsResponse.ProtoReflect.Descriptor instead.
func (*ListProductsResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{5}
}

func (x *ListProductsResponse) GetProducts() []*Product {
	if x != nil {
		return x.Products
	}
	return nil
}

func (x *ListProductsResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

func (x *ListProductsResponse) GetTotalSize() int32 {
	if x != nil {
		return x.TotalSize
	}
	return 0
}

// Request message for
// [ProductService.SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory]
// method.
type SetInventoryRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The inventory information to update. The allowable fields to
	// update are:
	//
	// * [Product.price_info][google.cloud.retail.v2alpha.Product.price_info]
	// * [Product.availability][google.cloud.retail.v2alpha.Product.availability]
	// * [Product.available_quantity][google.cloud.retail.v2alpha.Product.available_quantity]
	// * [Product.fulfillment_info][google.cloud.retail.v2alpha.Product.fulfillment_info]
	// The updated inventory fields must be specified in
	// [SetInventoryRequest.set_mask][google.cloud.retail.v2alpha.SetInventoryRequest.set_mask].
	//
	// If
	// [SetInventoryRequest.inventory.name][google.cloud.retail.v2alpha.Product.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.v2alpha.Product] named in
	// [Product.name][google.cloud.retail.v2alpha.Product.name], regardless of
	// whether or not it exists, a PERMISSION_DENIED error is returned.
	//
	// If the [Product][google.cloud.retail.v2alpha.Product] to update does not
	// have existing inventory information, the provided inventory information
	// will be inserted.
	//
	// If the [Product][google.cloud.retail.v2alpha.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.v2alpha.SetInventoryRequest.set_time].
	//
	// The caller can replace place IDs for a subset of fulfillment types in the
	// following ways:
	//
	// * Adds "fulfillment_info" in
	// [SetInventoryRequest.set_mask][google.cloud.retail.v2alpha.SetInventoryRequest.set_mask]
	// * Specifies only the desired fulfillment types and corresponding place IDs
	// to update in
	// [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2alpha.Product.fulfillment_info]
	//
	// The caller can clear all place IDs from a subset of fulfillment types in
	// the following ways:
	//
	// * Adds "fulfillment_info" in
	// [SetInventoryRequest.set_mask][google.cloud.retail.v2alpha.SetInventoryRequest.set_mask]
	// * Specifies only the desired fulfillment types to clear in
	// [SetInventoryRequest.inventory.fulfillment_info][google.cloud.retail.v2alpha.Product.fulfillment_info]
	// * Checks that only the desired fulfillment info types have empty
	// [SetInventoryRequest.inventory.fulfillment_info.place_ids][google.cloud.retail.v2alpha.FulfillmentInfo.place_ids]
	//
	// The last update time is recorded for the following inventory fields:
	// * [Product.price_info][google.cloud.retail.v2alpha.Product.price_info]
	// * [Product.availability][google.cloud.retail.v2alpha.Product.availability]
	// * [Product.available_quantity][google.cloud.retail.v2alpha.Product.available_quantity]
	// * [Product.fulfillment_info][google.cloud.retail.v2alpha.Product.fulfillment_info]
	//
	// If a full overwrite of inventory information while ignoring timestamps is
	// needed,
	// [ProductService.UpdateProduct][google.cloud.retail.v2alpha.ProductService.UpdateProduct]
	// should be invoked instead.
	Inventory *Product `protobuf:"bytes,1,opt,name=inventory,proto3" json:"inventory,omitempty"`
	// Indicates which inventory fields in the provided
	// [Product][google.cloud.retail.v2alpha.Product] to update.
	//
	// At least one field must be provided.
	//
	// If an unsupported or unknown field is provided, an INVALID_ARGUMENT error
	// is returned and the entire update will be ignored.
	SetMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=set_mask,json=setMask,proto3" json:"set_mask,omitempty"`
	// 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.
	SetTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=set_time,json=setTime,proto3" json:"set_time,omitempty"`
	// If set to true, and the [Product][google.cloud.retail.v2alpha.Product] with
	// name [Product.name][google.cloud.retail.v2alpha.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.v2alpha.Product] is created. If set
	// to false, a NOT_FOUND error is returned if the
	// [Product][google.cloud.retail.v2alpha.Product] is not found.
	AllowMissing  bool `protobuf:"varint,4,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetInventoryRequest) Reset() {
	*x = SetInventoryRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SetInventoryRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetInventoryRequest) ProtoMessage() {}

func (x *SetInventoryRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SetInventoryRequest.ProtoReflect.Descriptor instead.
func (*SetInventoryRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{6}
}

func (x *SetInventoryRequest) GetInventory() *Product {
	if x != nil {
		return x.Inventory
	}
	return nil
}

func (x *SetInventoryRequest) GetSetMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.SetMask
	}
	return nil
}

func (x *SetInventoryRequest) GetSetTime() *timestamppb.Timestamp {
	if x != nil {
		return x.SetTime
	}
	return nil
}

func (x *SetInventoryRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Metadata related to the progress of the SetInventory operation.
// Currently empty because there is no meaningful metadata populated from the
// [ProductService.SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory]
// method.
type SetInventoryMetadata struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetInventoryMetadata) Reset() {
	*x = SetInventoryMetadata{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SetInventoryMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetInventoryMetadata) ProtoMessage() {}

func (x *SetInventoryMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SetInventoryMetadata.ProtoReflect.Descriptor instead.
func (*SetInventoryMetadata) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{7}
}

// Response of the SetInventoryRequest.  Currently empty because
// there is no meaningful response populated from the
// [ProductService.SetInventory][google.cloud.retail.v2alpha.ProductService.SetInventory]
// method.
type SetInventoryResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SetInventoryResponse) Reset() {
	*x = SetInventoryResponse{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SetInventoryResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetInventoryResponse) ProtoMessage() {}

func (x *SetInventoryResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SetInventoryResponse.ProtoReflect.Descriptor instead.
func (*SetInventoryResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{8}
}

// Request message for
// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces]
// method.
type AddFulfillmentPlacesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Full resource name of
	// [Product][google.cloud.retail.v2alpha.Product], such as
	// `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
	//
	// If the caller does not have permission to access the
	// [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
	// not it exists, a PERMISSION_DENIED error is returned.
	Product string `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
	// Required. The fulfillment type, including commonly used types (such as
	// pickup in store and same day delivery), and custom types.
	//
	// Supported values:
	//
	// * "pickup-in-store"
	// * "ship-to-store"
	// * "same-day-delivery"
	// * "next-day-delivery"
	// * "custom-type-1"
	// * "custom-type-2"
	// * "custom-type-3"
	// * "custom-type-4"
	// * "custom-type-5"
	//
	// If this field is set to an invalid value other than these, an
	// INVALID_ARGUMENT error is returned.
	//
	// This field directly corresponds to
	// [Product.fulfillment_info.type][google.cloud.retail.v2alpha.FulfillmentInfo.type].
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// Required. The IDs for this
	// [type][google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest.type], such
	// as the store IDs for "pickup-in-store" or the region IDs for
	// "same-day-delivery" to be added for this
	// [type][google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest.type].
	// Duplicate IDs will be automatically ignored.
	//
	// At least 1 value is required, and a maximum of 2000 values are allowed.
	// Each value must be a string with a length limit of 10 characters, matching
	// the pattern `[a-zA-Z0-9_-]+`, such as "store1" or "REGION-2". Otherwise, an
	// INVALID_ARGUMENT error is returned.
	//
	// If the total number of place IDs exceeds 2000 for this
	// [type][google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest.type] after
	// adding, then the update will be rejected.
	PlaceIds []string `protobuf:"bytes,3,rep,name=place_ids,json=placeIds,proto3" json:"place_ids,omitempty"`
	// The time when the fulfillment updates are issued, used to prevent
	// out-of-order updates on fulfillment information. If not provided, the
	// internal system time will be used.
	AddTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=add_time,json=addTime,proto3" json:"add_time,omitempty"`
	// If set to true, and the [Product][google.cloud.retail.v2alpha.Product] is
	// not found, the fulfillment information will still be processed and retained
	// for at most 1 day and processed once the
	// [Product][google.cloud.retail.v2alpha.Product] is created. If set to false,
	// a NOT_FOUND error is returned if the
	// [Product][google.cloud.retail.v2alpha.Product] is not found.
	AllowMissing  bool `protobuf:"varint,5,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddFulfillmentPlacesRequest) Reset() {
	*x = AddFulfillmentPlacesRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddFulfillmentPlacesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddFulfillmentPlacesRequest) ProtoMessage() {}

func (x *AddFulfillmentPlacesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddFulfillmentPlacesRequest.ProtoReflect.Descriptor instead.
func (*AddFulfillmentPlacesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{9}
}

func (x *AddFulfillmentPlacesRequest) GetProduct() string {
	if x != nil {
		return x.Product
	}
	return ""
}

func (x *AddFulfillmentPlacesRequest) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *AddFulfillmentPlacesRequest) GetPlaceIds() []string {
	if x != nil {
		return x.PlaceIds
	}
	return nil
}

func (x *AddFulfillmentPlacesRequest) GetAddTime() *timestamppb.Timestamp {
	if x != nil {
		return x.AddTime
	}
	return nil
}

func (x *AddFulfillmentPlacesRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Metadata related to the progress of the AddFulfillmentPlaces operation.
// Currently empty because there is no meaningful metadata populated from the
// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces]
// method.
type AddFulfillmentPlacesMetadata struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddFulfillmentPlacesMetadata) Reset() {
	*x = AddFulfillmentPlacesMetadata{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddFulfillmentPlacesMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddFulfillmentPlacesMetadata) ProtoMessage() {}

func (x *AddFulfillmentPlacesMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddFulfillmentPlacesMetadata.ProtoReflect.Descriptor instead.
func (*AddFulfillmentPlacesMetadata) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{10}
}

// Response of the AddFulfillmentPlacesRequest.  Currently empty because
// there is no meaningful response populated from the
// [ProductService.AddFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces]
// method.
type AddFulfillmentPlacesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddFulfillmentPlacesResponse) Reset() {
	*x = AddFulfillmentPlacesResponse{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddFulfillmentPlacesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddFulfillmentPlacesResponse) ProtoMessage() {}

func (x *AddFulfillmentPlacesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddFulfillmentPlacesResponse.ProtoReflect.Descriptor instead.
func (*AddFulfillmentPlacesResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{11}
}

// Request message for
// [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories]
// method.
type AddLocalInventoriesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Full resource name of
	// [Product][google.cloud.retail.v2alpha.Product], such as
	// `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
	//
	// If the caller does not have permission to access the
	// [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
	// not it exists, a PERMISSION_DENIED error is returned.
	Product string `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
	// Required. A list of inventory information at difference places. Each place
	// is identified by its place ID. At most 3000 inventories are allowed per
	// request.
	LocalInventories []*LocalInventory `protobuf:"bytes,2,rep,name=local_inventories,json=localInventories,proto3" json:"local_inventories,omitempty"`
	// Indicates which inventory fields in the provided list of
	// [LocalInventory][google.cloud.retail.v2alpha.LocalInventory] to update. The
	// field is updated to the provided value.
	//
	// If a field is set while the place does not have a previous local inventory,
	// the local inventory at that store is created.
	//
	// If a field is set while the value of that field is not provided, the
	// original field value, if it exists, is deleted.
	//
	// If the mask is 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.
	AddMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=add_mask,json=addMask,proto3" json:"add_mask,omitempty"`
	// The time when the inventory updates are issued. Used to prevent
	// out-of-order updates on local inventory fields. If not provided, the
	// internal system time will be used.
	AddTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=add_time,json=addTime,proto3" json:"add_time,omitempty"`
	// If set to true, and the [Product][google.cloud.retail.v2alpha.Product] is
	// not found, the local inventory will still be processed and retained for at
	// most 1 day and processed once the
	// [Product][google.cloud.retail.v2alpha.Product] is created. If set to false,
	// a NOT_FOUND error is returned if the
	// [Product][google.cloud.retail.v2alpha.Product] is not found.
	AllowMissing  bool `protobuf:"varint,6,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddLocalInventoriesRequest) Reset() {
	*x = AddLocalInventoriesRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddLocalInventoriesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddLocalInventoriesRequest) ProtoMessage() {}

func (x *AddLocalInventoriesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddLocalInventoriesRequest.ProtoReflect.Descriptor instead.
func (*AddLocalInventoriesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{12}
}

func (x *AddLocalInventoriesRequest) GetProduct() string {
	if x != nil {
		return x.Product
	}
	return ""
}

func (x *AddLocalInventoriesRequest) GetLocalInventories() []*LocalInventory {
	if x != nil {
		return x.LocalInventories
	}
	return nil
}

func (x *AddLocalInventoriesRequest) GetAddMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.AddMask
	}
	return nil
}

func (x *AddLocalInventoriesRequest) GetAddTime() *timestamppb.Timestamp {
	if x != nil {
		return x.AddTime
	}
	return nil
}

func (x *AddLocalInventoriesRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Metadata related to the progress of the AddLocalInventories operation.
// Currently empty because there is no meaningful metadata populated from the
// [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories]
// method.
type AddLocalInventoriesMetadata struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddLocalInventoriesMetadata) Reset() {
	*x = AddLocalInventoriesMetadata{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddLocalInventoriesMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddLocalInventoriesMetadata) ProtoMessage() {}

func (x *AddLocalInventoriesMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddLocalInventoriesMetadata.ProtoReflect.Descriptor instead.
func (*AddLocalInventoriesMetadata) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{13}
}

// Response of the
// [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories]
// API.  Currently empty because there is no meaningful response populated from
// the
// [ProductService.AddLocalInventories][google.cloud.retail.v2alpha.ProductService.AddLocalInventories]
// method.
type AddLocalInventoriesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddLocalInventoriesResponse) Reset() {
	*x = AddLocalInventoriesResponse{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddLocalInventoriesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddLocalInventoriesResponse) ProtoMessage() {}

func (x *AddLocalInventoriesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddLocalInventoriesResponse.ProtoReflect.Descriptor instead.
func (*AddLocalInventoriesResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{14}
}

// Request message for
// [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories]
// method.
type RemoveLocalInventoriesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Full resource name of
	// [Product][google.cloud.retail.v2alpha.Product], such as
	// `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
	//
	// If the caller does not have permission to access the
	// [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
	// not it exists, a PERMISSION_DENIED error is returned.
	Product string `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
	// Required. A list of place IDs to have their inventory deleted.
	// At most 3000 place IDs are allowed per request.
	PlaceIds []string `protobuf:"bytes,2,rep,name=place_ids,json=placeIds,proto3" json:"place_ids,omitempty"`
	// The time when the inventory deletions are issued. Used to prevent
	// out-of-order updates and deletions on local inventory fields. If not
	// provided, the internal system time will be used.
	RemoveTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=remove_time,json=removeTime,proto3" json:"remove_time,omitempty"`
	// If set to true, and the [Product][google.cloud.retail.v2alpha.Product] is
	// not found, the local inventory removal request will still be processed and
	// retained for at most 1 day and processed once the
	// [Product][google.cloud.retail.v2alpha.Product] is created. If set to false,
	// a NOT_FOUND error is returned if the
	// [Product][google.cloud.retail.v2alpha.Product] is not found.
	AllowMissing  bool `protobuf:"varint,3,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemoveLocalInventoriesRequest) Reset() {
	*x = RemoveLocalInventoriesRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoveLocalInventoriesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoveLocalInventoriesRequest) ProtoMessage() {}

func (x *RemoveLocalInventoriesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoveLocalInventoriesRequest.ProtoReflect.Descriptor instead.
func (*RemoveLocalInventoriesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{15}
}

func (x *RemoveLocalInventoriesRequest) GetProduct() string {
	if x != nil {
		return x.Product
	}
	return ""
}

func (x *RemoveLocalInventoriesRequest) GetPlaceIds() []string {
	if x != nil {
		return x.PlaceIds
	}
	return nil
}

func (x *RemoveLocalInventoriesRequest) GetRemoveTime() *timestamppb.Timestamp {
	if x != nil {
		return x.RemoveTime
	}
	return nil
}

func (x *RemoveLocalInventoriesRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Metadata related to the progress of the RemoveLocalInventories operation.
// Currently empty because there is no meaningful metadata populated from the
// [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories]
// method.
type RemoveLocalInventoriesMetadata struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemoveLocalInventoriesMetadata) Reset() {
	*x = RemoveLocalInventoriesMetadata{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoveLocalInventoriesMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoveLocalInventoriesMetadata) ProtoMessage() {}

func (x *RemoveLocalInventoriesMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoveLocalInventoriesMetadata.ProtoReflect.Descriptor instead.
func (*RemoveLocalInventoriesMetadata) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{16}
}

// Response of the
// [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories]
// API.  Currently empty because there is no meaningful response populated from
// the
// [ProductService.RemoveLocalInventories][google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories]
// method.
type RemoveLocalInventoriesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemoveLocalInventoriesResponse) Reset() {
	*x = RemoveLocalInventoriesResponse{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoveLocalInventoriesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoveLocalInventoriesResponse) ProtoMessage() {}

func (x *RemoveLocalInventoriesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoveLocalInventoriesResponse.ProtoReflect.Descriptor instead.
func (*RemoveLocalInventoriesResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{17}
}

// Request message for
// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces]
// method.
type RemoveFulfillmentPlacesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Full resource name of
	// [Product][google.cloud.retail.v2alpha.Product], such as
	// `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`.
	//
	// If the caller does not have permission to access the
	// [Product][google.cloud.retail.v2alpha.Product], regardless of whether or
	// not it exists, a PERMISSION_DENIED error is returned.
	Product string `protobuf:"bytes,1,opt,name=product,proto3" json:"product,omitempty"`
	// Required. The fulfillment type, including commonly used types (such as
	// pickup in store and same day delivery), and custom types.
	//
	// Supported values:
	//
	// * "pickup-in-store"
	// * "ship-to-store"
	// * "same-day-delivery"
	// * "next-day-delivery"
	// * "custom-type-1"
	// * "custom-type-2"
	// * "custom-type-3"
	// * "custom-type-4"
	// * "custom-type-5"
	//
	// If this field is set to an invalid value other than these, an
	// INVALID_ARGUMENT error is returned.
	//
	// This field directly corresponds to
	// [Product.fulfillment_info.type][google.cloud.retail.v2alpha.FulfillmentInfo.type].
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// Required. The IDs for this
	// [type][google.cloud.retail.v2alpha.RemoveFulfillmentPlacesRequest.type],
	// such as the store IDs for "pickup-in-store" or the region IDs for
	// "same-day-delivery", to be removed for this
	// [type][google.cloud.retail.v2alpha.RemoveFulfillmentPlacesRequest.type].
	//
	// At least 1 value is required, and a maximum of 2000 values are allowed.
	// Each value must be a string with a length limit of 10 characters, matching
	// the pattern `[a-zA-Z0-9_-]+`, such as "store1" or "REGION-2". Otherwise, an
	// INVALID_ARGUMENT error is returned.
	PlaceIds []string `protobuf:"bytes,3,rep,name=place_ids,json=placeIds,proto3" json:"place_ids,omitempty"`
	// The time when the fulfillment updates are issued, used to prevent
	// out-of-order updates on fulfillment information. If not provided, the
	// internal system time will be used.
	RemoveTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=remove_time,json=removeTime,proto3" json:"remove_time,omitempty"`
	// If set to true, and the [Product][google.cloud.retail.v2alpha.Product] is
	// not found, the fulfillment information will still be processed and retained
	// for at most 1 day and processed once the
	// [Product][google.cloud.retail.v2alpha.Product] is created. If set to false,
	// a NOT_FOUND error is returned if the
	// [Product][google.cloud.retail.v2alpha.Product] is not found.
	AllowMissing  bool `protobuf:"varint,5,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemoveFulfillmentPlacesRequest) Reset() {
	*x = RemoveFulfillmentPlacesRequest{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoveFulfillmentPlacesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoveFulfillmentPlacesRequest) ProtoMessage() {}

func (x *RemoveFulfillmentPlacesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoveFulfillmentPlacesRequest.ProtoReflect.Descriptor instead.
func (*RemoveFulfillmentPlacesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{18}
}

func (x *RemoveFulfillmentPlacesRequest) GetProduct() string {
	if x != nil {
		return x.Product
	}
	return ""
}

func (x *RemoveFulfillmentPlacesRequest) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *RemoveFulfillmentPlacesRequest) GetPlaceIds() []string {
	if x != nil {
		return x.PlaceIds
	}
	return nil
}

func (x *RemoveFulfillmentPlacesRequest) GetRemoveTime() *timestamppb.Timestamp {
	if x != nil {
		return x.RemoveTime
	}
	return nil
}

func (x *RemoveFulfillmentPlacesRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Metadata related to the progress of the RemoveFulfillmentPlaces operation.
// Currently empty because there is no meaningful metadata populated from the
// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces]
// method.
type RemoveFulfillmentPlacesMetadata struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemoveFulfillmentPlacesMetadata) Reset() {
	*x = RemoveFulfillmentPlacesMetadata{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoveFulfillmentPlacesMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoveFulfillmentPlacesMetadata) ProtoMessage() {}

func (x *RemoveFulfillmentPlacesMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoveFulfillmentPlacesMetadata.ProtoReflect.Descriptor instead.
func (*RemoveFulfillmentPlacesMetadata) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{19}
}

// Response of the RemoveFulfillmentPlacesRequest. Currently empty because there
// is no meaningful response populated from the
// [ProductService.RemoveFulfillmentPlaces][google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces]
// method.
type RemoveFulfillmentPlacesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemoveFulfillmentPlacesResponse) Reset() {
	*x = RemoveFulfillmentPlacesResponse{}
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoveFulfillmentPlacesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoveFulfillmentPlacesResponse) ProtoMessage() {}

func (x *RemoveFulfillmentPlacesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_retail_v2alpha_product_service_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoveFulfillmentPlacesResponse.ProtoReflect.Descriptor instead.
func (*RemoveFulfillmentPlacesResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP(), []int{20}
}

var File_google_cloud_retail_v2alpha_product_service_proto protoreflect.FileDescriptor

const file_google_cloud_retail_v2alpha_product_service_proto_rawDesc = "" +
	"\n" +
	"1google/cloud/retail/v2alpha/product_service.proto\x12\x1bgoogle.cloud.retail.v2alpha\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a(google/cloud/retail/v2alpha/common.proto\x1a/google/cloud/retail/v2alpha/export_config.proto\x1a/google/cloud/retail/v2alpha/import_config.proto\x1a)google/cloud/retail/v2alpha/product.proto\x1a.google/cloud/retail/v2alpha/purge_config.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbd\x01\n" +
	"\x14CreateProductRequest\x12<\n" +
	"\x06parent\x18\x01 \x01(\tB$\xe0A\x02\xfaA\x1e\n" +
	"\x1cretail.googleapis.com/BranchR\x06parent\x12C\n" +
	"\aproduct\x18\x02 \x01(\v2$.google.cloud.retail.v2alpha.ProductB\x03\xe0A\x02R\aproduct\x12\"\n" +
	"\n" +
	"product_id\x18\x03 \x01(\tB\x03\xe0A\x02R\tproductId\"N\n" +
	"\x11GetProductRequest\x129\n" +
	"\x04name\x18\x01 \x01(\tB%\xe0A\x02\xfaA\x1f\n" +
	"\x1dretail.googleapis.com/ProductR\x04name\"\xbd\x01\n" +
	"\x14UpdateProductRequest\x12C\n" +
	"\aproduct\x18\x01 \x01(\v2$.google.cloud.retail.v2alpha.ProductB\x03\xe0A\x02R\aproduct\x12;\n" +
	"\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskR\n" +
	"updateMask\x12#\n" +
	"\rallow_missing\x18\x03 \x01(\bR\fallowMissing\"g\n" +
	"\x14DeleteProductRequest\x129\n" +
	"\x04name\x18\x01 \x01(\tB%\xe0A\x02\xfaA\x1f\n" +
	"\x1dretail.googleapis.com/ProductR\x04name\x12\x14\n" +
	"\x05force\x18\x04 \x01(\bR\x05force\"\x8e\x02\n" +
	"\x13ListProductsRequest\x12<\n" +
	"\x06parent\x18\x01 \x01(\tB$\xe0A\x02\xfaA\x1e\n" +
	"\x1cretail.googleapis.com/BranchR\x06parent\x12\x1b\n" +
	"\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x1d\n" +
	"\n" +
	"page_token\x18\x03 \x01(\tR\tpageToken\x12\x16\n" +
	"\x06filter\x18\x04 \x01(\tR\x06filter\x127\n" +
	"\tread_mask\x18\x05 \x01(\v2\x1a.google.protobuf.FieldMaskR\breadMask\x12,\n" +
	"\x12require_total_size\x18\x06 \x01(\bR\x10requireTotalSize\"\x9f\x01\n" +
	"\x14ListProductsResponse\x12@\n" +
	"\bproducts\x18\x01 \x03(\v2$.google.cloud.retail.v2alpha.ProductR\bproducts\x12&\n" +
	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\x12\x1d\n" +
	"\n" +
	"total_size\x18\x03 \x01(\x05R\ttotalSize\"\xf1\x01\n" +
	"\x13SetInventoryRequest\x12G\n" +
	"\tinventory\x18\x01 \x01(\v2$.google.cloud.retail.v2alpha.ProductB\x03\xe0A\x02R\tinventory\x125\n" +
	"\bset_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskR\asetMask\x125\n" +
	"\bset_time\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\asetTime\x12#\n" +
	"\rallow_missing\x18\x04 \x01(\bR\fallowMissing\"\x16\n" +
	"\x14SetInventoryMetadata\"\x16\n" +
	"\x14SetInventoryResponse\"\xf5\x01\n" +
	"\x1bAddFulfillmentPlacesRequest\x12?\n" +
	"\aproduct\x18\x01 \x01(\tB%\xe0A\x02\xfaA\x1f\n" +
	"\x1dretail.googleapis.com/ProductR\aproduct\x12\x17\n" +
	"\x04type\x18\x02 \x01(\tB\x03\xe0A\x02R\x04type\x12 \n" +
	"\tplace_ids\x18\x03 \x03(\tB\x03\xe0A\x02R\bplaceIds\x125\n" +
	"\badd_time\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\aaddTime\x12#\n" +
	"\rallow_missing\x18\x05 \x01(\bR\fallowMissing\"\x1e\n" +
	"\x1cAddFulfillmentPlacesMetadata\"\x1e\n" +
	"\x1cAddFulfillmentPlacesResponse\"\xcf\x02\n" +
	"\x1aAddLocalInventoriesRequest\x12?\n" +
	"\aproduct\x18\x01 \x01(\tB%\xe0A\x02\xfaA\x1f\n" +
	"\x1dretail.googleapis.com/ProductR\aproduct\x12]\n" +
	"\x11local_inventories\x18\x02 \x03(\v2+.google.cloud.retail.v2alpha.LocalInventoryB\x03\xe0A\x02R\x10localInventories\x125\n" +
	"\badd_mask\x18\x04 \x01(\v2\x1a.google.protobuf.FieldMaskR\aaddMask\x125\n" +
	"\badd_time\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\aaddTime\x12#\n" +
	"\rallow_missing\x18\x06 \x01(\bR\fallowMissing\"\x1d\n" +
	"\x1bAddLocalInventoriesMetadata\"\x1d\n" +
	"\x1bAddLocalInventoriesResponse\"\xe4\x01\n" +
	"\x1dRemoveLocalInventoriesRequest\x12?\n" +
	"\aproduct\x18\x01 \x01(\tB%\xe0A\x02\xfaA\x1f\n" +
	"\x1dretail.googleapis.com/ProductR\aproduct\x12 \n" +
	"\tplace_ids\x18\x02 \x03(\tB\x03\xe0A\x02R\bplaceIds\x12;\n" +
	"\vremove_time\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"removeTime\x12#\n" +
	"\rallow_missing\x18\x03 \x01(\bR\fallowMissing\" \n" +
	"\x1eRemoveLocalInventoriesMetadata\" \n" +
	"\x1eRemoveLocalInventoriesResponse\"\xfe\x01\n" +
	"\x1eRemoveFulfillmentPlacesRequest\x12?\n" +
	"\aproduct\x18\x01 \x01(\tB%\xe0A\x02\xfaA\x1f\n" +
	"\x1dretail.googleapis.com/ProductR\aproduct\x12\x17\n" +
	"\x04type\x18\x02 \x01(\tB\x03\xe0A\x02R\x04type\x12 \n" +
	"\tplace_ids\x18\x03 \x03(\tB\x03\xe0A\x02R\bplaceIds\x12;\n" +
	"\vremove_time\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"removeTime\x12#\n" +
	"\rallow_missing\x18\x05 \x01(\bR\fallowMissing\"!\n" +
	"\x1fRemoveFulfillmentPlacesMetadata\"!\n" +
	"\x1fRemoveFulfillmentPlacesResponse2\xb9\x1d\n" +
	"\x0eProductService\x12\xde\x01\n" +
	"\rCreateProduct\x121.google.cloud.retail.v2alpha.CreateProductRequest\x1a$.google.cloud.retail.v2alpha.Product\"t\xdaA\x19parent,product,product_id\x82\xd3\xe4\x93\x02R:\aproduct\"G/v2alpha/{parent=projects/*/locations/*/catalogs/*/branches/*}/products\x12\xbb\x01\n" +
	"\n" +
	"GetProduct\x12..google.cloud.retail.v2alpha.GetProductRequest\x1a$.google.cloud.retail.v2alpha.Product\"W\xdaA\x04name\x82\xd3\xe4\x93\x02J\x12H/v2alpha/{name=projects/*/locations/*/catalogs/*/branches/*/products/**}\x12\xcd\x01\n" +
	"\fListProducts\x120.google.cloud.retail.v2alpha.ListProductsRequest\x1a1.google.cloud.retail.v2alpha.ListProductsResponse\"X\xdaA\x06parent\x82\xd3\xe4\x93\x02I\x12G/v2alpha/{parent=projects/*/locations/*/catalogs/*/branches/*}/products\x12\xe1\x01\n" +
	"\rUpdateProduct\x121.google.cloud.retail.v2alpha.UpdateProductRequest\x1a$.google.cloud.retail.v2alpha.Product\"w\xdaA\x13product,update_mask\x82\xd3\xe4\x93\x02[:\aproduct2P/v2alpha/{product.name=projects/*/locations/*/catalogs/*/branches/*/products/**}\x12\xb3\x01\n" +
	"\rDeleteProduct\x121.google.cloud.retail.v2alpha.DeleteProductRequest\x1a\x16.google.protobuf.Empty\"W\xdaA\x04name\x82\xd3\xe4\x93\x02J*H/v2alpha/{name=projects/*/locations/*/catalogs/*/branches/*/products/**}\x12\xa5\x02\n" +
	"\rPurgeProducts\x121.google.cloud.retail.v2alpha.PurgeProductsRequest\x1a\x1d.google.longrunning.Operation\"\xc1\x01\xcaAf\n" +
	"1google.cloud.retail.v2alpha.PurgeProductsResponse\x121google.cloud.retail.v2alpha.PurgeProductsMetadata\x82\xd3\xe4\x93\x02R:\x01*\"M/v2alpha/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:purge\x12\xa2\x02\n" +
	"\x0eImportProducts\x122.google.cloud.retail.v2alpha.ImportProductsRequest\x1a\x1d.google.longrunning.Operation\"\xbc\x01\xcaA`\n" +
	"2google.cloud.retail.v2alpha.ImportProductsResponse\x12*google.cloud.retail.v2alpha.ImportMetadata\x82\xd3\xe4\x93\x02S:\x01*\"N/v2alpha/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:import\x12\xa2\x02\n" +
	"\x0eExportProducts\x122.google.cloud.retail.v2alpha.ExportProductsRequest\x1a\x1d.google.longrunning.Operation\"\xbc\x01\xcaA`\n" +
	"2google.cloud.retail.v2alpha.ExportProductsResponse\x12*google.cloud.retail.v2alpha.ExportMetadata\x82\xd3\xe4\x93\x02S:\x01*\"N/v2alpha/{parent=projects/*/locations/*/catalogs/*/branches/*}/products:export\x12\xc8\x02\n" +
	"\fSetInventory\x120.google.cloud.retail.v2alpha.SetInventoryRequest\x1a\x1d.google.longrunning.Operation\"\xe6\x01\xcaAd\n" +
	"0google.cloud.retail.v2alpha.SetInventoryResponse\x120google.cloud.retail.v2alpha.SetInventoryMetadata\xdaA\x12inventory,set_mask\x82\xd3\xe4\x93\x02d:\x01*\"_/v2alpha/{inventory.name=projects/*/locations/*/catalogs/*/branches/*/products/**}:setInventory\x12\xde\x02\n" +
	"\x14AddFulfillmentPlaces\x128.google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest\x1a\x1d.google.longrunning.Operation\"\xec\x01\xcaAt\n" +
	"8google.cloud.retail.v2alpha.AddFulfillmentPlacesResponse\x128google.cloud.retail.v2alpha.AddFulfillmentPlacesMetadata\xdaA\aproduct\x82\xd3\xe4\x93\x02e:\x01*\"`/v2alpha/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:addFulfillmentPlaces\x12\xed\x02\n" +
	"\x17RemoveFulfillmentPlaces\x12;.google.cloud.retail.v2alpha.RemoveFulfillmentPlacesRequest\x1a\x1d.google.longrunning.Operation\"\xf5\x01\xcaAz\n" +
	";google.cloud.retail.v2alpha.RemoveFulfillmentPlacesResponse\x12;google.cloud.retail.v2alpha.RemoveFulfillmentPlacesMetadata\xdaA\aproduct\x82\xd3\xe4\x93\x02h:\x01*\"c/v2alpha/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:removeFulfillmentPlaces\x12\xd9\x02\n" +
	"\x13AddLocalInventories\x127.google.cloud.retail.v2alpha.AddLocalInventoriesRequest\x1a\x1d.google.longrunning.Operation\"\xe9\x01\xcaAr\n" +
	"7google.cloud.retail.v2alpha.AddLocalInventoriesResponse\x127google.cloud.retail.v2alpha.AddLocalInventoriesMetadata\xdaA\aproduct\x82\xd3\xe4\x93\x02d:\x01*\"_/v2alpha/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:addLocalInventories\x12\xe8\x02\n" +
	"\x16RemoveLocalInventories\x12:.google.cloud.retail.v2alpha.RemoveLocalInventoriesRequest\x1a\x1d.google.longrunning.Operation\"\xf2\x01\xcaAx\n" +
	":google.cloud.retail.v2alpha.RemoveLocalInventoriesResponse\x12:google.cloud.retail.v2alpha.RemoveLocalInventoriesMetadata\xdaA\aproduct\x82\xd3\xe4\x93\x02g:\x01*\"b/v2alpha/{product=projects/*/locations/*/catalogs/*/branches/*/products/**}:removeLocalInventories\x1aI\xcaA\x15retail.googleapis.com\xd2A.https://www.googleapis.com/auth/cloud-platformB\xd7\x01\n" +
	"\x1fcom.google.cloud.retail.v2alphaB\x13ProductServiceProtoP\x01Z7cloud.google.com/go/retail/apiv2alpha/retailpb;retailpb\xa2\x02\x06RETAIL\xaa\x02\x1bGoogle.Cloud.Retail.V2Alpha\xca\x02\x1bGoogle\\Cloud\\Retail\\V2alpha\xea\x02\x1eGoogle::Cloud::Retail::V2alphab\x06proto3"

var (
	file_google_cloud_retail_v2alpha_product_service_proto_rawDescOnce sync.Once
	file_google_cloud_retail_v2alpha_product_service_proto_rawDescData []byte
)

func file_google_cloud_retail_v2alpha_product_service_proto_rawDescGZIP() []byte {
	file_google_cloud_retail_v2alpha_product_service_proto_rawDescOnce.Do(func() {
		file_google_cloud_retail_v2alpha_product_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_cloud_retail_v2alpha_product_service_proto_rawDesc), len(file_google_cloud_retail_v2alpha_product_service_proto_rawDesc)))
	})
	return file_google_cloud_retail_v2alpha_product_service_proto_rawDescData
}

var file_google_cloud_retail_v2alpha_product_service_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_google_cloud_retail_v2alpha_product_service_proto_goTypes = []any{
	(*CreateProductRequest)(nil),            // 0: google.cloud.retail.v2alpha.CreateProductRequest
	(*GetProductRequest)(nil),               // 1: google.cloud.retail.v2alpha.GetProductRequest
	(*UpdateProductRequest)(nil),            // 2: google.cloud.retail.v2alpha.UpdateProductRequest
	(*DeleteProductRequest)(nil),            // 3: google.cloud.retail.v2alpha.DeleteProductRequest
	(*ListProductsRequest)(nil),             // 4: google.cloud.retail.v2alpha.ListProductsRequest
	(*ListProductsResponse)(nil),            // 5: google.cloud.retail.v2alpha.ListProductsResponse
	(*SetInventoryRequest)(nil),             // 6: google.cloud.retail.v2alpha.SetInventoryRequest
	(*SetInventoryMetadata)(nil),            // 7: google.cloud.retail.v2alpha.SetInventoryMetadata
	(*SetInventoryResponse)(nil),            // 8: google.cloud.retail.v2alpha.SetInventoryResponse
	(*AddFulfillmentPlacesRequest)(nil),     // 9: google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest
	(*AddFulfillmentPlacesMetadata)(nil),    // 10: google.cloud.retail.v2alpha.AddFulfillmentPlacesMetadata
	(*AddFulfillmentPlacesResponse)(nil),    // 11: google.cloud.retail.v2alpha.AddFulfillmentPlacesResponse
	(*AddLocalInventoriesRequest)(nil),      // 12: google.cloud.retail.v2alpha.AddLocalInventoriesRequest
	(*AddLocalInventoriesMetadata)(nil),     // 13: google.cloud.retail.v2alpha.AddLocalInventoriesMetadata
	(*AddLocalInventoriesResponse)(nil),     // 14: google.cloud.retail.v2alpha.AddLocalInventoriesResponse
	(*RemoveLocalInventoriesRequest)(nil),   // 15: google.cloud.retail.v2alpha.RemoveLocalInventoriesRequest
	(*RemoveLocalInventoriesMetadata)(nil),  // 16: google.cloud.retail.v2alpha.RemoveLocalInventoriesMetadata
	(*RemoveLocalInventoriesResponse)(nil),  // 17: google.cloud.retail.v2alpha.RemoveLocalInventoriesResponse
	(*RemoveFulfillmentPlacesRequest)(nil),  // 18: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesRequest
	(*RemoveFulfillmentPlacesMetadata)(nil), // 19: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesMetadata
	(*RemoveFulfillmentPlacesResponse)(nil), // 20: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesResponse
	(*Product)(nil),                         // 21: google.cloud.retail.v2alpha.Product
	(*fieldmaskpb.FieldMask)(nil),           // 22: google.protobuf.FieldMask
	(*timestamppb.Timestamp)(nil),           // 23: google.protobuf.Timestamp
	(*LocalInventory)(nil),                  // 24: google.cloud.retail.v2alpha.LocalInventory
	(*PurgeProductsRequest)(nil),            // 25: google.cloud.retail.v2alpha.PurgeProductsRequest
	(*ImportProductsRequest)(nil),           // 26: google.cloud.retail.v2alpha.ImportProductsRequest
	(*ExportProductsRequest)(nil),           // 27: google.cloud.retail.v2alpha.ExportProductsRequest
	(*emptypb.Empty)(nil),                   // 28: google.protobuf.Empty
	(*longrunningpb.Operation)(nil),         // 29: google.longrunning.Operation
}
var file_google_cloud_retail_v2alpha_product_service_proto_depIdxs = []int32{
	21, // 0: google.cloud.retail.v2alpha.CreateProductRequest.product:type_name -> google.cloud.retail.v2alpha.Product
	21, // 1: google.cloud.retail.v2alpha.UpdateProductRequest.product:type_name -> google.cloud.retail.v2alpha.Product
	22, // 2: google.cloud.retail.v2alpha.UpdateProductRequest.update_mask:type_name -> google.protobuf.FieldMask
	22, // 3: google.cloud.retail.v2alpha.ListProductsRequest.read_mask:type_name -> google.protobuf.FieldMask
	21, // 4: google.cloud.retail.v2alpha.ListProductsResponse.products:type_name -> google.cloud.retail.v2alpha.Product
	21, // 5: google.cloud.retail.v2alpha.SetInventoryRequest.inventory:type_name -> google.cloud.retail.v2alpha.Product
	22, // 6: google.cloud.retail.v2alpha.SetInventoryRequest.set_mask:type_name -> google.protobuf.FieldMask
	23, // 7: google.cloud.retail.v2alpha.SetInventoryRequest.set_time:type_name -> google.protobuf.Timestamp
	23, // 8: google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest.add_time:type_name -> google.protobuf.Timestamp
	24, // 9: google.cloud.retail.v2alpha.AddLocalInventoriesRequest.local_inventories:type_name -> google.cloud.retail.v2alpha.LocalInventory
	22, // 10: google.cloud.retail.v2alpha.AddLocalInventoriesRequest.add_mask:type_name -> google.protobuf.FieldMask
	23, // 11: google.cloud.retail.v2alpha.AddLocalInventoriesRequest.add_time:type_name -> google.protobuf.Timestamp
	23, // 12: google.cloud.retail.v2alpha.RemoveLocalInventoriesRequest.remove_time:type_name -> google.protobuf.Timestamp
	23, // 13: google.cloud.retail.v2alpha.RemoveFulfillmentPlacesRequest.remove_time:type_name -> google.protobuf.Timestamp
	0,  // 14: google.cloud.retail.v2alpha.ProductService.CreateProduct:input_type -> google.cloud.retail.v2alpha.CreateProductRequest
	1,  // 15: google.cloud.retail.v2alpha.ProductService.GetProduct:input_type -> google.cloud.retail.v2alpha.GetProductRequest
	4,  // 16: google.cloud.retail.v2alpha.ProductService.ListProducts:input_type -> google.cloud.retail.v2alpha.ListProductsRequest
	2,  // 17: google.cloud.retail.v2alpha.ProductService.UpdateProduct:input_type -> google.cloud.retail.v2alpha.UpdateProductRequest
	3,  // 18: google.cloud.retail.v2alpha.ProductService.DeleteProduct:input_type -> google.cloud.retail.v2alpha.DeleteProductRequest
	25, // 19: google.cloud.retail.v2alpha.ProductService.PurgeProducts:input_type -> google.cloud.retail.v2alpha.PurgeProductsRequest
	26, // 20: google.cloud.retail.v2alpha.ProductService.ImportProducts:input_type -> google.cloud.retail.v2alpha.ImportProductsRequest
	27, // 21: google.cloud.retail.v2alpha.ProductService.ExportProducts:input_type -> google.cloud.retail.v2alpha.ExportProductsRequest
	6,  // 22: google.cloud.retail.v2alpha.ProductService.SetInventory:input_type -> google.cloud.retail.v2alpha.SetInventoryRequest
	9,  // 23: google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces:input_type -> google.cloud.retail.v2alpha.AddFulfillmentPlacesRequest
	18, // 24: google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces:input_type -> google.cloud.retail.v2alpha.RemoveFulfillmentPlacesRequest
	12, // 25: google.cloud.retail.v2alpha.ProductService.AddLocalInventories:input_type -> google.cloud.retail.v2alpha.AddLocalInventoriesRequest
	15, // 26: google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories:input_type -> google.cloud.retail.v2alpha.RemoveLocalInventoriesRequest
	21, // 27: google.cloud.retail.v2alpha.ProductService.CreateProduct:output_type -> google.cloud.retail.v2alpha.Product
	21, // 28: google.cloud.retail.v2alpha.ProductService.GetProduct:output_type -> google.cloud.retail.v2alpha.Product
	5,  // 29: google.cloud.retail.v2alpha.ProductService.ListProducts:output_type -> google.cloud.retail.v2alpha.ListProductsResponse
	21, // 30: google.cloud.retail.v2alpha.ProductService.UpdateProduct:output_type -> google.cloud.retail.v2alpha.Product
	28, // 31: google.cloud.retail.v2alpha.ProductService.DeleteProduct:output_type -> google.protobuf.Empty
	29, // 32: google.cloud.retail.v2alpha.ProductService.PurgeProducts:output_type -> google.longrunning.Operation
	29, // 33: google.cloud.retail.v2alpha.ProductService.ImportProducts:output_type -> google.longrunning.Operation
	29, // 34: google.cloud.retail.v2alpha.ProductService.ExportProducts:output_type -> google.longrunning.Operation
	29, // 35: google.cloud.retail.v2alpha.ProductService.SetInventory:output_type -> google.longrunning.Operation
	29, // 36: google.cloud.retail.v2alpha.ProductService.AddFulfillmentPlaces:output_type -> google.longrunning.Operation
	29, // 37: google.cloud.retail.v2alpha.ProductService.RemoveFulfillmentPlaces:output_type -> google.longrunning.Operation
	29, // 38: google.cloud.retail.v2alpha.ProductService.AddLocalInventories:output_type -> google.longrunning.Operation
	29, // 39: google.cloud.retail.v2alpha.ProductService.RemoveLocalInventories:output_type -> google.longrunning.Operation
	27, // [27:40] is the sub-list for method output_type
	14, // [14:27] is the sub-list for method input_type
	14, // [14:14] is the sub-list for extension type_name
	14, // [14:14] is the sub-list for extension extendee
	0,  // [0:14] is the sub-list for field type_name
}

func init() { file_google_cloud_retail_v2alpha_product_service_proto_init() }
func file_google_cloud_retail_v2alpha_product_service_proto_init() {
	if File_google_cloud_retail_v2alpha_product_service_proto != nil {
		return
	}
	file_google_cloud_retail_v2alpha_common_proto_init()
	file_google_cloud_retail_v2alpha_export_config_proto_init()
	file_google_cloud_retail_v2alpha_import_config_proto_init()
	file_google_cloud_retail_v2alpha_product_proto_init()
	file_google_cloud_retail_v2alpha_purge_config_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_cloud_retail_v2alpha_product_service_proto_rawDesc), len(file_google_cloud_retail_v2alpha_product_service_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   21,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_google_cloud_retail_v2alpha_product_service_proto_goTypes,
		DependencyIndexes: file_google_cloud_retail_v2alpha_product_service_proto_depIdxs,
		MessageInfos:      file_google_cloud_retail_v2alpha_product_service_proto_msgTypes,
	}.Build()
	File_google_cloud_retail_v2alpha_product_service_proto = out.File
	file_google_cloud_retail_v2alpha_product_service_proto_goTypes = nil
	file_google_cloud_retail_v2alpha_product_service_proto_depIdxs = nil
}
