Class: Google::Cloud::Retail::V2::Product

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/cloud/retail/v2/product.rb

Overview

Product captures all metadata information of items to be recommended or searched.

Defined Under Namespace

Modules: Availability, Type Classes: AttributesEntry

Instance Attribute Summary collapse

Instance Attribute Details

#attributes::Google::Protobuf::Map{::String => ::Google::Cloud::Retail::V2::CustomAttribute}



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#audience::Google::Cloud::Retail::V2::Audience



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#availability::Google::Cloud::Retail::V2::Product::Availability



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#available_quantity::Google::Protobuf::Int32Value



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#available_time::Google::Protobuf::Timestamp



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#brands::Array<::String>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#categories::Array<::String>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#collection_member_ids::Array<::String>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#color_info::Google::Cloud::Retail::V2::ColorInfo



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#conditions::Array<::String>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#description::String



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#expire_time::Google::Protobuf::Timestamp



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#fulfillment_info::Array<::Google::Cloud::Retail::V2::FulfillmentInfo>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#gtin::String



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#id::String



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#images::Array<::Google::Cloud::Retail::V2::Image>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#language_code::String



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#local_inventories::Array<::Google::Cloud::Retail::V2::LocalInventory> (readonly)



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#materials::Array<::String>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#name::String



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#patterns::Array<::String>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#price_info::Google::Cloud::Retail::V2::PriceInfo



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#primary_product_id::String



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#promotions::Array<::Google::Cloud::Retail::V2::Promotion>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#publish_time::Google::Protobuf::Timestamp



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#rating::Google::Cloud::Retail::V2::Rating



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#retrievable_fields::Google::Protobuf::FieldMask

Deprecated.

This field is deprecated and may be removed in the next major version update.

Returns Indicates which fields in the Products are returned in SearchResponse.

Supported fields for all types:

Supported fields only for Type.PRIMARY and Type.COLLECTION:

Supported fields only for Type.VARIANT:

  • Only the first image in images

To mark attributes as retrievable, include paths of the form "attributes.key" where "key" is the key of a custom attribute, as specified in attributes.

For Type.PRIMARY and Type.COLLECTION, the following fields are always returned in SearchResponse by default:

For Type.VARIANT, the following fields are always returned in by default:

Note: Returning more fields in SearchResponse can increase response payload size and serving latency.

This field is deprecated. Use the retrievable site-wide control instead.



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#sizes::Array<::String>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#tags::Array<::String>



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#title::String



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#ttl::Google::Protobuf::Duration



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#type::Google::Cloud::Retail::V2::Product::Type



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#uri::String



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end

#variants::Array<::Google::Cloud::Retail::V2::Product> (readonly)



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'proto_docs/google/cloud/retail/v2/product.rb', line 516

class Product
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Retail::V2::CustomAttribute]
  class AttributesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # The type of this product.
  module Type
    # Default value. Default to
    # {::Google::Cloud::Retail::V2::ProductLevelConfig#ingestion_product_type Catalog.product_level_config.ingestion_product_type}
    # if unset.
    TYPE_UNSPECIFIED = 0

    # The primary type.
    #
    # As the primary unit for predicting, indexing and search serving, a
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product} is grouped with multiple
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s.
    PRIMARY = 1

    # The variant type.
    #
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s usually share some common
    # attributes on the same
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s, but they have variant
    # attributes like different colors, sizes and prices, etc.
    VARIANT = 2

    # The collection type. Collection products are bundled
    # {::Google::Cloud::Retail::V2::Product::Type::PRIMARY Type.PRIMARY}
    # {::Google::Cloud::Retail::V2::Product Product}s or
    # {::Google::Cloud::Retail::V2::Product::Type::VARIANT Type.VARIANT}
    # {::Google::Cloud::Retail::V2::Product Product}s that are sold together, such
    # as a jewelry set with necklaces, earrings and rings, etc.
    COLLECTION = 3
  end

  # Product availability. If this field is unspecified, the product is
  # assumed to be in stock.
  module Availability
    # Default product availability. Default to
    # {::Google::Cloud::Retail::V2::Product::Availability::IN_STOCK Availability.IN_STOCK}
    # if unset.
    AVAILABILITY_UNSPECIFIED = 0

    # Product in stock.
    IN_STOCK = 1

    # Product out of stock.
    OUT_OF_STOCK = 2

    # Product that is in pre-order state.
    PREORDER = 3

    # Product that is back-ordered (i.e. temporarily out of stock).
    BACKORDER = 4
  end
end