Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
food_menu.proto
// Feeds declarationsyntax="proto3";packagefood.menu.v1;import"google/protobuf/timestamp.proto";import"money.proto";import"localized_text.proto";optiongo_package="food/menu/v1/proto";messageFoodMenuFeed{repeatedMenuComponentdata=1;}messageMenuComponent{oneoftype{food.menu.v1.Menumenu=1;food.menu.v1.MenuSectionsection=2;food.menu.v1.MenuItemitem=3;food.menu.v1.MenuItemOptionoption=4;}}// Top-level catalog of food items offered by a Food establishment. Menu// contains a list of merchant ids and the menu that apply to those merchants.// A Menu can be used to represent single merchant with the menu, or multiple// merchants (typically chain restaurants) with the menus.messageMenu{// An opaque string from a partner which uniquely identifies the Menu within// the partner feed.// Required.stringmenu_id=1;// The merchants to whom the menu apply.// Note: This field is repeated so chain restaurants can share the same menu// across multiple locations, each of which is a separate merchant.// Required.repeatedstringmerchant_ids=2;// The name that can identify the Menu when a user is browsing the menu.// Optional.TextFielddisplay_name=3;// The default language code associated with the text labels contained in the// menu. Expects BCP-47 language code, such as "en-US" or "sr-Latn".//// For more information, see// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.// Optional.stringlanguage=4;// Disclaimer to be shown to the user for the menu. For example, nutritional// information disclosure and allergen disclosure.// Optional.Disclaimerdisclaimer=5;// IDs of items contained within this menu. Expects first-level menu items// only.// Optional.repeatedstringmenu_item_ids=6;// IDs of sections contained within this menu. Expects first-level menu// sections only.// Optional.repeatedstringmenu_section_ids=7;// Timestamp when this Menu or any of its contents was last updated by the// restaurant; i.e. a date to be associated with the phrase “accurate as of// date”.// Optional.google.protobuf.Timestamplast_merchant_update_time=8;}// A menu section is a grouping of items on a menu. Separate MenuSections are// usually created for each logical grouping of items on a menu. For example,// meal course type (Appetizer, Main, Dessert) and food categories (Burgers,// Drinks) are typical sections.messageMenuSection{// An opaque string from a partner that uniquely identifies the MenuSection// within the partner feed.// Required.stringmenu_section_id=1;// The name that can identify the MenuSection when a user is browsing the// menu.// Required.TextFielddisplay_name=2;// A description of the menu section.// Optional.TextFielddescription=3;// Image(s) of the menu section.// Optional.repeatedImageimages=4;// IDs of MenuItem entities that correspond to this MenuSection entity. A// section is expected to have at least 1 item if it does not contain any// sub-sections.// Optional.repeatedstringmenu_item_ids=6;// Child MenuSections (sub-sections) that correspond to this MenuSection// entity.// Optional.repeatedstringmenu_section_ids=7;}// Represents a single food or drink item offered by a Food establishment.messageMenuItem{// An opaque string from a partner that uniquely identifies the MenuItem// within the partner feed.// Required.stringmenu_item_id=1;// The name that can identify the MenuItem when a user is browsing the menu.// Required.TextFielddisplay_name=2;// A description of the menu item.// Optional.TextFielddescription=3;// Image(s) of the menu item.// Optional.repeatedImageimages=4;// Container that specifies a list of options available on an item.messageMenuItemOptionSet{// IDs of menu item options that are applicable to this menu item.// Required.repeatedstringmenu_item_option_ids=1;}// The menu item must either have a price, or a set of menu item options.// Required.oneofpricing{// Available offers to purchase this food item.OfferSetoffer_set=6;// Available options for this menu item.MenuItemOptionSetmenu_item_option_set=7;}// Attributes about this menu item.// Optional.MenuItemAttributesitem_attributes=8;}// Describes choices that a user would be required to make when selecting a// dish / combo. The user must select an option, otherwise the order is// considered invalid (e.g. the user must choose small, medium, or large for a// pizza).messageMenuItemOption{// An opaque string from a partner that uniquely identifies the// MenuItemOption within the partner feed.// Required.stringmenu_item_option_id=9;// Option property and value e.g. Size: Small.// Required.MenuItemOptionPropertyvalue=2;// Available offers to purchase this menu item option.// Required.OfferSetoffer_set=4;// Attributes about this menu item option.// Optional.MenuItemAttributesitem_attributes=5;}// Describes attributes about a particular menu item or option.messageMenuItemAttributes{// Number of servings available in a given menu item.// Optional.int32number_of_servings=1;// Describes all the nutritional information of the item, e.g. calories, fat// content.// Optional.NutritionInformationnutrition_information=2;// The dietary restrictions that this menu item complies with.// Optional.repeatedDietaryRestrictionsuitable_diets=3;// Additives of this menu item.// Optional.repeatedAdditiveadditive=4;// Allergens of this menu item.// Optional.repeatedAllergenallergen=5;// Packaging and recycling information of this menu item.// Optional.DepositInfopackaging_deposit_info=6;}// Container for a list of offers available on a menu item / option.// Only one offer should be applicable/valid at one particular time.// For example, a drink can have 2 offers where one is applicable in the morning// while the other is applicable in the evening during happy hours.messageOfferSet{// List of possible offers.// Required.repeatedOfferoffers=1;}// Represents pricing and availability information for MenuItems and// MenuItemOptions.messageOffer{// Monetary value of the menu item/option on sale. Can be empty to show no// price.// Required.google.type.Moneyprice=1;}// Partner provided disclaimer shown to the user. Contains a text disclaimer// along with an optional URL for more information.// Some example include: associated medical risks/warnings, any additional// fees/gratutity, etc.messageDisclaimer{// Body of the disclaimer text to be shown to the user.// Required.TextFieldtext=1;// URL containing more information about the disclaimer.// Optional.stringuri=2;}// A text payload that contains one or more localized values.messageTextField{// Per-locale text values.//// If there is only one desired locale support, then the language_code within// each text is not required to be set and the language will be inferred from// the default language of the menu.//// If there are multiple texts across different locales, then the// language_code must be set for each text. The first text in the list is// considered the preferred representation.// Required.repeatedgoogle.type.LocalizedTexttext=1;}// Represents an image associated with a menu entity.messageImage{// URL containing the raw pixels of the image.// Required.stringuri=1;}// Describes the property of a menu item option and its value.messageMenuItemOptionProperty{// Types of property that the option is for.enumPropertyType{// Do not use. The property type is not explicitly specified.UNKNOWN_PROPERTY_TYPE=0;// A generic menu item option property, which is not one of the more// specific types below. Use this if the property is not of type// SIZE or PIZZA_SIDE.OPTION=1;// Denotes the menu item option property of size (e.g. small, medium, or// large).SIZE=2;// Property specific to pizzas. For example: this MenuItemOption is only// valid for a portion/whole pizza, such as mushroom toppings on the left// side, right side, or whole pizza).PIZZA_SIDE=3;}// Well-defined values for the option property.enumPropertyValue{// Do not use. The property value is not explicitly specified.UNKNOWN_PROPERTY_VALUE=0;// The MenuItemOption applies only to the left side of a pizza.PIZZA_SIDE_LEFT=1;// The MenuItemOption applies only to the right side of a pizza.PIZZA_SIDE_RIGHT=2;// The MenuItemOption applies to the entire pizza.PIZZA_SIDE_WHOLE=3;}// The type of this option property.// Required.PropertyTypeproperty_type=1;// Required.oneofvalue{// A well-defined value for the option property. Currently only expected// if the property_type is PIZZA_SIDE.PropertyValueproperty_val=2;// A free-form text for the value of the property. Expected for// property_type OPTION and SIZE.TextFieldtext_val=3;}}// Describes all the nutritional measurements of a MenuItem or add-on.messageNutritionInformation{// Describes a single nutritional measurement of the serving of food.messageNutritionValue{// Describes a closed range for the nutrition value. E.g. "100-150 cal"messageRange{// The minimum amount of nutrition value.// Required.doublemin=1;// The maximum amount of nutrition value.// Required.doublemax=2;}// Required oneof.oneofvalue{// A single number representing the amount of nutritional value.doubleamount=1;// A range representing the amount of nutritional value.Rangerange=3;}// The unit associated with the amount as specified from the partner. We// will validate the feed so that the unit for each type of nutrition value// is expected for that type of value. For example, only ENERGY_CALORIES// and ENERGY_KILOJOULES are expected on energy property of// NutritionalInformation.// Required.NutritionValueUnitunit=2;}// The amount of nutritional energy of the serving of food. Can be defined// in Calories or kilojoules.// Optional.NutritionValueenergy=1;// The amount of sodium content, measured in grams or milligrams.// Optional.NutritionValuesodium_content=2;// The number of servings the nutrition value applies to.// Optional.int32serving_size=3;// Nutrition information in free text. For example "Contains preservatives".// Optional.TextFielddescription=4;}// Indicates a dietary restriction or guideline adhered to during// food preparation.enumDietaryRestriction{// Do not use. The dietary restriction is not explicitly specified.DIET_UNSPECIFIED=0;DIET_DIABETIC=1;DIET_GLUTEN_FREE=2;DIET_HALAL=3;DIET_HINDU=4;DIET_KOSHER=5;DIET_LOW_CALORIE=6;DIET_LOW_FAT=7;DIET_LOW_LACTOSE=8;DIET_LOW_SALT=9;DIET_VEGAN=10;DIET_VEGETARIAN=11;}// Additive shown to the user on the MenuItem. An additive preserves or enhances// the quality of the food.messageAdditive{// Descriptive text of the additive, e.g. "preservatives".// Required.TextFieldname=1;// Whether the MenuItem contains, may contain, or is free from this additive.// Defaults to contains.// Optional.ContainmentLevelCodecontainment_level_code=2;}// Allergen shown to the user on the MenuItem. An allergen relates to qualities// of food that causes allergic reactions.messageAllergen{// Type of allergen.// Required.AllergenTypeCodeallergen_type_code=1;// Whether the MenuItem contains, may contain, or is free from this allergen.// Defaults to contains.// Optional.ContainmentLevelCodecontainment_level_code=2;}// Allergen type derived from GS1: http://gs1.org/voc/AllergenTypeCodeenumAllergenTypeCode{// Do not use. The allergen type code is not explicitly specified.ALLERGEN_TYPE_CODE_UNSPECIFIED=0;ALLERGEN_TYPE_CODE_ALMONDS=1;ALLERGEN_TYPE_CODE_ALPHA_ISOMETHYL_IONONE=2;ALLERGEN_TYPE_CODE_ALCOHOL=3;ALLERGEN_TYPE_CODE_AMYL_CINNAMAL=4;ALLERGEN_TYPE_CODE_ANISE_ALCOHOL=5;ALLERGEN_TYPE_CODE_BARLEY=6;ALLERGEN_TYPE_CODE_BENZYL_ALCOHOL=7;ALLERGEN_TYPE_CODE_BENZYL_BENZOATE=8;ALLERGEN_TYPE_CODE_BENZYL_CINNAMATE=9;ALLERGEN_TYPE_CODE_BENZYL_SALICYLATE=10;ALLERGEN_TYPE_CODE_BRAZIL_NUTS=11;ALLERGEN_TYPE_CODE_BUTYLPHENYL_METHYLPROPIONATE=12;ALLERGEN_TYPE_CODE_CARROTS=13;ALLERGEN_TYPE_CODE_CASHEW_NUTS=14;ALLERGEN_TYPE_CODE_CELERY=15;ALLERGEN_TYPE_CODE_CEREALS_CONTAINING_GLUTEN=16;ALLERGEN_TYPE_CODE_CINNAMAL=17;ALLERGEN_TYPE_CODE_CINNAMYL_ALCOHOL=18;ALLERGEN_TYPE_CODE_CITRAL=19;ALLERGEN_TYPE_CODE_CITRONELLOL=20;ALLERGEN_TYPE_CODE_COCOA=21;ALLERGEN_TYPE_CODE_CORIANDER=22;ALLERGEN_TYPE_CODE_CORN=23;ALLERGEN_TYPE_CODE_COUMARIN=24;ALLERGEN_TYPE_CODE_CRUSTACEANS=25;ALLERGEN_TYPE_CODE_EGGS=26;ALLERGEN_TYPE_CODE_EUGENOL=27;ALLERGEN_TYPE_CODE_EVERNIA_FURFURACEA=28;ALLERGEN_TYPE_CODE_EVERNIA_PRUNASTRI=29;ALLERGEN_TYPE_CODE_FARNESOL=30;ALLERGEN_TYPE_CODE_FISH=31;ALLERGEN_TYPE_CODE_GERANIOL=32;ALLERGEN_TYPE_CODE_GLUTEN=33;ALLERGEN_TYPE_CODE_HAZELNUTS=34;ALLERGEN_TYPE_CODE_HEXYL_CINNAMAL=35;ALLERGEN_TYPE_CODE_HYDROXYCITRONELLAL=36;ALLERGEN_TYPE_CODE_HYDROXYISOHEXYL_3_CYCLOHEXENE_CARBOXALDEHYDE_ISOEUGENOL_LIMONENE_LINAL=37;ALLERGEN_TYPE_CODE_KAMUT=38;ALLERGEN_TYPE_CODE_LACTOSE=39;ALLERGEN_TYPE_CODE_LUPINE=40;ALLERGEN_TYPE_CODE_MACADAMIA_NUTS=41;ALLERGEN_TYPE_CODE_METHYL_2_OCTYNOATE=42;ALLERGEN_TYPE_CODE_MILK=43;ALLERGEN_TYPE_CODE_MOLLUSCS=44;ALLERGEN_TYPE_CODE_MUSTARD=45;ALLERGEN_TYPE_CODE_NO_DECLARED_ALLERGENS=46;ALLERGEN_TYPE_CODE_OAT=47;ALLERGEN_TYPE_CODE_PEANUTS=48;ALLERGEN_TYPE_CODE_PEAS=49;ALLERGEN_TYPE_CODE_PECAN_NUTS=50;ALLERGEN_TYPE_CODE_PISTACHIOS=51;ALLERGEN_TYPE_CODE_POD_FRUITS=52;ALLERGEN_TYPE_CODE_QUEENSLAND_NUTS=53;ALLERGEN_TYPE_CODE_RYE=54;ALLERGEN_TYPE_CODE_SESAME_SEEDS=55;ALLERGEN_TYPE_CODE_SOYBEANS=56;ALLERGEN_TYPE_CODE_SPELT=57;ALLERGEN_TYPE_CODE_SULPHUR_DIOXIDE=58;ALLERGEN_TYPE_CODE_TREE_NUTS=59;ALLERGEN_TYPE_CODE_TREE_NUT_TRACES=60;ALLERGEN_TYPE_CODE_WALNUTS=61;ALLERGEN_TYPE_CODE_WHEAT=62;}// Partner provided deposit info to instruct the user how to deposit a food item// or bottle and the value of such deposit.messageDepositInfo{// The deposit strategy to employ, e.g. "reusable".// Optional.DepositCodedeposit_code=1;// Value refunded for depositing the item properly.// Optional.google.type.Moneydeposit_value=2;}enumNutritionValueUnit{// Do not use. The nutrition value unit is not explicitly set.NUTRITION_VALUE_UNIT_UNSPECIFIED=0;// Units used to express the amount of energy in a menu item.ENERGY_CALORIES=1;ENERGY_KILOJOULES=2;// Units used to express the amount in weight a substance is present in the// menu item.WEIGHT_MILLIGRAMS=3;WEIGHT_GRAMS=4;}// Indicates the level of containment a food item has of a certain attribute,// such as allergens or additives.enumContainmentLevelCode{// Do not use. The containment level code is not explicitly specified.CONTAINMENT_LEVEL_CODE_UNSPECIFIED=0;CONTAINMENT_LEVEL_CODE_CONTAINS=1;CONTAINMENT_LEVEL_CODE_DOES_NOT_CONTAIN=2;CONTAINMENT_LEVEL_CODE_MAY_CONTAIN=3;}// Indicates how to properly deposit a food item or bottle.enumDepositCode{// Do not use. The deposite code is not explicitly specified.DEPOSIT_CODE_UNSPECIFIED=0;DEPOSIT_CODE_REUSABLE=1;DEPOSIT_CODE_RECYCLABLE=2;}
// Copyright 2025 Google LLC//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at//// http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.syntax="proto3";packagegoogle.type;optioncc_enable_arenas=true;optiongo_package="google.golang.org/genproto/googleapis/type/localized_text;localized_text";optionjava_multiple_files=true;optionjava_outer_classname="LocalizedTextProto";optionjava_package="com.google.type";optionobjc_class_prefix="GTP";// Localized variant of a text in a particular language.messageLocalizedText{// Localized string in the language corresponding to `language_code' below.stringtext=1;// The text's BCP-47 language code, such as "en-US" or "sr-Latn".//// For more information, see// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.stringlanguage_code=2;}
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/03/01 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/03/01 (UTC)."],[[["`food_menu.proto` defines a protocol buffer schema for representing food menus, encompassing menus, sections, items, options, pricing, and nutritional data."],["Key messages include `FoodMenuFeed`, `MenuComponent`, `Menu`, `MenuSection`, `MenuItem`, and `MenuItemOption`, forming a hierarchical structure for menu data."],["Items can have options, attributes (dietary restrictions, allergens), and pricing details, offering a comprehensive view of each menu item."],["The schema utilizes standard data types like strings, timestamps, enumerations, and custom messages to represent various menu aspects."],["`food_menu.proto` enables standardized menu data sharing, facilitating menu displays, ordering systems, and integration with various services."]]],["The structure defines a `FoodMenuFeed` containing `MenuComponent` items (Menus, Sections, Items, Options). `Menu` has unique identifiers, merchant associations, display names, and sections/items. `MenuSection` groups items, and `MenuItem` represents individual items with pricing, images, and options. `MenuItemOption` provides item variations. Supporting elements include `Offer` for pricing, `NutritionInformation`, `Allergen`, `Additive`, `DepositInfo`, `DietaryRestriction`, `Image`, `TextField`, `MenuItemOptionSet` and `MenuItemAttributes`. Unique IDs and localization are key.\n"]]