//Feedsdeclarationsyntax="proto3";import"google/protobuf/duration.proto";import"google/protobuf/timestamp.proto";import"google/type/timeofday.proto";import"google/type/dayofweek.proto";import"google/type/money.proto";import"google/type/latlng.proto";packagemadden.ingestion;//MerchantfeedstartsmessageEntityFeed{repeatedEntitydata=1;}////InformationaboutanEntitythatisonthepartner's platform. For example,//anEntitycouldbearetailstore,ahospital,anonlinebusinessetc.messageEntity{//AnopaquestringgeneratedbythepartnerthatidentifiesanEntity.//Mustbeuniqueacrossallentities.//StronglyrecommendedtoonlyincludeURL-safecharacters.(required)stringentity_id=1;//Ifpresent,thename,telephone,urlandlocationareusedtosupport//matchingpartnerinventorywithentitiesalreadypresentonGoogle.This//informationwillnotbedisplayed.//ThenameoftheEntity.(required)stringname=2;//ThecontacttelephonenumberoftheEntityincludingitscountryandarea//codes,e.g.+14567891234.Highlyrecommended.(optional)stringtelephone=3;//TheurloftheEntity's public website. Highly recommended. (optional)stringurl=4;//ThelocationoftheEntity(required)madden.ingestion.GeoCoordinateslocation=5;}//TheGeodataofalocation,includinglatitude,longitude,andaddress.//Atleastoneof[lat/lngoraddress]shouldbeprovided(orboth).messageGeoCoordinates{//[-90,+90]degrees(inclusive).(optional)doublelatitude=1;//[-180,+180]degrees(inclusive).(optional)doublelongitude=2;//Addressforalocation,couldeitherbestructuredorunstructured.oneofaddresses{//Postaladdressofthelocation,preferred.PostalAddressaddress=3;//Anunstructuredaddresscouldalsobeprovidedasafallback.//E.g."1600 amphitheatre parkway mountain view, ca 94043"stringunstructured_address=4;}}//Thepostaladdressforamerchant.messagePostalAddress{//Thecountry,usingISO3166-1alpha-2countrycode,e.g."US"(required)stringcountry=1;//Thelocality/city,e.g."Mountain View".(required)stringlocality=2;//Theregion/state/province,e.g."CA".Thisfieldisonlyrequiredin//countrieswhereregioniscommonlyapartoftheaddress.(optional)stringregion=3;//Thepostalcode,e.g."94043".(required)stringpostal_code=4;//Thestreetaddress,e.g."1600 Amphitheatre Pkwy".(required)stringstreet_address=5;}//Merchantfeedends//ActionsfeedstartsmessageActionFeed{repeatedActionDetaildata=1;}messageActionDetail{stringentity_id=2;stringlink_id=3;//Deeplinkforactiondetailstringurl=4;repeatedActionactions=1;}//InformationaboutanActionwhichcouldbeperformed.messageAction{//Deprecatedfieldsnottobereused.reserved1;oneofaction_info{FoodOrderingInfofood_ordering_info=3;}}messageFoodOrderingInfo{//Servicetypeforfoodorderingaction.enumServiceType{UNKNOWN=0;DELIVERY=1;TAKEOUT=2;}ServiceTypeservice_type=1[features.field_presence=IMPLICIT];}//Actionsfeedends//Servicefeedstarts//FoodOrderingTeam's EPA Service Feeds Spec.messageFoodServiceFeed{//Servicefeedentitydata.repeatedServiceDatadata=1;}//Servicefeedentitydata.messageServiceData{oneoftype{FoodOrderingServiceservice=1;ServiceHoursservice_hours=2;ServiceAreaservice_area=3;Feefee=4;}}messageFoodOrderingService{//Uniqueidentifieroftheprovidedservice.//Required.stringservice_id=1;enumServiceType{SERVICE_TYPE_UNKNOWN=0;DELIVERY=1;TAKEOUT=2;}//Thetypeoftheservice.//RequiredandcannotbeSERVICE_TYPE_UNKNOWN.ServiceTypeservice_type=2;//Theparententity’sID.//Required.stringparent_entity_id=3;//Indicatesiftheentityisdisabled.//Optional.booldisabled=4[features.field_presence=EXPLICIT];//Theleadtimegivenintheserviceentitywillapplytoall//theservicehoursunlessanoverriddenpropertyissetinthe//servicehoursentity.//Required.ETAlead_time=5;//Parentactiondetail's link ID.//Required.stringaction_link_id=6;}//Leadtimerange[min,max).Atleastoneofminormaxneedstobeprovided.//Afixedvaluecanbeprovidedbysettingbothminandmaxtothesamevalue.messageETA{//IndicatesarangeofETAduration.;;}messageFee{//UniqueidentifiertotheFeeentity.//Required.stringfee_id=1;enumFeeType{FEE_TYPE_UNKNOWN=0;DELIVERY=1;SERVICE=2;}//Indicatesthenatureoftheservice,e.g.deliveryfee/servicefee.//Required.FeeTypefee_type=2;oneofamount{option(validator.one_of)={//Afixedamountoffeestobecollected.google.type.Moneyfixed_amount=3;//Arangeoffeesthatcouldbecollected.Willmirror//madden.ingestion.MoneyRangeforthestartingpoint.MoneyRangerange_amount=4;//Feesintermsofamountpercentage.Willmirror//madden.ingestion.QuantitativeValueforthestarter.PercentageBasedFeecart_percentage=5;}//Serviceassociationneedstobeprovided.//Required.repeatedstringservice_ids=6;//Serviceareacanbeprovidedtofurtherrestricteligibilityofthe//fee.//Optional.repeatedstringarea_ids=7;}//Wrapperforarangeofmonetaryamountthatcouldbeboundedorunbounded.//Atleastoneofmin_amountormax_amountisrequired.messageMoneyRange{//Minimumamount.google.type.Moneymin_amount=1;//Maximumamount.google.type.Moneymax_amount=2;}//Variablefeewhichchangesbasedonthepriceoftheorder.messagePercentageBasedFee{//Optional,basefeenotincludingthevariablepercentagebasedfee.google.type.Moneybase_value=1;//Optional,overallrangeofpossiblevaluesofthePercentageBasedFee.MoneyRangerange=2;//Optional,percentagerepresentinganadditionalvariablefeebasedon//thecartsubtotal.E.g.15.0representsafeeof15%ofthecart.doublepercentage_of_cart_value=3;}messageServiceArea{//Uniqueidentifier.//Required.;//Identifiertotheparentserviceentity.//Required.;//Oneofthefollowingneedstobeprovidedtodefinetheservicearea.//Required.oneofregion{option(validator.one_of)={GeoCirclecircle=3;Localitylocality=4;Polygonpolygon=5;}//Setstotrueiftheassignedareaisexcludedfromserving.//Optional.optionalboolexcluded_area=6;}//Geographicalcircularareadescribedbyapointandradius.messageGeoCircle{//Geographicalcenterofthearea.//Required.google.type.LatLngcenter=;//Radiusforthecirculararea,inmeters.Mustbegreaterthan0.//Required.;}//Geolocationofinterests.messageLocality{;//Postalcodeinthecountry's local format in string.stringpostal_code=;}//Representsapolygonshapedregion.messagePolygon{reserved1;//ListofS2Loopswhichdefinesapolygon.Apointisconsideredinthe//polygonifitiscontainedinoddnumberofloops.;}//Representsaloopofgeocoordinates.ThisshouldbeavalidS2Loop.messageLoop{//Pointsmakingtheboundaryofloop.repeatedgoogle.type.LatLngpoint=;}//ServicehoursentityforASAP/Advanceorders.messageServiceHours{//Uniqueidentifieroftheprovidedadvanceservicehours.//Required.stringhours_id=1;//TheuniqueidentifieroftheServiceentitycorrelatedtothisServiceHours//entity.//Required.repeatedstringservice_ids=2;//Thehourstheorderscanbefulfilled.ForASAPservices,thisisalso//orderabletime.//Oneofthefields(asap_hours/advance_hours)isrequiredtobeset.repeatedAsapTimeWindowasap_hours=3;repeatedAdvanceTimeWindowadvance_hours=4;//Whenadvanceorderingservices,thisisthetimewindowstheorderscanbe//placed.//Requiredwhenadvance_hourisgiven.Invalidwhenasap_hourisgiven.repeatedTimeOfDayWindoworderable_time=5;//Indicatesiftheservicehoursareforspecialoccasions//(e.g.Thanksgiving/...)//Optionalboolspecial_hour=6;//Atimestampwindowindicatingthevalidityofthespecialhours.//Optional.Requiredifit's special hours.ValidityRangevalidity_range=7;}messageAsapTimeWindow{//AtimewindowtheASAPordercanbeplacedandfulfilled.//Required.TimeOfDayWindowtime_windows=1;//Indicatestheleadtime,specifictoservice_time,theservicecan//befulfilled.//Optional.ETAlead_time=2;}//Thefulfillmenttimewindowforadvanceorders.messageAdvanceTimeWindow{//Atimewindowtheadvanceordercanbefulfilled.//Required.TimeOfDayWindowtime_windows=1;//awindowthatanadvanceordercanbeplaced.Forexample,anadvance//ordermustbeplacedatleast60minutesaheadandnotexceeding2//days,theintervalwouldbe[PT60M,P2D).//Optional.DurationIntervaladvance_booking_interval=2;}//TheTimeWindowobjectisacompositeentitythatdescribesalist//ofwindowstheuser's order can be either placed or fulfilled.messageTimeOfDayWindow{//Thetimewindowtheordercanbeplaced/fulfilled.//Required.TimeOfDayRangetime_windows=1;//Thelistofdaysinaweekthewindowsareapplied.//Required.Ifnotgiven,weassume7daysaweek.repeatedgoogle.type.DayOfWeekday_of_week=2;}//Aclosed-opentimestamprange.messageValidityRange{//Thebeginningtimeoftherange(inclusive).//Optional.google.protobuf.Timestampvalid_from_time=1;//Theendingtimeoftherange(exclusive).//Optional.google.protobuf.Timestampvalid_through_time=2;}//Aclosed-opendurationrange.messageDurationInterval{//Theminimumduration(inclusive).//Required.google.protobuf.Durationmin_offset=1;//Themaximumduration(exclusive).//Required.google.protobuf.Durationmax_offset=2;}//Aclosed-opentimerange.messageTimeOfDayRange{//ATimeindicatingthebeginningtimeofthedayoftherange(inclusive).//Required.Ifnotgiven,weassume00:00:00.google.type.TimeOfDayopen_time=1;//ATimeindicatingtheendingtimeofthedayoftherange(exclusive).//Required.Ifnotgiven,weassume23:59:59.google.type.TimeOfDayclose_time=2;}//Servicefeedends
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-10-31 UTC."],[[["This document defines protocol buffer messages for ingesting merchant, action, and service data related to food ordering."],["It includes details about entities, actions, service areas, fees, service hours, and other relevant information for food ordering services."],["The messages are designed to support data exchange between partners and Google for food ordering integrations."],["Data is organized into feeds, with each feed containing repeated instances of specific message types."],["Key data points captured include entity information (e.g., name, location), action details (e.g., food ordering), and service specifics (e.g., delivery, takeout, fees, service hours)."]]],[]]