{"componentChunkName":"component---src-templates-redoc-operation-js","path":"/menus/tag/Data-definitions/schema/Portion/","result":{"data":{"contentItem":{"type":"redoc-operation","link":"/menus/tag/Data-definitions/schema/Portion/","data":{"redocStoreStr":"{\"menu\":{\"activeItemIdx\":-1},\"definition\":{\"data\":{\"openapi\":\"3.0.0\",\"info\":{\"version\":\"2.4.1\",\"title\":\"Menus API\",\"description\":\"Returns information about a restaurant's menus.\\n\\n_Important:_ Ordering integrations should use menus API V3. Other integration types should continue to use menus API V2 until further notice. See <a href=\\\"https://doc.toasttab.com/doc/devguide/apiComparingMenusAPIV2AndV3.html\\\">Comparing menus API V2 and V3</a> for more information.\\n\",\"contact\":{\"name\":\"Toast developer support\"}},\"paths\":{\"/menus\":{\"get\":{\"operationId\":\"menusGet\",\"summary\":\"Get menus\",\"description\":\"Get menus\\n\",\"parameters\":[{\"name\":\"Toast-Restaurant-External-ID\",\"description\":\"The identifier for the restaurant.\",\"in\":\"header\",\"required\":true,\"schema\":{\"type\":\"string\",\"format\":\"uuid\"}}],\"responses\":{\"200\":{\"description\":\"Successful operation\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Restaurant\"}}}},\"404\":{\"description\":\"No published data was found for the restaurant. Ensure that the restaurant GUID is correct and that its data has been published.\"},\"503\":{\"description\":\"Unable to retrieve menus for the restaurant due to a service outage.\"}},\"security\":[{\"oauth2\":[\"menus:read\"]}]}},\"/metadata\":{\"get\":{\"operationId\":\"metadataGet\",\"summary\":\"Get menu last modified timestamp\\n\",\"description\":\"A lightweight endpoint that allows you to determine if a restaurant's menu data has been updated. Toast support strongly recommends that you do not make a call to the `/menus` endpoint unless the date and time returned by the `/metadata` endpoint is more recent than the `lastUpdated` date and time. While this recommendation applies to all clients of the menus API, it is particularly important for clients that have limited bandwidth.\\n\",\"parameters\":[{\"name\":\"Toast-Restaurant-External-ID\",\"description\":\"The identifier for the restaurant.\",\"in\":\"header\",\"required\":true,\"schema\":{\"type\":\"string\",\"format\":\"uuid\"}}],\"responses\":{\"200\":{\"description\":\"successful operation\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Metadata\"}}}}},\"security\":[{\"oauth2\":[\"menus:read\"]}]}}},\"servers\":[{\"url\":\"https://toast-api-server/menus/v2\"}],\"components\":{\"securitySchemes\":{\"oauth2\":{\"description\":\"Access to Toast APIs, specific endpoints, \\nand specific API endpoint operations is \\ncontrolled by the scopes that are associated \\nwith your API account. \\n\\nA full reference for Toast API scopes and \\ntheir capabilities can be found in the\\n[_Toast Developer Guide_](https://doc.toasttab.com/doc/devguide/apiScopes.html).\\n\",\"type\":\"oauth2\",\"flows\":{\"clientCredentials\":{\"tokenUrl\":\"https://toast-api-server/authentication/v1/authentication/login\",\"scopes\":{\"menus:read\":\"Allows reading from menus API V2.\\n\"}}}}},\"schemas\":{\"Metadata\":{\"type\":\"object\",\"description\":\"Information about the last date and time that this restaurant's menu data was updated.\\n\",\"properties\":{\"restaurantGuid\":{\"description\":\"A unique identifier for this restaurant, assigned by the Toast POS system.\\n\",\"type\":\"string\",\"format\":\"uuid\"},\"lastUpdated\":{\"description\":\"The most recent date and time that this menu's data was published. Use this value to determine if you need to refresh your menu data. The `lastUpdated` value uses the absolute timestamp format describe in the <a href=\\\"https://doc.toasttab.com/doc/devguide/api_dates_and_timestamps.html\\\">Dates and timestamps</a> section of the Toast Developer Guide.\\n\",\"type\":\"string\"}}},\"Restaurant\":{\"type\":\"object\",\"description\":\"Information about the restaurant whose menu data has been retrieved.\\n\",\"properties\":{\"restaurantGuid\":{\"description\":\"A unique identifier for this restaurant, assigned by the Toast POS system.\\n\",\"type\":\"string\",\"format\":\"uuid\"},\"lastUpdated\":{\"description\":\"The most recent date and time that this menu's data was published. Use this value to determine if you need to refresh your menu data. The `lastUpdated` value uses the absolute timestamp format describe in the <a href=\\\"https://doc.toasttab.com/doc/devguide/api_dates_and_timestamps.html\\\">Dates and timestamps</a> section of the Toast Developer Guide.\\n\",\"type\":\"string\"},\"restaurantTimeZone\":{\"description\":\"The name of the restaurant's time zone in the IANA time zone database https://www.iana.org/time-zones. For example, \\\"America/New_York\\\".\\n\",\"type\":\"string\"},\"menus\":{\"type\":\"array\",\"description\":\"An array of `Menu` objects that represent the published menus used by this restaurant.\\n\",\"items\":{\"$ref\":\"#/components/schemas/Menu\"}},\"modifierGroupReferences\":{\"description\":\"A map of `ModifierGroup` objects that define the modifier groups used by this restaurant. Each `ModifierGroup` object is presented as a key/value pair. A pair's key matches the `referenceId` of the object contained in the pair's value, as shown below:\\n```\\n  \\\"modifierGroupReferences\\\": {\\n    ...\\n    \\\"3\\\": {\\n      \\\"referenceId\\\": 3,\\n      \\\"name\\\": \\\"Toppings\\\",\\n      \\\"guid\\\": \\\"58b79986-f88f-411d-ba18-14b1e2441e9d\\\",\\n        ...\\n      },\\n      ...\\n      \\\"modifierOptionReferences\\\": [\\n        10,\\n        11\\n      ],\\n      ...\\n    },\\n    ...\\n  },\\n```\\n\\nOther menu entities refer to modifier groups using their `referenceId`. Having a key that matches the `referenceId` allows you to locate the correct modifier group in the `modifierGroupReferences` map. For more information on the `referenceId` value, see the <a href=\\\"https://doc.toasttab.com/doc/devguide/apiUnderstandingGuidsEntityIdentifiersAndMultilocationIds_V2.html\\\">Understanding GUIDs, referenceIds, and multilocationIds</a> section of the Toast Developer Guide.\\n\",\"properties\":{\"identifier\":{\"type\":\"integer\"}},\"additionalProperties\":{\"$ref\":\"#/components/schemas/ModifierGroup\"}},\"modifierOptionReferences\":{\"description\":\"A map of `ModifierOption` objects that define the modifier options used by this restaurant. Each `ModifierOption` object is presented as a key/value pair. A pair's key matches the `referenceId` of the object contained in the pair's value, as shown below:\\n```\\n\\\"modifierOptionReferences\\\": {\\n  ...\\n  \\\"10\\\": {\\n    \\\"referenceId\\\": 10,\\n    \\\"name\\\": \\\"Mushrooms\\\",\\n    \\\"guid\\\": \\\"fa24fee9-76c4-40ba-ae3c-7dfccafdd8d3\\\",\\n    ...\\n  },\\n  \\\"11\\\": {\\n    \\\"referenceId\\\": 11,\\n    \\\"name\\\": \\\"Onions\\\",\\n    \\\"guid\\\": \\\"afee6be7-8280-4c69-a170-9fdf4c76bf7b\\\",\\n    ...\\n  },\\n  ...\\n}\\n```\\n\\nOther menu entities refer to modifier options using their `referenceId`. Having a key that matches the `referenceId` allows you to locate the correct modifier option in the `modifierOptionReferences` map. For more information on the `referenceId` value, see the <a href=\\\"https://doc.toasttab.com/doc/devguide/apiUnderstandingGuidsEntityIdentifiersAndMultilocationIds_V2.html\\\">Understanding GUIDs, referenceIds, and multilocationIds</a> section of the Toast Developer Guide.\\n\",\"properties\":{\"identifier\":{\"type\":\"integer\"}},\"additionalProperties\":{\"$ref\":\"#/components/schemas/ModifierOption\"}},\"preModifierGroupReferences\":{\"description\":\"A map of `PreModifierGroup` objects that define the premodifier groups used by this restaurant. Each `PreModifierGroup` object is presented as a key/value pair. A pair's key matches the `referenceId` of the object contained in the pair's value, as shown below:\\n```\\n\\\"preModifierGroupReferences\\\": {\\n  \\\"22\\\": {\\n    \\\"referenceId\\\": 22,\\n    \\\"guid\\\": \\\"07a1a94d-6f7b-46d5-a916-a07fa16bb8e8\\\",\\n    \\\"name\\\": \\\"PreModGroup\\\",\\n    \\\"preModifiers\\\": [\\n      {\\n        \\\"guid\\\": \\\"ad45e697-9356-468e-b7b4-1b23f4d4b8a5\\\",\\n        \\\"name\\\": \\\"EXTRA\\\",\\n        \\\"fixedPrice\\\": 1.0,\\n        \\\"multiplicationFactor\\\": null,\\n        \\\"displayMode\\\": \\\"PREFIX\\\"\\n      },\\n      {\\n        \\\"guid\\\": \\\"483dd4cf-acea-4373-ae76-5f7efd0d529d\\\",\\n        \\\"name\\\": \\\"NO\\\",\\n        \\\"fixedPrice\\\": 0.0,\\n        \\\"multiplicationFactor\\\": null,\\n        \\\"displayMode\\\": \\\"PREFIX\\\"\\n      }\\n    ]\\n  },\\n},            \\n```\\n\\nOther menu entities refer to premodifier groups using their `referenceId`. Having a key that matches the `referenceId` allows you to locate the correct premodifier group in the `preModifierGroupReferences` map. For more information on the `referenceId` value, see the <a href=\\\"https://doc.toasttab.com/doc/devguide/apiUnderstandingGuidsEntityIdentifiersAndMultilocationIds_V2.html\\\">Understanding GUIDs, referenceIds, and multilocationIds</a> section of the Toast Developer Guide.          \\n\",\"properties\":{\"identifier\":{\"type\":\"integer\"}},\"additionalProperties\":{\"$ref\":\"#/components/schemas/PreModifierGroup\"}}}},\"Menu\":{\"type\":\"object\",\"description\":\"Information about a menu configured for this restaurant.\\n\",\"properties\":{\"name\":{\"description\":\"A descriptive name for this menu, for example, \\\"Food\\\" or \\\"Drinks\\\".\\n\",\"type\":\"string\"},\"guid\":{\"description\":\"A unique identifier for this menu, assigned by the Toast POS system.\\n\",\"type\":\"string\"},\"multiLocationId\":{\"$ref\":\"#/components/schemas/MultiLocationId\"},\"masterId\":{\"$ref\":\"#/components/schemas/MasterId\"},\"description\":{\"description\":\"An optional short description for this menu.\\n\",\"type\":\"string\"},\"posName\":{\"$ref\":\"#/components/schemas/PosName\"},\"posButtonColorLight\":{\"$ref\":\"#/components/schemas/PosButtonColorLight\"},\"posButtonColorDark\":{\"$ref\":\"#/components/schemas/PosButtonColorDark\"},\"highResImage\":{\"type\":\"string\",\"description\":\"The URL to a high resolution image that has been uploaded for this menu. The image file must be in JPG, PNG, or SVG format. The `highResImage` value is only available if the Toast Kiosk module has been enabled for this restaurant. This value is null if no high resolution image has been specified.\\n\",\"nullable\":true},\"image\":{\"$ref\":\"#/components/schemas/Image\"},\"visibility\":{\"$ref\":\"#/components/schemas/Visibility\"},\"availability\":{\"type\":\"object\",\"description\":\"An `Availability` object with information about the days and times this menu is available. If the menu is available 24 hours per day, 7 days per week, this `Availability` object contains a single value, `alwaysAvailable`, that is set to TRUE. If the menu is not available 24 hours per day, 7 days per week, the `alwaysAvailable` value is set to FALSE and the object will also contain a `schedule` value that provides detailed information about the specific days and times this menu is available.\\n\\n**_Important_**\\nThe orders API does not validate against the availability settings of a menu, meaning it is possible to submit an order for an item on a menu when it is not currently available. For this reason, it is particularly important that you check a menu’s `availability` value before placing an order from it.\\n\",\"items\":{\"$ref\":\"#/components/schemas/Availability\"}},\"menuGroups\":{\"type\":\"array\",\"description\":\"An array of the `MenuGroup` objects contained in this menu.\\n\",\"minItems\":0,\"items\":{\"$ref\":\"#/components/schemas/MenuGroup\"}}}},\"MenuGroup\":{\"type\":\"object\",\"description\":\"Information about a menu group configured for this restaurant, including an array of menu items contained in the group.\\n\",\"properties\":{\"name\":{\"description\":\"A descriptive name for this menu group, for example, \\\"Appetizers\\\" or \\\"Sandwiches\\\".\\n\",\"type\":\"string\"},\"guid\":{\"description\":\"A unique identifier for this menu group, assigned by the Toast POS system.\\n\",\"type\":\"string\"},\"multiLocationId\":{\"$ref\":\"#/components/schemas/MultiLocationId\"},\"masterId\":{\"$ref\":\"#/components/schemas/MasterId\"},\"description\":{\"description\":\"An optional short description of this menu group.\\n\",\"type\":\"string\"},\"posName\":{\"$ref\":\"#/components/schemas/PosName\"},\"posButtonColorLight\":{\"$ref\":\"#/components/schemas/PosButtonColorLight\"},\"posButtonColorDark\":{\"$ref\":\"#/components/schemas/PosButtonColorDark\"},\"image\":{\"$ref\":\"#/components/schemas/Image\"},\"visibility\":{\"$ref\":\"#/components/schemas/Visibility\"},\"itemTags\":{\"type\":\"array\",\"description\":\"An array of `ItemTag` objects that are assigned to this menu group. Item tags are used to assign identifying characteristics, for example, vegetarian, gluten-free, or alcohol.\\n\",\"items\":{\"$ref\":\"#/components/schemas/ItemTag\"}},\"menuGroups\":{\"type\":\"array\",\"description\":\"An array of the `MenuGroup` objects that are children of this menu group. The array is empty if the menu group has no child menu groups.\\n\",\"minItems\":0,\"items\":{\"$ref\":\"#/components/schemas/MenuGroup\"}},\"menuItems\":{\"type\":\"array\",\"description\":\"An array of the `MenuItem` objects contained in this menu group.\\n\",\"minItems\":0,\"items\":{\"$ref\":\"#/components/schemas/MenuItem\"}}}},\"MenuItem\":{\"type\":\"object\",\"description\":\"Information about a menu item configured for this restaurant.\\n\",\"properties\":{\"name\":{\"description\":\"A descriptive name for this menu item, for example, \\\"Caesar Salad\\\" or \\\"Turkey Sandwich\\\".\\n\\nTo avoid menu ingestion failures, if the `name` value is an empty string or `null`, the menus API updates it to the string `Missing name` in the returned menus data.\\n\\nNote that, while this solution allows menu ingestion to proceed without failure, it does allow a menu item with the name `Missing name` to appear in a restaurant’s menu, creating potential confusion for guests and employees. Also, the menus API only updates the returned data. It does not update the menu item in the Toast database, meaning the name will still be blank when looking at the menu item in Toast Web.\\n\\nTo fix the issue in Toast Web, the restaurant must identify the parent menu entity for the menu item or modifier, view its details page in Toast Web, and then locate and fix the item with the blank name.\\n\",\"type\":\"string\"},\"kitchenName\":{\"type\":\"string\",\"description\":\"The name of the menu item as it appears on kitchen tickets. The `kitchenName` can include both numbers and letters. This value contains an empty string if a kitchen name has not been configured for the menu item.\\n\"},\"guid\":{\"description\":\"A unique identifier for this menu item, assigned by the Toast POS system.\\n\",\"type\":\"string\"},\"multiLocationId\":{\"$ref\":\"#/components/schemas/MultiLocationId\"},\"masterId\":{\"$ref\":\"#/components/schemas/MasterId\"},\"description\":{\"description\":\"An optional short description of this menu item.\\n\",\"type\":\"string\"},\"posName\":{\"$ref\":\"#/components/schemas/PosName\"},\"posButtonColorLight\":{\"$ref\":\"#/components/schemas/PosButtonColorLight\"},\"posButtonColorDark\":{\"$ref\":\"#/components/schemas/PosButtonColorDark\"},\"image\":{\"$ref\":\"#/components/schemas/Image\"},\"visibility\":{\"$ref\":\"#/components/schemas/Visibility\"},\"price\":{\"type\":\"number\",\"format\":\"double\",\"description\":\"The price of this menu item.\\n\\nIn Toast Web, menu items may have prices assigned to them individually, or they may inherit them from a parent menu group. The `price` value reflects the menu item's fully resolved pricing configuration in the following ways:\\n\\n  * For base prices, the `price` value is populated with the specified base price.\\n  \\n  * For menu-specific prices, the `price` value is resolved based on the current menu. For example, consider a menu item that is included in both Lunch and Dinner menus and is priced at $10 for the Lunch menu and $12 for the Dinner menu. In the fully resolved JSON returned by the menus API, this menu item would appear twice, once as a child of the Lunch menu with a `price` value of $10, and again as a child of the Dinner menu with a `price` value of $12.\\n  \\n  If this same menu item is added to a Breakfast menu but a menu-specific price is not defined for the Breakfast menu, then the `price` value for the instance of the menu item that appears in the Breakfast menu JSON is populated with the base price from the menu-specific price configuration. Menu-specific price configurations include a base price that functions as a default price when a menu-specific price cannot be resolved.\\n\\n  * For location-specific prices, the `price` value is resolved based on the current location. For example, consider a menu item that costs $15 in the Boston location and $20 in the New York location. When you retrieve menu data for the Boston location, this menu item's `price` value is $15. When you retrieve menu data for the New York location, the menu item's `price` value is $20.\\n  \\n  * For time-specific prices, the `price` value is populated with the base price that is specified as part of the time-specific price configuration. This base price functions as a default price for the menu item during times of the day when a time-specific price has not been defined. For example, consider a menu item that costs $8 from noon to 2pm and $10 during the rest of the day. The `price` value for this item would be $10. You must use the `pricingStrategy` and `pricingRules` values for this menu item to calculate the price of the item during time periods for which a time-specific price has been defined.\\n  \\n  * For size prices, the `price` value is null. You must use this menu item's `pricingStrategy` and `pricingRules` values to calculate the price of the item for different sizes.\\n  \\n  * For open prices, the `price` value is null.\\n\\n  \\n  If the menu item is priced using a price level, the `price` value reflects the pricing strategy used for that price level, using the same logic described above. For example, consider a price level that applies a size price to the menu items it is assigned to. In this scenario, the `price` value is null and you must use the menu item's `pricingStrategy` and `pricingRules` values to calculate the price of the item for different sizes.\\n\\n  For more information on menu item pricing and pricing strategies, see the <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminToastPosPricingFeatures.html\\\">Menu Pricing</a> section in the Toast Platform Guide.\\n\",\"nullable\":true},\"pricingStrategy\":{\"type\":\"string\",\"enum\":[\"BASE_PRICE\",\"MENU_SPECIFIC_PRICE\",\"TIME_SPECIFIC_PRICE\",\"SIZE_PRICE\",\"OPEN_PRICE\"],\"description\":\"A string that represents the pricing strategy used for this menu item.\\n\\nYou use the `pricingStrategy` value, in conjunction with the `pricingRules` value, to calculate the price for a menu item that uses the Time Specific Price or Size Price pricing strategy.\\n\\nIn Toast Web, menu items may have pricing strategies assigned to them individually, or they may inherit them from a parent menu group. The `pricingStrategy` value indicates the menu item's fully resolved pricing strategy. If the menu item is priced using the:\\n  * Base Price pricing strategy, then the `pricingStrategy` value is BASE_PRICE.\\n  * Menu Specific Price pricing strategy, then the `pricingStrategy` value is MENU_SPECIFIC_PRICE.\\n  * Time Specific Price pricing strategy, then the `pricingStrategy` value is TIME_SPECIFIC_PRICE.\\n  * Size Price pricing strategy, then the `pricingStrategy` value is SIZE_PRICE.\\n  * Open Price pricing strategy, then the `pricingStrategy` value is OPEN_PRICE.\\n\\nIf the menu item is priced using the Location Specific Price pricing strategy, then the `pricingStrategy` value indicates which pricing strategy is used at the current location. For example, consider a menu item that uses a menu-specific price at the Boston location and a base price at the New York location. When you retrieve the menu data for the Boston location, the `pricingStrategy` for the menu item is MENU_SPECIFIC_PRICE. When you retrieve menu data for the New York location, the `pricingStrategy` for the menu item is BASE_PRICE.\\n\\nIf the menu item is priced using a price level, then the `pricingStrategy` value indicates which pricing strategy is used for that price level. For example, if the \\\"Draft Beer\\\" pricing level uses a time-specific price, then the `pricingStrategy` value for a menu item that is assigned the \\\"Draft Beer\\\" pricing level is TIME_SPECIFIC_PRICE.\\n\\nIf the `pricingStrategy` value is BASE_PRICE or MENU_SPECIFIC_PRICE, you can retrieve the menu item's price from its `price` value.\\n\\nIf the `pricingStrategy` value is TIME_SPECIFIC_PRICE or SIZE_PRICE, you must use the rules provided in _this menu item's_ `pricingRules` value to calculate the price for it.\\n\"},\"pricingRules\":{\"type\":\"object\",\"description\":\"A `PricingRules` object with information about how to calculate the price for this menu item. You use a menu item's `pricingRules` value, in conjunction with its `pricingStrategy` value, to calculate a price for a menu item that uses a size-specific or time-specific price.\\n\\nThe `pricingRules` object takes different forms depending on the pricing strategy configured for the menu item. Use the `pricingStrategy` value to determine which pricing strategy has been used so that you can properly interpret the data in the `pricingRules` object. For the BASE_PRICE, and MENU_SPECIFIC_PRICE pricing strategies, the `pricingRules` object is null because you can retrieve the price from the `price` value without additional calculation. For the OPEN_PRICE pricing strategy, the `pricingRules` object is also null (the price of an open menu item is specified when it is ordered). For the TIME_SPECIFIC_PRICE and SIZE_PRICE pricing strategies, the `PricingRules` object contains additional values that you use to calculate the menu item's price.\\n\",\"items\":{\"$ref\":\"#/components/schemas/PricingRules\"},\"nullable\":true},\"isDeferred\":{\"type\":\"boolean\",\"description\":\"Indicates whether this menu item should be considered deferred revenue.\\n\"},\"isDiscountable\":{\"type\":\"boolean\",\"description\":\"Indicates whether this menu item can be discounted.\\n\\n**_Important_** The orders API _does not validate_ against the `isDiscountable` value. If you submit an order that applies a discount to a menu item whose `isDiscountable` value is FALSE, the orders API will not fail the order but it will set the discount amount on the menu item to $0.00. If you are using the menus API to build an ordering application, be sure to inspect the `isDiscountable` value of the menu items to ensure that your ordering application does not allow an item to be discounted if its `isDiscountable` value is FALSE.\\n\"},\"salesCategory\":{\"$ref\":\"#/components/schemas/SalesCategory\"},\"taxInfo\":{\"type\":\"array\",\"description\":\"An array of GUIDs for the tax rates that apply to this menu item.\\n\\nNote that a menu item's tax rates may get overridden if a modifier option is applied to it and that modifier option is configured so that it overrides its parent menu item's tax rates. See <a href=\\\"https://doc.toasttab.com/doc/devguide/apiUsingTaxInfoAndModifierOptionTaxInfoToCalculateTaxesForMenuItemsAndModOptions.html\\\">Using taxInfo and modifierOptionTaxInfo to calculate taxes for menu items and modifier options</a> in the Toast Developer Guide for more information.   \\n          \\nTo retrieve full configuration data for a tax rate, use the `/taxRates/{guid}` endpoint in the configuration API.\\n\\n_Important:_ The `taxInfo` value is intended to help you display prices but the `/prices` endpoint of the orders API is the only supported way to determine the prices of orders that you submit to the orders API. See <a href=\\\"https://doc.toasttab.com/doc/devguide/apiOrderPrices.html\\\">Order prices</a> in the Toast Developer Guide for more information.\\n\",\"items\":{\"type\":\"string\"}},\"taxInclusion\":{\"type\":\"string\",\"enum\":[\"TAX_INCLUDED\",\"TAX_NOT_INCLUDED\",\"SMART_TAX\"],\"description\":\"A string that represents the tax inclusion setting for this menu item. Possible values include:\\n\\n* `TAX_INCLUDED`: The menu item's price includes taxes. You should not display additional tax on top of the menu item price in your ordering UI.\\n* `TAX_NOT_INCLUDED`: The menu item's price does not include taxes. You should display tax values alongside the menu item price in your ordering UI.\\n* `SMART_TAX`: The menu item is using smart tax, a feature that allows a restaurant to configure menu item prices to include or not include taxes, depending on the section of the restaurant that the item is ordered in (for example, the bar or the dining room). For example, a guest can order an item at either the bar or in the main dining room. To prevent bartenders from having to handle coins, which can slow down service, and to make tipping easier, the restaurant wants the price of the item to be a whole number that includes tax when it is ordered at the bar. In the main dining room, where speed of service is less of a concern, the restaurant doesn't want the item's price to include tax, so that it doesn't lose out on the extra revenue.\\n\\nTypically, the smart tax setting is used for in-store workflows where the efficiency of money handling is a priority. As such, it doesn't apply to online ordering integrations. If a menu item's `taxInclusion` value is set to `SMART_TAX`, your ordering integration should treat the menu item as if tax is not included. For more information on the smart tax feature, see <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminSmartTax.html\\\">Smart tax</a> in the Toast Platform Guide.\\n\\n_Note:_ A menu item's tax inclusion setting is inherited by any modifiers that are applied to that menu item. For more information, see <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminTaxesOnModifiers.html#adminModifierTaxInteraction\\\">Tax functionality interaction</a> in the Toast Platform Guide.\\n\"},\"itemTags\":{\"type\":\"array\",\"description\":\"An array of `ItemTag` objects that are assigned to this menu item. Item tags are used to assign identifying characteristics to a menu item, for example, vegetarian, gluten-free, or alcohol.\\n\",\"items\":{\"$ref\":\"#/components/schemas/ItemTag\"}},\"plu\":{\"type\":\"string\",\"description\":\"The price lookup (PLU) code for this menu item. The PLU code can include both numbers and letters. This value contains an empty string if a PLU code has not been defined.\\n\"},\"sku\":{\"type\":\"string\",\"description\":\"The stock keeping unit (SKU) identifier for this menu item. The SKU identifier can include both numbers and letters. This value contains an empty string if a SKU has not been defined.\\n\"},\"calories\":{\"type\":\"integer\",\"description\":\"The number of calories in this menu item. The calories value can be any positive or negative integer, or zero. This value is null if a calories amount has not been configured for the menu item.\\n\",\"nullable\":true},\"contentAdvisories\":{\"$ref\":\"#/components/schemas/ContentAdvisories\"},\"unitOfMeasure\":{\"type\":\"string\",\"enum\":[\"NONE\",\"LB\",\"OZ\",\"KG\",\"G\",\"GAL\",\"L\",\"ML\",\"FL_OZ\",\"M\",\"CM\",\"FT\",\"IN\",\"YD\"],\"description\":\"The unit of measure used to determine the price of the item. For example, $10.00 per gram.\\n\\nThe default is `NONE`, which means that the item is not meant to be measured during a sale.\\n\\nValues are:\\n* `NONE` - The item is not meant to be measured.\\n* `LB` - Weighed in pounds.\\n* `OZ` - Weighed in ounces.\\n* `KG` - Weighed in kilograms.\\n* `G` - Weighed in grams.\\n* `GAL` - Measured in gallons.\\n* `L` - Measured in liters.\\n* `ML` - Measured in milliliters.\\n* `FL_OZ` - Measured in fluid ounces.\\n* `M` - Measured in meters.\\n* `CM` - Measured in centimeters.\\n* `FT` - Measured in feet.\\n* `IN` - Measured in inches.\\n* `YD` - Measured in yards.\\n\"},\"portions\":{\"type\":\"array\",\"description\":\"An array of `Portion` objects that define the portions that can be used with this menu item. For example, for a pizza menu item, you could define 1st Half and 2nd Half portions. See <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPortionsOverview.html\\\">Portions overview</a> in the Toast Platform Guide for more information on portions.\\n\",\"minItems\":0,\"items\":{\"$ref\":\"#/components/schemas/Portion\"}},\"prepTime\":{\"type\":\"integer\",\"description\":\"The amount of time, in seconds, that it takes to prepare this menu item. This value is null if a prep time has not been specified for the menu item.<br>\\n<br>\\n*Related topics*<br>\\n<a href=\\\"https://doc.toasttab.com/doc/platformguide/adminFireByPrepTime.html\\\">Using prep times to automate item firing</a><br>\\n\",\"format\":\"int32\",\"nullable\":true},\"prepStations\":{\"type\":\"array\",\"description\":\"An array of GUIDs for the prep stations that have been assigned to this menu item. This array is empty if no prep stations have been assigned.<br>\\n<br>\\n*Related topics:*<br>\\n<a href=\\\"https://doc.toasttab.com/doc/platformguide/platformKitchenRoutingOverview.html\\\">Routing to prep stations</a>\\n\",\"items\":{\"type\":\"string\"}},\"modifierGroupReferences\":{\"type\":\"array\",\"description\":\"An array of `referenceId`s for `ModifierGroup` objects. These objects define the modifier groups that apply to this menu item.\\n\",\"minItems\":0,\"items\":{\"type\":\"integer\"}},\"eligiblePaymentAssistancePrograms\":{\"type\":\"array\",\"description\":\"An array of strings that indicate which payment assistance programs may be used to pay for this menu item. Possible values include:\\n\\n* `SNAP`: Supplemental Nutrition Assistance Program\\n* `EBT_CASH`: Electronic Benefit Transfer Cash\\n\\nThe array is empty if no payment assistance programs have been assigned to the menu item.\\n\",\"items\":{\"type\":\"string\"}},\"allergens\":{\"type\":\"array\",\"description\":\"Reserved for future functionality. Not currently supported for external integrations.\\n\",\"minItems\":0,\"items\":{\"$ref\":\"#/components/schemas/AllergenItem\"},\"nullable\":true},\"length\":{\"$ref\":\"#/components/schemas/Length\"},\"height\":{\"$ref\":\"#/components/schemas/Height\"},\"width\":{\"$ref\":\"#/components/schemas/Width\"},\"dimensionUnitOfMeasure\":{\"$ref\":\"#/components/schemas/DimensionUnitOfMeasure\"},\"weight\":{\"$ref\":\"#/components/schemas/Weight\"},\"weightUnitOfMeasure\":{\"$ref\":\"#/components/schemas/WeightUnitOfMeasure\"},\"images\":{\"$ref\":\"#/components/schemas/Images\"},\"guestCount\":{\"$ref\":\"#/components/schemas/GuestCount\"},\"sortOrder\":{\"type\":\"integer\",\"description\":\"A number determining the order in which this item should appear on kitchen tickets. The sort order value can be any positive or negative integer, or zero. This value is null if a sort order has not been configured for the menu item.\\n\",\"nullable\":true},\"catalogProductInfo\":{\"$ref\":\"#/components/schemas/CatalogProductInfo\"},\"isComboParent\":{\"type\":\"boolean\",\"description\":\"Reserved for future functionality. Not currently supported for external integrations.\",\"nullable\":true}}},\"ModifierGroup\":{\"type\":\"object\",\"description\":\"Information about a modifier group configured for this restaurant, including an array of modifier options contained in the group.\\n\",\"properties\":{\"name\":{\"description\":\"A descriptive name for this modifier group, for example, \\\"Pizza Toppings\\\" or \\\"Salad Dressings\\\".\\n\",\"type\":\"string\"},\"guid\":{\"description\":\"A unique identifier for this modifier group, assigned by the Toast POS system.\\n\",\"type\":\"string\"},\"referenceId\":{\"description\":\"An integer identifier that is used to refer to this modifier group by items and portions that use it.\\n\",\"type\":\"integer\"},\"multiLocationId\":{\"$ref\":\"#/components/schemas/MultiLocationId\"},\"masterId\":{\"$ref\":\"#/components/schemas/MasterId\"},\"posName\":{\"$ref\":\"#/components/schemas/PosName\"},\"posButtonColorLight\":{\"$ref\":\"#/components/schemas/PosButtonColorLight\"},\"posButtonColorDark\":{\"$ref\":\"#/components/schemas/PosButtonColorDark\"},\"visibility\":{\"$ref\":\"#/components/schemas/Visibility\"},\"pricingStrategy\":{\"type\":\"string\",\"description\":\"A string that represents the pricing strategy used for this modifier group.\\n\\nIf there is no additional charge for the modifier options in this group, or if the modifier options in the group are priced individually, then the `pricingStrategy` value is NONE.\\n\\nIf the modifier group is priced at the group level and is using the:\\n  * Fixed Price pricing strategy, then the `pricingStrategy` value is NONE.\\n  * Sequence Price pricing strategy, then the `pricingStrategy` value is SEQUENCE_PRICE.\\n  * Size Price pricing strategy, then the `pricingStrategy` value is SIZE_PRICE.\\n  * Size/Sequence Price pricing strategy, then the `pricingStrategy` value is SIZE_SEQUENCE_PRICE.\\n\\n  \\nIf the `pricingStrategy` value is NONE,  then the prices for the modifier options in this group are resolved down to the modifier option level and you can retrieve them from the `price` value of the individual `ModifierOption` objects.\\n\\nIf the `pricingStrategy` value is SIZE_PRICE, SEQUENCE_PRICE, or SIZE_SEQUENCE_PRICE, then you must use the rules provided in _this modifier group's_ `pricingRules` value to calculate the prices for the modifier options in the group.\\n\"},\"pricingRules\":{\"type\":\"object\",\"description\":\"A `PricingRules` object with information for calculating the prices for the modifier options contained in this modifier group. You use a modifier group's `pricingRules` object, in conjunction with its `pricingStrategy` value, to calculate prices for the group's modifier options when the group uses the Size Price, Sequence Price, or Size/Sequence Price pricing strategy.\\n\\nThe `pricingRules` object takes different forms depending on the pricing strategy configured for the modifier group. Use the `pricingStrategy` value to determine which pricing strategy has been used so that you can properly interpret the data in the `pricingRules` object. If the `pricingStrategy` value is NONE, the `pricingRules` object is null because you can retrieve the price from a `ModifierOption` object's `price` value without additional calculation. For the SIZE_PRICE, SEQUENCE_PRICE, and SIZE_SEQUENCE_PRICE pricing strategies, the `pricingRules` object contains additional values that you use to calculate the modifier option prices.\\n\",\"items\":{\"$ref\":\"#/components/schemas/PricingRules\"},\"nullable\":true},\"defaultOptionsChargePrice\":{\"description\":\"Indicates whether the prices associated with any default modifiers in this group are added to the cost of the menu items they modify.\\n\\nValues are:\\n  * NO: The default modifier price is ignored. No change is made to the cost of the menu item.\\n  * YES: The default modifier price is added to the menu item price. YES is the default setting for `defaultOptionsChargePrice`.\\n\\nFor example, consider a scenario where Cheese is a default modifier for a Burger menu item (this means that Cheese is always included as a modifier option when you order a Burger unless it is explicitly removed). The price of the Cheese modifier option is $1 while the price of the Burger is $8. When `defaultOptionsChargePrice` is set to NO, a Burger costs $8 (the Cheese default modifier price is not added to the Burger price). When `defaultOptionsChargePrice` is set to YES, a Burger costs $9 (the Cheese default modifier price is added to the Burger price). If the Cheese default modifier is removed from the Burger menu item, the price of the Burger remains $8. Removing a default modifier from a menu item does not change the menu item’s price, regardless of the `defaultOptionsChargePrice` setting.\\n\\nThe `defaultOptionsChargePrice` value must be set to NO in order to use substitution pricing. See `defaultOptionsSubstitutionPricing` for more information.\\n\",\"type\":\"string\",\"enum\":[\"NO\",\"YES\"]},\"defaultOptionsSubstitutionPricing\":{\"description\":\"Indicates whether substitution pricing is enabled for the modifier group.\\n\\nIn Toast Web, you must set the `defaultOptionsChargePrice` configuration for a modifier group to NO before you can enable substitution pricing for the group. This means that the costs of default modifiers in the group do not increase the price of the menu items they apply to. These default modifiers continue to have a monetary value, however. By enabling substitution pricing, you are configuring the modifier group so that if any of its default modifiers are removed from a menu item, the monetary value of those default modifiers can be applied to the purchase of other modifier options within the same modifier group (even though the cost of those default modifiers was not explicitly added to the cost of the menu item).\\n\\nFor example, a guest orders a salad that comes with chicken by default but asks to substitute salmon for the chicken. The price of the chicken option is $7. The price of the salmon option is $9. In this case, the Toast POS system calculates the difference and charges the substitution price of $2 for the salmon (not the regular price of $9).\\n\\nValues for `defaultOptionsSubstitutionPricing` include:\\n  * YES: Substitution pricing is enabled. Substitution pricing allows a guest to remove one or more default modifiers from a menu item and apply the value of those modifiers toward the purchase of one or more other modifier options in the same modifier group.\\n  * NO: Substitution pricing is not enabled. Removing a default modifier from a menu item has no impact on the price of the menu item or on any other modifier options that get added. For example, a guest orders a burger that comes with cheese by default but asks to substitute bacon instead of cheese. The price of the burger is $8. The price of the default cheese modifier is $1 but it is not added to the cost of the burger because `defaultOptionsChargePrice` is set to NO. The price of the bacon modifier option is $3. In this scenario, the customer would pay $11, $8 for the burger and $3 for the bacon. No credit is given for removing the cheese modifier option. `NO` is the default setting for `defaultOptionsSubstitutionPricing`.\\n\\nRemoving default modifiers from a menu item never reduces the price of the menu item. If you remove the chicken from a $10 salad that includes chicken by default, the price of the salad remains $10. If you remove the chicken and substitute other modifier options that cost less than the chicken, the price of the salad remains $10. If you remove the chicken and replace it with modifier options that cost more than the chicken, the price increases by the difference in modifier option cost if you have substitution pricing enabled.\\n\",\"type\":\"string\",\"enum\":[\"NO\",\"YES\"]},\"minSelections\":{\"type\":\"integer\",\"description\":\"The minimum number of modifier options that a customer can choose from this modifier group.\\n\\nIf a server is not required to select a modifier option from this modifier group, `minSelections` is set to 0.\\n\\nIf a server must select a modifier option from this modifier group, `minSelections` must be set to 1 or higher. For example, a Temperature modifier group could be set to 1 to require a server to choose a temperature (Rare, Medium Rare, Medium, or Well Done) when placing a steak order. The orders API rejects an order if it does not follow the `minSelections` requirement for a modifier group.\\n\\nThe `minSelections` and `maxSelections` values can be used in conjunction with one another. For example, consider the following modifier group configuration:\\n\\n* Modifier Group: Cheese\\n* Modifier Options: ( Cheddar, American, Swiss )\\n* maxSelections: 2\\n* minSelections: 1\\n\\nWith this configuration:\\n  * You can select AT MOST two different cheeses from this group to apply to the menu item (the `maxSelections` value).\\n  * You must select AT LEAST one cheese from this group to apply to the menu item (the `minSelections` value).\\n\"},\"maxSelections\":{\"type\":\"integer\",\"description\":\"The maximum number of modifier options that a customer can choose from this modifier group. `maxSelections` is null if a customer can choose an unlimited number of modifier options from this modifier group. It is 1 if the modifier group is not enabled for multiple selections. The orders API rejects an order if it does not follow the `maxSelections` requirement for a modifier group.\\n\\nThe `minSelections` and `maxSelections` values can be used in conjunction with one another. For example, consider the following modifier group configuration:\\n\\n* Modifier Group: Cheese\\n* Modifier Options: ( Cheddar, American, Swiss )\\n* maxSelections: 2\\n* minSelections: 1\\n\\nWith this configuration:\\n  * You can select AT MOST two different cheeses from this group to apply to the menu item (the `maxSelections` value).\\n  * You must select AT LEAST one cheese from this group to apply to the menu item (the `minSelections` value).\\n\",\"nullable\":true},\"requiredMode\":{\"description\":\"Specifies how the modifier group appears and behaves in the Toast POS app. Values include:\\n  * REQUIRED: Forces a server to make a selection from the modifier group before continuing to the next screen in the Toast POS app. Note that the orders API rejects an order if a modifier option is not included for a modifier group whose `requiredMode` value is set to REQUIRED.\\n  * OPTIONAL FORCE SHOW: Prompts the server to view the modifier group but does not force them to choose a modifier option from it before continuing to the next screen in the Toast POS app. This setting is typically used for upselling.\\n  * OPTIONAL: The modifier group does not appear when an associated menu item is selected but the server can access it on the Toast POS app if necessary.\\n\",\"type\":\"string\",\"enum\":[\"REQUIRED\",\"OPTIONAL_FORCE_SHOW\",\"OPTIONAL\"]},\"isMultiSelect\":{\"type\":\"boolean\",\"description\":\"Indicates whether you can select more than one modifier option from this modifier group.\\n\\nThe `isMultiSelect` value provides similar information to the `maxSelections` value in a different format. If `isMultiSelect` is TRUE, then by definition more than one modifier option can be selected from the modifier group, so `maxSelections` must be greater than 1 or null (a null value indicates that an unlimited number of selections can be made from the modifier group). If `isMultiSelect` is FALSE, then only one modifier option may be selected from the modifier group and the Toast POS system enforces a setting of 1 for `maxSelections`.\\n\\nAlso, if `isMultiSelect` is FALSE for a modifier group, the Toast POS system enforces a setting of FALSE for the `allowsDuplicates`  value of the group’s modifier options. This prevents more than one instance of a modifier option being selected for the group. Similarly, the orders API rejects any orders that specify more than one modifier option for a modifier group whose `isMultiSelect` value is FALSE.\\n\"},\"preModifierGroupReference\":{\"type\":\"integer\",\"description\":\"The `referenceId` of a `PreModifierGroup` object. This object defines the premodifiers that can be applied to the modifier options contained in this modifier group. Premodifiers alter the display of modifier options on receipts and tickets to satisfy guest requests such as EXTRA or ON THE SIDE. Premodifiers can also be configured to modify the cost of the modifier options they are applied to, for example, by charging more for an EXTRA serving of a modifier option.\\n\"},\"modifierOptionReferences\":{\"type\":\"array\",\"description\":\"An array of `referenceId`s for `ModifierOption` objects. These objects define the modifier options contained in this modifier group.\\n\",\"minItems\":0,\"items\":{\"type\":\"integer\"}}}},\"ModifierOption\":{\"type\":\"object\",\"description\":\"Information about a modifier option configured for this restaurant.\\n\",\"properties\":{\"referenceId\":{\"description\":\"An integer identifier that is used to refer to this modifier option by modifier option groups that contain it.\\n\",\"type\":\"integer\"},\"name\":{\"description\":\"A descriptive name for this modifier option, for example, \\\"Cheese\\\" or \\\"Pepperoni\\\".\\n          \\nTo avoid menu ingestion failures, if the `name` value for a modifier option is an empty string or `null`, the menus API updates it to the string `Missing name` in the returned menus data. A modifier option has a blank name if both its item reference name and its modifier override name are missing.\\n\\nNote that, while this solution allows menu ingestion to proceed without failure, it does allow a modifier option with the name `Missing name` to appear in a restaurant’s menu, creating potential confusion for guests and employees. Also, the menus API only updates the returned data. It does not update the modifier option in the Toast database, meaning the name will still be blank when looking at the modifier option in Toast Web.\\n\\nTo fix the issue in Toast Web, the restaurant must identify the parent menu entity for the modifier option, view its details page in Toast Web, and then locate and fix the modifier option with the blank name.\\n\\nFor a detailed description of a modifier option's item reference, see <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminUnderstandingAModifierOptionsItemReference\\\">Understanding a modifier option’s item reference</a> in the Toast Platform Guide.\\n\",\"type\":\"string\"},\"kitchenName\":{\"description\":\"The name of the modifier option as it appears on kitchen tickets. The `kitchenName` can include both numbers and letters. This value contains an empty string if a kitchen name has not been configured for the modifier option.\\n\",\"type\":\"string\"},\"guid\":{\"description\":\"A unique identifier for this modifier option's item reference, assigned by the Toast POS system. For a detailed description of a modifier option's item reference, see <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminUnderstandingAModifierOptionsItemReference\\\">Understanding a modifier option’s item reference</a> in the Toast Platform Guide.\\n\",\"type\":\"string\"},\"multiLocationId\":{\"$ref\":\"#/components/schemas/MultiLocationId\"},\"masterId\":{\"$ref\":\"#/components/schemas/MasterId\"},\"description\":{\"description\":\"An optional short description of this modifier option.\\n\",\"type\":\"string\"},\"posName\":{\"$ref\":\"#/components/schemas/PosName\"},\"posButtonColorLight\":{\"$ref\":\"#/components/schemas/PosButtonColorLight\"},\"posButtonColorDark\":{\"$ref\":\"#/components/schemas/PosButtonColorDark\"},\"prepStations\":{\"type\":\"array\",\"description\":\"An array of GUIDs for the prep stations that have been assigned to this modifier option.\\n\\nIf a modifier option's item reference has prep stations assigned to it, then the modifier option uses those prep stations. If the modifier option's item reference *does not* have prep stations assigned to it, then the modifier option inherits the prep stations of the menu group, menu item, or modifier (in the case of nested modifiers) it is modifying.\\n\\nThe array is empty if no prep stations have been assigned to the modifier option.<br>\\n<br>\\n*Related topics:*<br>\\n<a href=\\\"https://doc.toasttab.com/doc/platformguide/platformKitchenRoutingOverview.html\\\">Routing to prep stations</a>\\n<a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminUnderstandingAModifierOptionsItemReference\\\">Understanding a modifier option’s item reference</a>\\n\",\"items\":{\"type\":\"string\"}},\"image\":{\"$ref\":\"#/components/schemas/Image\"},\"visibility\":{\"$ref\":\"#/components/schemas/Visibility\"},\"price\":{\"type\":\"number\",\"format\":\"double\",\"description\":\"The price of this modifier option.\\n\\nIn Toast Web, a modifier option may:\\n  * Inherit its price from a parent modifier group.\\n  * Use the price specified for its modifier option <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminUnderstandingAModifierOptionsItemReference\\\">item reference</a>.\\n  * Specify a price that overrides the price defined for its item reference.\\n\\nThe `price` value is populated differently depending on which of these pricing scenarios is used for the modifier option. The sections below describe how the `price` value is populated in these different scenarios.\\n\\n_Note:_ To determine how a modifier option has been priced, you can inspect the modifier option's `pricingStrategy` value. If it is GROUP_PRICE, then the modifier option is inheriting its price from a parent modifier group. If it is any value other than GROUP_PRICE (for example, MENU_SPECIFIC_PRICE or TIME_SPECIFIC PRICE), then the modifier option is using either the price specified for its item reference or an override price (override prices always use the BASE_PRICE strategy).\\n\\n_Modifier Option Inherits Its Price from a Parent Modifier Group_\\n\\nIf the modifier option inherits its price from a parent modifier group and that group uses the:\\n  * Fixed Price pricing strategy, then the modifier option's `price` value is populated with the fixed price specified for the parent modifier group. No additional calculations are required.\\n  * Size Price, Sequence Price, or Size/Sequence pricing strategy, then the modifier option's `price` value is null. You must use the _parent modifier group's_ `pricingStrategy` and `pricingRules` values to calculate the modifier option's price.\\n\\n_Modifier Option Specifies an Override Price_\\n\\nIf the modifier option specifies an override price, the `price` value is set to that override price. No additional calculations are required.\\n\\n_Modifier Option Uses the Price from Its Item Reference_\\n\\nIf a modifier option uses the price from its underlying item reference, then the `price` value is populated using the same logic as the `price` value for a `MenuItem` object:\\n  * For base prices, the `price` value is populated with the specified base price.\\n  * For menu-specific prices, the `price` value is resolved based on the current menu. For example, consider a modifier option that is included in both Lunch and Dinner menus and is priced at $1 for the Lunch menu and $2 for the Dinner menu. In the fully resolved JSON returned by the menus API, this modifier option would appear twice, once as a child of the Lunch menu with a `price` value of $1, and again as a child of the Dinner menu with a `price` value of $2.\\n\\n  If this same modifier option is added to a Breakfast menu but a menu-specific price is not defined for the Breakfast menu, then the `price` value for the instance of the modifier option that appears in the Breakfast menu JSON is populated with the base price from the menu-specific price configuration. Menu-specific price configurations include a base price that functions as a default price when a menu-specific price cannot be resolved.\\n  \\n  * For location-specific prices, the `price` value is resolved based on the current location. For example, consider a modifier option that costs $2 in the Boston location and $3 in the New York location. When you retrieve menu data for the Boston location, this modifier option's `price` value is $2. When you retrieve menu data for the New York location, the modifier option's `price` value is $3.\\n  * For time-specific prices, the `price` value is populated with the base price that is specified as part of the time-specific price configuration. This base price functions as a default price for the modifier option during times of the day when a time-specific price has not been defined. For example, consider a modifier option that costs $1 from noon to 2pm and $2 during the rest of the day. The `price` value for this item would be $2. You must use _this modifier option's_ `pricingStrategy` and `pricingRules` values to calculate the price of the modifier option during time periods for which a time-specific price has been defined.\\n  * For size prices, the `price` value is null. You must use _this modifier option's_ `pricingStrategy` and `pricingRules` values to calculate the price of the modifier option for different sizes.\\n  * For open prices, the `price` value is null.\\n\\nIf the modifier option is priced using a price level, the `price` value reflects the pricing strategy used for the price level, using the same logic described above. For example, consider a price level that applies a size price to the modifier option it is assigned to. In this case, the `price` value for the modifier option is null and you must use this modifier option's `pricingStrategy` and `pricingRules` values to calculate the price of the modifier option for different sizes.\\n_Note:_ For detailed information on modifier option pricing and pricing strategies, see the <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminToastPosPricingFeatures.html\\\">Menu pricing</a> section in the Toast Platform Guide.\\n\",\"nullable\":true},\"pricingStrategy\":{\"type\":\"string\",\"description\":\"A string that indicates how this modifier option has been priced. If `pricingStrategy` is:\\n  * GROUP_PRICE, then the modifier option inherits its price from a parent modifier group.\\n  * Any value other than GROUP_PRICE (for example, MENU_SPECIFIC_PRICE or TIME_SPECIFIC PRICE), then the modifier option is using either the price specified for its <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminUnderstandingAModifierOptionsItemReference\\\">item reference</a> or an override price (override prices always use the BASE_PRICE strategy).\\n\\nIf the modifier option is using the price of its underlying item reference, and that item reference is priced using the Location Specific Price pricing strategy, then the `pricingStrategy` value indicates which pricing strategy is used at the current location. For example, consider a modifier option that uses a menu-specific price at the Boston location and a base price at the New York location. When you retrieve the menu data for the Boston location, the `pricingStrategy` for the modifier option is MENU_SPECIFIC_PRICE. When you retrieve menu data for the New York location, the `pricingStrategy` for the modifier option is BASE_PRICE.\\n\\nIf the modifier option is using the price of its underlying item reference, and that item reference is priced using a price level, then the `pricingStrategy` value indicates which pricing strategy is used for that price level. For example, if the \\\"Special Toppings\\\" price level uses a time-specific price, then the `pricingStrategy` value for a modifier option that is assigned the \\\"Special Toppings\\\" price level is TIME_SPECIFIC_PRICE.\\n\\nIt is important to understand which `pricingRules` object to use when modifier option prices must be calculated. If the `pricingStrategy` value is:\\n  * BASE_PRICE or MENU_SPECIFIC_PRICE,  then you can retrieve the modifier option's price from its `price` value. No additional calculations are required.\\n  * GROUP_PRICE, then you must use the `pricingStrategy` and `pricingRules` values from _the modifier option's parent modifier group_ to calculate the modifier option's price.\\n  * TIME_SPECIFIC_PRICE or SIZE_PRICE, then you must use the rules provided in _this modifier option's_ `pricingRules` value to calculate the price for the modifier option.\\n\"},\"pricingRules\":{\"type\":\"object\",\"description\":\"A `PricingRules` object with information about how to calculate the price for this modifier option. You use a modifier option's `pricingRules` object, in conjunction with its `pricingStrategy` value, to calculate a price for the modifier option when the modifier option is _individually priced_ and its `price` value is null.\\n\\n_Note:_ If the modifier option is priced at the group level, you must use the `pricingRules` object of its parent modifier group to calculate its price. A modifier option is priced at the group level if its `pricingStrategy` value is GROUP_PRICE.\\n\\nThe `pricingRules` object takes different forms depending on the pricing strategy configured for the modifier option. Use the `pricingStrategy` value to determine which pricing strategy has been used so that you can properly interpret the data in the `pricingRules` object. For the BASE_PRICE, and MENU_SPECIFIC_PRICE pricing strategies, the `pricingRules` object is null because you can retrieve the price from the `price` value without additional calculation. For the OPEN_PRICE pricing strategy, the `pricingRules` object is also null (the price of a modifier option whose item reference uses the Open Price pricing strategy is specified at the time that the modifier option is ordered). For the TIME_SPECIFIC_PRICE and SIZE_PRICE pricing strategies, the `pricingRules` object contains additional values that you use to calculate the modifier option's price.\\n\",\"items\":{\"$ref\":\"#/components/schemas/PricingRules\"},\"nullable\":true},\"salesCategory\":{\"$ref\":\"#/components/schemas/SalesCategory\"},\"taxInfo\":{\"type\":\"array\",\"description\":\"The `taxInfo` value on the `ModifierOption` object has been deprecated. An upcoming release will introduce new configuration settings for the taxes on a modifier option. The `taxInfo` value will not accurately represent these additional configurations. Your integration should switch to using the `modifierOptionTaxInfo` value instead. See <a href=\\\"https://doc.toasttab.com/doc/devguide/apiUsingTaxInfoAndModifierOptionTaxInfoToCalculateTaxesForMenuItemsAndModOptions.html\\\">Using taxInfo and modifierOptionTaxInfo to calculate taxes for menu items and modifier options</a> in the Toast Developer Guide for more information. \\n\",\"items\":{\"type\":\"string\"}},\"modifierOptionTaxInfo\":{\"$ref\":\"#/components/schemas/ModifierOptionTaxInfo\"},\"itemTags\":{\"type\":\"array\",\"description\":\"An array of `ItemTag` objects that are assigned to this modifier option. Item tags are used to assign identifying characteristics to a modifier option, for example, vegetarian, gluten-free, alcohol.\\n\",\"items\":{\"$ref\":\"#/components/schemas/ItemTag\"}},\"plu\":{\"type\":\"string\",\"description\":\"The price lookup (PLU) code for this modifier option. The PLU code can contain both numbers and letters. This value contains an empty string if a PLU code has not been defined.\\n\"},\"sku\":{\"type\":\"string\",\"description\":\"The stock keeping unit (SKU) identifier for this modifier option. The SKU identifier can contain both numbers and letters. This value contains an empty string if a SKU has not been defined.\\n\"},\"calories\":{\"type\":\"integer\",\"description\":\"The number of calories in this modifier option. The calories value can be any positive or negative integer, or zero. This value is null if a calories amount has not been configured for the modifier option.\\n\",\"nullable\":true},\"contentAdvisories\":{\"$ref\":\"#/components/schemas/ContentAdvisories\"},\"unitOfMeasure\":{\"type\":\"string\",\"enum\":[\"NONE\",\"LB\",\"OZ\",\"KG\",\"G\",\"GAL\",\"L\",\"ML\",\"FL_OZ\",\"M\",\"CM\",\"FT\",\"IN\",\"YD\"],\"description\":\"The unit of measure used to determine the price of the modifier option. For example, $10.00 per gram.\\n\\nThe default is `NONE`, which means that the item is not meant to be measured during a sale.\\n\\nValues are:\\n* `NONE` - The item is not meant to be measured.\\n* `LB` - Weighed in pounds.\\n* `OZ` - Weighed in ounces.\\n* `KG` - Weighed in kilograms.\\n* `G` - Weighed in grams.\\n* `GAL` - Measured in gallons.\\n* `L` - Measured in liters.\\n* `ML` - Measured in milliliters.\\n* `FL_OZ` - Measured in fluid ounces.\\n* `M` - Measured in meters.\\n* `CM` - Measured in centimeters.\\n* `FT` - Measured in feet.\\n* `IN` - Measured in inches.\\n* `YD` - Measured in yards.\\n\"},\"isDefault\":{\"type\":\"boolean\",\"description\":\"Indicates whether this modifier option is included on the menu item by default.\\n\\n_Important:_ If a menu item is configured to use default modifiers and you submit an order to the orders API for that menu item but you omit those default modifiers, then the Toast POS system assumes you want to omit the default modifiers and they will not be included in the order. For example, consider a Burger menu item that has Lettuce and Tomato as default modifiers. If you submit an order to the orders API for the Burger menu item but omit the Lettuce and Tomato default modifiers in the request, the order ticket will include the Burger but not the Lettuce and Tomato modifier options.\\n\"},\"allowsDuplicates\":{\"type\":\"boolean\",\"description\":\"Indicates whether the modifier option may be added to a menu item multiple times.\\n\\nIf a modifier option belongs to a modifier group whose `isMultiSelect` value is FALSE, then the Toast POS system sets the modifier option’s `allowsDuplicates` value to FALSE to prevent more than one modifier option being selected for the group.\\n\"},\"portions\":{\"type\":\"array\",\"description\":\"An array of `Portion` objects that define the portions that this modifier option can be added to. For example, for a pizza menu item, you could define 1st Half and 2nd Half portions and this modifier option could be added to either portion. See <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPortionsOverview.html\\\">Portions overview</a> in the Toast Platform Guide for more information.\\n\",\"minItems\":0,\"items\":{\"$ref\":\"#/components/schemas/Portion\"}},\"prepTime\":{\"type\":\"integer\",\"description\":\"The amount of time, in seconds, that it takes to prepare this modifier option. This value is null if a prep time has not been specified for the modifier option.<br>\\n<br>\\n*Related topics*<br>\\n<a href=\\\"https://doc.toasttab.com/doc/platformguide/adminFireByPrepTime.html\\\">Using prep times to automate item firing</a><br>\\n\",\"format\":\"int32\",\"nullable\":true},\"modifierGroupReferences\":{\"type\":\"array\",\"description\":\"An array of `referenceId`s for `ModifierGroup` objects. These objects define nested modifier groups contained in this modifier option. For example, you can have an entree that has a Sides modifier group that contains a Salad modifier option. The Salad modifier option has its own modifier group, Salad Dressing, that includes Ranch, Vinaigrette, and Blue Cheese modifier options. Salad Dressing is a nested modifier group and the individual salad dressings are nested modifier options.\\n\",\"minItems\":0,\"items\":{\"type\":\"integer\"}},\"length\":{\"$ref\":\"#/components/schemas/Length\"},\"height\":{\"$ref\":\"#/components/schemas/Height\"},\"width\":{\"$ref\":\"#/components/schemas/Width\"},\"dimensionUnitOfMeasure\":{\"$ref\":\"#/components/schemas/DimensionUnitOfMeasure\"},\"weight\":{\"$ref\":\"#/components/schemas/Weight\"},\"weightUnitOfMeasure\":{\"$ref\":\"#/components/schemas/WeightUnitOfMeasure\"},\"images\":{\"$ref\":\"#/components/schemas/Images\"},\"guestCount\":{\"$ref\":\"#/components/schemas/GuestCount\"},\"sortOrder\":{\"type\":\"integer\",\"description\":\"A number determining the order in which this modifier option should appear on kitchen tickets. The sort order value can be any positive or negative integer, or zero. This value is null if a sort order has not been configured for the modifier option.\\n\",\"nullable\":true},\"allergens\":{\"type\":\"array\",\"description\":\"Reserved for future functionality. Not currently supported for external integrations.\\n\",\"minItems\":0,\"items\":{\"$ref\":\"#/components/schemas/AllergenItem\"},\"nullable\":true}}},\"ModifierOptionTaxInfo\":{\"type\":\"object\",\"description\":\"Information about the tax rates and tax behavior of this modifier option.\\n\\n_Note:_ The `modifierOptionTaxInfo` value always reflects the parent menu item tax rate, unless Toast grants the restaurant the ability to override modifier tax rates. If this permission is not granted, then even if the restaurant configured the modifier with a different tax rate, `modifierOptionTaxInfo` reflects the parent menu item tax rate.\\n\\nNote that there are other tax-related features that can impact the tax of a modifier option, such as tax inclusion and smart tax, that are not returned in this `ModifierOptionTaxInfo` object. For more information, see <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminTaxesOnModifiers.html\\\">Tax on modifiers</a> and <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminTaxesOnModifiers.html#adminModifierTaxInteraction\\\">Tax functionality interaction</a>.\\n\\n_Important:_ The `ModifierOptionTaxInfo` object is intended to help you display prices but the `/prices` endpoint of the orders API is the only supported way to determine the prices of orders that you submit to the orders API. See <a href=\\\"https://doc.toasttab.com/doc/devguide/apiOrderPrices.html\\\">Order prices</a> in the Toast Developer Guide for more information.\\n\",\"properties\":{\"taxRateGuids\":{\"type\":\"array\",\"description\":\"An array of GUIDs for the tax rates that apply to this modifier option.\\n\\nThe `taxRateGuids` value includes different tax rate GUIDs, depending on whether the modifier option is configured in Toast Web to use its own tax rates or to inherit tax rates from a menu item it has been applied to. See <a href=\\\"https://doc.toasttab.com/doc/devguide/apiUsingTaxInfoAndModifierOptionTaxInfoToCalculateTaxesForMenuItemsAndModOptions.html\\\">Using taxInfo and modifierOptionTaxInfo to calculate taxes for menu items and modifier options</a> in the Toast Developer Guide for more information.\\n                   \\nTo retrieve full configuration data for a tax rate, use the `/taxRates/{guid}` endpoint in the configuration API.\\n\",\"items\":{\"type\":\"string\"}},\"overrideItemTaxRates\":{\"description\":\"Indicates whether the tax rates configured for this modifier option override the tax rates configured for a menu item that this modifier option has been applied to. For example, if the menu item is configured for a 6.25% tax rate and the modifier option is configured for a 2.75% tax rate, when that modifier option is applied to the menu item, both are taxed at the 2.75% tax rate.\\n\\nNote that the menu item's tax rate is overridden only if the modifier option is added to the menu item on a Toast POS device. The modifier option may be available to apply to the menu item, but if it is not actually added to the menu item on a Toast POS device, then the menu item's tax rate is not overridden. See <a href=\\\"https://doc.toasttab.com/doc/devguide/apiUsingTaxInfoAndModifierOptionTaxInfoToCalculateTaxesForMenuItemsAndModOptions.html\\\">Using taxInfo and modifierOptionTaxInfo to calculate taxes for menu items and modifier options</a> in the Toast Developer Guide for more information.\\n\",\"type\":\"boolean\"}}},\"PreModifierGroup\":{\"type\":\"object\",\"description\":\"Information about a pre-modifier group configured for this restaurant, including an array of pre-modifiers contained in the group.\\n\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"A descriptive name for this pre-modifier group, for example, \\\"Sandwich Pre-mods\\\".\\n\"},\"guid\":{\"description\":\"A unique identifier for this pre-modifier group, assigned by the Toast POS system.\\n\",\"type\":\"string\"},\"multiLocationId\":{\"$ref\":\"#/components/schemas/MultiLocationId\"},\"preModifiers\":{\"description\":\"An array of `PreModifier` objects that are contained in this pre-modifier group. Pre-modifiers alter the display of modifier options on receipts and tickets to satisfy guest requests such as EXTRA or ON THE SIDE for modifier options. Pre-modifiers can also be configured to modify the cost of the modifier options they are applied to, for example, by charging more for an EXTRA serving of a modifier option.\\n\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/PreModifier\"}}}},\"PreModifier\":{\"type\":\"object\",\"description\":\"Information about a pre-modifier configured for this restaurant.\\n\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"A descriptive name for this pre-modifier, for example, \\\"NO\\\" or \\\"EXTRA\\\".\\n\"},\"guid\":{\"description\":\"A unique identifier for this pre-modifier group, assigned by the Toast POS system.\\n\",\"type\":\"string\"},\"multiLocationId\":{\"$ref\":\"#/components/schemas/MultiLocationId\"},\"fixedPrice\":{\"description\":\"An optional fixed price for this pre-modifier. The fixed price is added to the cost of the modifier option that the pre-modifier is applied to.\\n\\nA PreModifier object has two optional values, `fixedPrice` and `multiplicationFactor`, that both alter the price of a modifier option when the pre-modifier is applied to it. However, these values cannot be used at the same time. If you specify a `fixedPrice` value for a premodifier, then `multiplicationFactor` is null. If you specify a `multiplicationFactor` for a pre-modifier, then `fixedPrice` is null. If you choose not to assign either a fixed price or a multiplication factor to a pre-modifier, then the `fixedPrice` value is 0 and the `multiplicationFactor` is null.\\n\",\"type\":\"number\",\"format\":\"double\",\"nullable\":true},\"multiplicationFactor\":{\"description\":\"An optional number that specifies how much the cost of a modifier option is multiplied by when this pre-modifier is applied to it. For example, an EXTRA pre-modifier option could specify a `multiplicationFactor` of 1.5 to indicate that adding extra cheese to a menu item costs one and a half times the regular price of the cheese modifier option.\\n\\nA PreModifier object has two optional values, `fixedPrice` and `multiplicationFactor`, that both alter the price of a modifier option when the pre-modifier is applied to it. However, these values cannot be used at the same time. If you specify a `fixedPrice` value for a premodifier, then `multiplicationFactor` is null. If you specify a `multiplicationFactor` for a premodifier, then `fixedPrice` is null. If you choose not to assign either a fixed price or a multiplication factor to a pre-modifier, then the `fixedPrice` value is 0 and the `multiplicationFactor` is null.\\n\",\"type\":\"number\",\"format\":\"double\",\"nullable\":true},\"displayMode\":{\"description\":\"A string that indicates how the pre-modifier is displayed on tickets and receipts:\\n  * PREFIX: The pre-modifier name is placed before the modifier option name, for example, \\\"EXTRA Cheese\\\".\\n  * SUFFIX: The pre-modifier name is placed after the modifier option name, for example, \\\"Cheese EXTRA\\\".\\n\",\"type\":\"string\",\"enum\":[\"PREFIX\",\"SUFFIX\"]},\"posName\":{\"$ref\":\"#/components/schemas/PosName\"},\"posButtonColorLight\":{\"$ref\":\"#/components/schemas/PosButtonColorLight\"},\"posButtonColorDark\":{\"$ref\":\"#/components/schemas/PosButtonColorDark\"},\"chargeAsExtra\":{\"type\":\"boolean\",\"description\":\"When true, selecting this pre-modifier adds an additional portion of the modifier to the menu item and adds the price of the additional portion to the menu item according to the rules listed below.\\n\\nIf the modifier group that the modifier belongs to:\\n* Uses the **No charge** option, the Toast platform uses the modifier's <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminBasingModifierOptionsOnExistingMenuItems\\\">override price</a> or, if no override price exists, the <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminUnderstandingAModifierOptionsItemReference\\\">item reference</a> price as the price of the additional portion.\\n* Uses the **Individual** option where each modifier has its own price, the Toast platform uses the modifier's override price or, if no override price exists, the item reference price as the price of the additional portion.\\n* Uses the **Group** option where all modifiers in the group share a price, the Toast platform uses the group price as the price of the additional portion.\\n\\nAdditionally, if the modifier group that the modifier belongs to uses:\\n* <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminSizePrice.html#adminSizePricingForModifierGroups\\\">Size</a> pricing, the Toast platform uses the size price that matches the size of the menu item when determining the price of the additional portion.\\n* <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminSequencePrice.html\\\">Sequence</a> pricing, the Toast platform treats the additional portion as the next modifier in the sequence and prices it using the sequence pricing rules that have been specified.\\n* <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminSizeSequencePrice.html\\\">Size/sequence</a> pricing, the Toast platform matches the size of the additional portion to the size of the menu item and then treats it as the next modifier in the sequence when determining the price of the additional portion.\\n\\nThe `chargeAsExtra` value is `null` if it has not been set.\\n\",\"nullable\":true},\"plu\":{\"type\":\"string\",\"description\":\"The price lookup (PLU) code for this pre-modifier. The PLU code can contain both numbers and letters. This value contains an empty string if a PLU code has not been defined.\\n\"}}},\"SalesCategory\":{\"type\":\"object\",\"description\":\"A descriptive category, for example, \\\"Food\\\" or \\\"Liquor\\\" that, when applied to the menu items and modifier options in your menu, allow you to view sales data by category. Null if no sales category has been defined.\\n\",\"properties\":{\"name\":{\"description\":\"A descriptive name for this sales category, for example, \\\"Food\\\" or \\\"Liquor\\\".\\n\",\"type\":\"string\"},\"guid\":{\"description\":\"A unique identifier for this sales category, assigned by the Toast POS system.\\n\",\"type\":\"string\"}}},\"ItemTag\":{\"type\":\"object\",\"description\":\"A descriptive term that identifies a characteristic of a menu item or menu group, for example, vegetarian, gluten-free, or alcohol.\\n\",\"properties\":{\"name\":{\"description\":\"A descriptive name for this item tag, for example, \\\"Vegetarian\\\" or \\\"Alcohol\\\".\\n\",\"type\":\"string\"},\"guid\":{\"description\":\"A unique identifier for this item tag category, assigned by the Toast POS system.\\n\",\"type\":\"string\"}}},\"ContentAdvisories\":{\"type\":\"object\",\"description\":\"Information about the contents of this menu item or modifier, for example, whether it contains alcohol.\\n\",\"properties\":{\"alcohol\":{\"$ref\":\"#/components/schemas/Alcohol\"}}},\"AllergenItem\":{\"type\":\"object\",\"description\":\"Reserved for future functionality. Not currently supported for external integrations.\\n\",\"properties\":{\"guid\":{\"description\":\"Reserved for future functionality. Not currently supported for external integrations.\\n\",\"type\":\"string\",\"format\":\"uuid\"},\"code\":{\"description\":\"Reserved for future functionality. Not currently supported for external integrations.\\n\",\"type\":\"string\"},\"groupGuid\":{\"description\":\"Reserved for future functionality. Not currently supported for external integrations.\\n\",\"type\":\"string\",\"format\":\"uuid\",\"nullable\":true},\"groupCode\":{\"description\":\"Reserved for future functionality. Not currently supported for external integrations.\\n\",\"type\":\"string\",\"nullable\":true},\"presenceType\":{\"type\":\"string\",\"description\":\"Reserved for future functionality. Not currently supported for external integrations.\\n\",\"enum\":[\"CONTAINS\",\"TRACES\"],\"nullable\":true}}},\"Alcohol\":{\"type\":\"object\",\"description\":\"Information about whether this menu item or modifier contains alcohol and may require, \\nor benefit from, additional handling. For example, a delivery partner may need \\nto identify a menu item or modifier as containing alcohol to ensure that delivery drivers\\nrequest identification before giving it to a customer.\\n\",\"properties\":{\"containsAlcohol\":{\"type\":\"string\",\"description\":\"A string that indicates whether the menu item or modifier contains alcohol. Possible values \\ninclude:\\n\\n* `YES`: The menu item or modifier contains alcohol.\\n* `NO`: The menu item or modifier does not contain alcohol.\\n     \\nThe `containsAlcohol` value may also be `null`. A `null` value indicates that the corresponding UI option in Toast Web has not been configured for this menu item or modifier.\\n\",\"enum\":[\"YES\",\"NO\"]}}},\"Portion\":{\"type\":\"object\",\"description\":\"A container for the modifier groups that can be applied to a portion of a menu item.\\n\",\"properties\":{\"name\":{\"description\":\"A descriptive name for this portion, for example, \\\"1st Half\\\" or \\\"2nd Half\\\".\\n\",\"type\":\"string\"},\"guid\":{\"description\":\"A unique identifier for this portion, assigned by the Toast POS system.\\n\",\"type\":\"string\"},\"modifierGroupReferences\":{\"type\":\"array\",\"description\":\"An array of `referenceId`s for `ModifierGroup` objects. These objects define the modifier groups that can be applied to this portion.\\n\",\"minItems\":0,\"items\":{\"type\":\"integer\"}},\"priceScaleFactor\":{\"type\":\"number\",\"format\":\"double\",\"description\":\"A multiplier that adjusts the cost of modifiers in this portion.\\n\",\"nullable\":true}}},\"Availability\":{\"type\":\"object\",\"description\":\"Information about when a menu is available for use.\\n\",\"properties\":{\"alwaysAvailable\":{\"type\":\"boolean\",\"description\":\"Indicates whether this menu is available 24 hours per day, 7 days a week. If `alwaysAvailable` is FALSE, then a `schedule` value is included in the `Availability` object to define the specific times and days a menu is available. If `alwaysAvailable` is TRUE, then the `schedule` value is omitted. \\n\"},\"schedule\":{\"type\":\"array\",\"description\":\"An array of `Schedule` objects that indicate the specific days and times a menu is available. If `alwaysAvailable` is TRUE, then the menu is available 24 hours per day, 7 days per week, and this `schedule` value is omitted from the `Availabilty` object.\\n\",\"items\":{\"$ref\":\"#/components/schemas/Schedule\"}}}},\"Schedule\":{\"type\":\"object\",\"description\":\"A multi-use object that is used to:\\n\\n* Define when a menu is available.\\n* Define when a time-specific price is available for a menu item or modifier option.\\n\\nA `Schedule` object defines a set of days of the week and a set of time ranges for those days. Days that have identical time ranges are grouped into a single `Schedule` object, for example, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, and FRIDAY in the example below have identical time ranges and are in the same `Schedule` object while SATURDAY and SUNDAY are in a separate `Schedule` object because their time ranges differ from the weekday time ranges.\\n\\n```\\n\\\"availability\\\": {\\n  \\\"alwaysAvailable\\\": false,\\n  \\\"schedule\\\": [\\n    {\\n      \\\"days\\\": [\\n        \\\"MONDAY\\\", \\n        \\\"TUESDAY\\\", \\n        \\\"WEDNESDAY\\\", \\n        \\\"THURSDAY\\\"\\n      ],\\n      \\\"timeRanges\\\": [\\n        {\\n          \\\"start\\\": \\\"09:00\\\",\\n          \\\"end\\\": \\\"18:00\\\"\\n        }\\n      ]\\n    },\\n    {\\n      \\\"days\\\": [\\n        \\\"FRIDAY\\\", \\n        \\\"SATURDAY\\\"\\n      ],\\n      \\\"timeRanges\\\": [\\n        {\\n          \\\"start\\\": \\\"09:00\\\",\\n          \\\"end\\\": \\\"18:00\\\"\\n        },\\n        {\\n          \\\"start\\\": \\\"20:00\\\",\\n          \\\"end\\\": \\\"23:00\\\"\\n        }\\n      ]\\n    }\\n  ]\\n}\\n```\\n\\nTime ranges are in 24-hour HH:MM format.\\n\\nIf a day is not represented in the `Schedule` objects, the menu or time-specific price is not available on that day.      \\n\",\"properties\":{\"days\":{\"type\":\"array\",\"description\":\"An array of days of the week that are associated with identical time ranges. The time ranges are defined in a corresponding `timeRanges` value. Names of the days are in upper case, for example, MONDAY.\\n\",\"items\":{\"type\":\"string\",\"description\":\"A day of the week, for example, SUNDAY or THURSDAY.\",\"enum\":[\"SUNDAY\",\"MONDAY\",\"TUESDAY\",\"WEDNESDAY\",\"THURSDAY\",\"FRIDAY\",\"SATURDAY\"]}},\"timeRanges\":{\"type\":\"array\",\"description\":\"An array of `TimeRange` objects that define the time ranges that a menu or a time-specific price is available on the days defined by the corresponding `days` value. A `TimeRange` object contains a `start` time and an `end` time, expressed in the restaurant’s local time. If both the `start` and `end` times for a given day are 00:00, it indicates that the menu or the time-specific price is available 24 hours on the associated days. Time ranges may also run overnight, for example, a time range that starts at \\\"07:00\\\" and ends at \\\"03:00\\\" runs from 7am until 3am the next day. \\n\",\"items\":{\"$ref\":\"#/components/schemas/TimeRange\"}}}},\"TimeRange\":{\"type\":\"object\",\"description\":\"Represents a time range for when a menu or a time-specific price is available.\\n\",\"properties\":{\"start\":{\"type\":\"string\",\"description\":\"The start time of the time range. Expressed in the restaurant’s local time.\\n\"},\"end\":{\"type\":\"string\",\"description\":\"The end time of the time range. Expressed in the restaurant’s local time.\\n\"}}},\"PricingRules\":{\"type\":\"object\",\"description\":\"The PricingRules object is a multi-use object that provides pricing rules for:\\n  * A menu item or modifier option <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminUnderstandingAModifierOptionsItemReference\\\">item reference</a> that uses the Time Specific Price or Size Price pricing strategy.\\n  * A modifier group that uses the Size Price, Sequence Price, or Size/Sequence Price pricing strategy.\\n\",\"properties\":{\"timeSpecificPricingRules\":{\"description\":\"An array of `TimeSpecificPrice` objects that define the time-specific prices for a menu item or modifier option <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminUnderstandingAModifierOptionsItemReference\\\">item reference</a> that uses the Time Specific Price pricing strategy. If the menu item or modifier option item reference does not use time-specific prices, this array is empty.\\n\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/TimeSpecificPrice\"}},\"sizeSpecificPricingGuid\":{\"description\":\"The GUID of a Size modifier group that defines sizes and prices for a menu item or a modifier option <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingModifierOptions.html#adminUnderstandingAModifierOptionsItemReference\\\">item reference</a> that uses the Size Price pricing strategy.\\n\\nIf the menu item or modifier option item reference does not use the Size Price pricing strategy, then `sizeSpecificPricingGuid` is null.\\n\\nThe Toast POS system automatically creates a Size modifier group when you choose the Size Price pricing strategy for a menu item or modifier option item reference and stores the sizes and prices you specify in it. You use the `sizeSpecificPricingGuid` value to locate the correct Size modifier group to use when pricing a menu item or modifier option item reference that uses size pricing. In the JSON fragment below, you can see that the Cheese Pizza menu item uses the SIZE_PRICE pricing strategy and the Size modifier group where the sizes and prices for Cheese Pizza are defined has a GUID that ends in `31b0`.\\n\\n```\\n{\\n  \\\"restaurantGuid\\\": \\\"2071fb81-988b-4d75-b8dc-c5c17cff9706\\\",\\n  ...\\n  \\\"menus\\\": [\\n    {\\n      \\\"name\\\": \\\"Dinner\\\",\\n      \\\"guid\\\": \\\"ddd681de-3c12-4d45-b8b1-a5b2ea898210\\\",\\n      ...\\n      \\\"menuGroups\\\": [\\n        {\\n          \\\"name\\\": \\\"Pizza\\\",\\n          \\\"guid\\\": \\\"dc868006-919a-4950-a4cc-3a03f9770fd7\\\",\\n          ...\\n          \\\"menuItems\\\": [\\n            {\\n              \\\"name\\\": \\\"Cheese Pizza\\\",\\n              \\\"guid\\\": \\\"95c5d500-8d92-46f2-bec4-fb2a42a46621\\\",\\n              ...\\n              \\\"price\\\": null,\\n              \\\"pricingStrategy\\\": \\\"SIZE_PRICE\\\",\\n              \\\"pricingRules\\\": {\\n                \\\"timeSpecificPricingRules\\\": [],\\n                \\\"sizeSpecificPricingGuid\\\": \\\"23c02762-9d6a-4d3f-a298-71c989bf31b0\\\",\\n                \\\"sizeSequencePricingRules\\\": []\\n              },\\n              ...\\n              \\\"modifierGroupReferences\\\": [\\n                2,\\n                6,\\n                ...\\n              ],\\n              ...\\n            }\\n          ]\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"modifierGroupReferences\\\": {\\n    ...\\n    \\\"2\\\": {\\n      \\\"referenceId\\\": 2,\\n      \\\"name\\\": \\\"Size\\\",\\n      \\\"guid\\\": \\\"23c02762-9d6a-4d3f-a298-71c989bf31b0\\\",\\n      ...\\n      \\\"pricingStrategy\\\": \\\"NONE\\\",\\n      \\\"pricingRules\\\": null,\\n      ...\\n      \\\"modifierOptionReferences\\\": [\\n        12,\\n        13\\n      ],\\n      ...\\n    },\\n    ...\\n  },\\n  \\\"modifierOptionReferences\\\": {\\n    ...\\n    \\\"12\\\": {\\n      \\\"referenceId\\\": 12,\\n      \\\"name\\\": \\\"Small\\\",\\n      \\\"guid\\\": \\\"352244f2-a952-4a3a-a3ae-7775fa221ce7\\\",\\n      ...\\n      \\\"price\\\": 8.0,\\n      \\\"pricingStrategy\\\": \\\"BASE_PRICE\\\",\\n      \\\"pricingRules\\\": null,\\n      ...\\n      \\\"modifierGroupReferences\\\": []\\n    },\\n    \\\"13\\\": {\\n      \\\"referenceId\\\": 13,\\n      \\\"name\\\": \\\"Large\\\",\\n      \\\"guid\\\": \\\"4ff89bca-b448-4892-bc4c-62c37a28ac44\\\",\\n      ...\\n      \\\"price\\\": 10.0,\\n      \\\"pricingStrategy\\\": \\\"BASE_PRICE\\\",\\n      \\\"pricingRules\\\": null,\\n      ...\\n      \\\"modifierGroupReferences\\\": []\\n    }\\n    ...\\n  }\\n}\\n```\\n\\n\\nWhen the `PricingRules` object appears in the context of a modifier\\ngroup, the `sizeSpecificPricingGuid` value it contains is also used to\\nfind matching sizes between menu items and any modifier options that\\nuse the Size Price or Size/Sequence Pricing pricing strategies (for\\nexample, toppings on a small pizza cost $1 while toppings on a large\\npizza cost $2). In this scenario, the Toast POS system locates the\\nmodifier option size that matches the menu item size and uses the\\nprice defined for that size of the modifier option. The sizes for the\\nmenu item are defined in the Size modifier group specified by the\\n`sizeSpecificPricingGuid` value. The sizes for the modifier options\\nare defined in objects contained in the `sizeSequencePricingRules`\\narray that is contained in the modifier group's `PricingRules` object.\\nSizes are considered matching when their names are identical. For\\ndetailed information on the **Size Price** and **Size/Sequence Price**\\npricing strategies, see [Pricing\\nStrategies](https://doc.toasttab.com/doc/platformguide/adminPricingStrategies.html)\\nin the _Toast Platform Guide_.\\n\\nIn the example below, the Cheese Pizza menu item and the Toppings\\nmodifier group use the `SIZE_PRICE` pricing strategy. The menu item\\nsizes and prices are defined in the Size modifier group with a GUID\\nending in `31b0`. The sizes and prices for the modifier options are\\ndefined in the `sizeSequencePricingRules` value that is a child of the\\nToppings modifier group.\\n\\n```\\n{\\n  \\\"restaurantGuid\\\": \\\"2071fb81-988b-4d75-b8dc-c5c17cff9706\\\",\\n  ...\\n  \\\"menus\\\": [\\n    {\\n      \\\"name\\\": \\\"Dinner\\\",\\n      \\\"guid\\\": \\\"ddd681de-3c12-4d45-b8b1-a5b2ea898210\\\",\\n      ...\\n      \\\"menuGroups\\\": [\\n        {\\n          \\\"name\\\": \\\"Pizza\\\",\\n          \\\"guid\\\": \\\"dc868006-919a-4950-a4cc-3a03f9770fd7\\\",\\n          ...\\n          \\\"menuItems\\\": [\\n            {\\n              \\\"name\\\": \\\"Cheese Pizza\\\",\\n              \\\"guid\\\": \\\"95c5d500-8d92-46f2-bec4-fb2a42a46621\\\",\\n              ...\\n              \\\"price\\\": null,\\n              \\\"pricingStrategy\\\": \\\"SIZE_PRICE\\\",\\n              \\\"pricingRules\\\": {\\n                \\\"timeSpecificPricingRules\\\": [],\\n                \\\"sizeSpecificPricingGuid\\\": \\\"23c02762-9d6a-4d3f-a298-71c989bf31b0\\\",\\n                \\\"sizeSequencePricingRules\\\": []\\n              },\\n              ...\\n              \\\"modifierGroupReferences\\\": [\\n                2,\\n                3,\\n                ...\\n              ],\\n              ...\\n            }\\n          ]\\n        }\\n      ]\\n    }\\n  ],\\n  \\\"modifierGroupReferences\\\": {\\n    ...\\n    \\\"2\\\": {\\n      \\\"referenceId\\\": 2,\\n      \\\"name\\\": \\\"Size\\\",\\n      \\\"guid\\\": \\\"23c02762-9d6a-4d3f-a298-71c989bf31b0\\\",\\n      ...\\n      \\\"pricingStrategy\\\": \\\"NONE\\\",\\n      \\\"pricingRules\\\": null,\\n      ...\\n      \\\"modifierOptionReferences\\\": [\\n        12,\\n        13\\n      ],\\n      ...\\n    },\\n    \\\"3\\\": {\\n      \\\"referenceId\\\": 3,\\n      \\\"name\\\": \\\"Toppings\\\",\\n      \\\"guid\\\": \\\"58b79986-f88f-411d-ba18-14b1e2441e9d\\\",\\n      ...\\n      \\\"pricingStrategy\\\": \\\"SIZE_PRICE\\\",\\n      \\\"pricingRules\\\": {\\n        \\\"timeSpecificPricingRules\\\": [],\\n        \\\"sizeSpecificPricingGuid\\\": \\\"23c02762-9d6a-4d3f-a298-71c989bf31b0\\\",\\n        \\\"sizeSequencePricingRules\\\": [\\n          {\\n            \\\"sizeName\\\": \\\"Small\\\",\\n            \\\"sizeGuid\\\": \\\"352244f2-a952-4a3a-a3ae-7775fa221ce7\\\",\\n            \\\"sequencePrices\\\": [\\n              {\\n                \\\"sequence\\\": 1,\\n                \\\"price\\\": 2.0\\n              }\\n            ]\\n          },\\n          {\\n            \\\"sizeName\\\": \\\"Large\\\",\\n            \\\"sizeGuid\\\": \\\"4ff89bca-b448-4892-bc4c-62c37a28ac44\\\",\\n            \\\"sequencePrices\\\": [\\n              {\\n                \\\"sequence\\\": 1,\\n                \\\"price\\\": 4.0\\n              }\\n            ]\\n          }\\n        ]\\n      },\\n      ...\\n      \\\"modifierOptionReferences\\\": [\\n        10,\\n        11\\n      ],\\n      ...\\n    },\\n    ...\\n  },\\n  \\\"modifierOptionReferences\\\": {\\n    ...\\n    \\\"10\\\": {\\n      \\\"referenceId\\\": 10,\\n      \\\"name\\\": \\\"Mushrooms\\\",\\n      \\\"guid\\\": \\\"fa24fee9-76c4-40ba-ae3c-7dfccafdd8d3\\\",\\n      ...\\n      \\\"price\\\": null,\\n      \\\"pricingStrategy\\\": \\\"GROUP_PRICE\\\",\\n      \\\"pricingRules\\\": null,\\n      ...\\n      \\\"modifierGroupReferences\\\": []\\n    },\\n    \\\"11\\\": {\\n      \\\"referenceId\\\": 11,\\n      \\\"name\\\": \\\"Onions\\\",\\n      \\\"guid\\\": \\\"afee6be7-8280-4c69-a170-9fdf4c76bf7b\\\",\\n      ...\\n      \\\"price\\\": null,\\n      \\\"pricingStrategy\\\": \\\"GROUP_PRICE\\\",\\n      \\\"pricingRules\\\": null,\\n      ...\\n      \\\"modifierGroupReferences\\\": []\\n    },\\n    \\\"12\\\": {\\n      \\\"referenceId\\\": 12,\\n      \\\"name\\\": \\\"Small\\\",\\n      \\\"guid\\\": \\\"352244f2-a952-4a3a-a3ae-7775fa221ce7\\\",\\n      ...\\n      \\\"price\\\": 8.0,\\n      \\\"pricingStrategy\\\": \\\"BASE_PRICE\\\",\\n      \\\"pricingRules\\\": null,\\n      ...\\n      \\\"modifierGroupReferences\\\": []\\n    },\\n    \\\"13\\\": {\\n      \\\"referenceId\\\": 13,\\n      \\\"name\\\": \\\"Large\\\",\\n      \\\"guid\\\": \\\"4ff89bca-b448-4892-bc4c-62c37a28ac44\\\",\\n      ...\\n      \\\"price\\\": 10.0,\\n      \\\"pricingStrategy\\\": \\\"BASE_PRICE\\\",\\n      \\\"pricingRules\\\": null,\\n      ...\\n      \\\"modifierGroupReferences\\\": []\\n    },\\n    ...\\n  }\\n}  \\n```     \\n\",\"type\":\"string\",\"nullable\":true},\"sizeSequencePricingRules\":{\"type\":\"array\",\"description\":\"An array of `SizeSequencePricingRule` objects that define the prices for the modifier options in a modifier group that uses the Size Price, Sequence Price, or Size/Sequence Pricing pricing strategy. If the modifier group does not use one of these pricing strategies, this array is empty.\\n\",\"items\":{\"$ref\":\"#/components/schemas/SizeSequencePricingRule\"}}}},\"TimeSpecificPrice\":{\"type\":\"object\",\"description\":\"Represents the pricing rules for a menu item that uses a time-specific price.\\n\",\"properties\":{\"timeSpecificPrice\":{\"type\":\"number\",\"format\":\"double\",\"description\":\"The price of the menu item during the periods of time defined by the associated `schedule` array.\\n\"},\"basePrice\":{\"type\":\"number\",\"format\":\"double\",\"description\":\"The base price of the menu item, used for time periods when a time-specific price has not been defined.\\n\"},\"schedule\":{\"type\":\"array\",\"description\":\"An array of `Schedule` objects that indicate the specific days and times that a time-specific price is available.\\n\",\"items\":{\"$ref\":\"#/components/schemas/Schedule\"}}}},\"SizeSequencePricingRule\":{\"type\":\"object\",\"description\":\"A multi-use object that defines the pricing rules for modifier options that belong to a modifier group that uses the Size Price, Sequence Price, or Size/Sequence Price pricing strategy. The contents of this object depend on the pricing strategy that is in effect.\\n\",\"properties\":{\"sizeName\":{\"type\":\"string\",\"description\":\"A string that represents the size of a modifier option in this modifier group, for example, Small, Medium, or Large.\\n\\nWith Size Price and the Size/Sequence Price pricing strategies, the price of a modifier option changes based on the size of the menu item it is applied to, for example, a topping costs $1 on a small pizza and $2 on a large pizza. To determine which size and size-based price to use for a modifier option, the Toast POS system matches the size name of the modifier option to the size name of the menu item. For example, the Small size of a modifier option would match the Small size of a menu item. The `sizeName` value of the `SizeSequencePricingRule` object represents the modifier option size while the `sizeGuid` value represents the matching menu item size.\\n\\nThe Toast POS system does allow a configuration where the size of the modifier option is specified independently from the size of the menu item it applies to. In this scenario, you could order a Large menu item and apply a Small size of the modifier option to it. This configuration is unusual but the menus API supports it. When this configuration is in use, the `sizeName` value is populated with the modifier option size but the `sizeGuid` value that represents the menu item size will be null because there is no matching menu item size.\\n\\nThe `sizeName` value is null if the modifier group uses the Sequence Price pricing strategy because this strategy does not use sizes.\\n\\nSee the <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingStrategiesOverview.html\\\">Pricing strategies</a> section in the Toast Platform Guide for information on the Size Price, Sequence Price, and Size/Sequence Price pricing strategies.\\n\",\"nullable\":true},\"sizeGuid\":{\"type\":\"string\",\"description\":\"The GUID of the modifier option where a menu item size has been defined that matches the `sizeName` value. For example, if a menu item has Small and Large sizes, those sizes are represented in a Size modifier group with a Small modifier option and a Large modifier option. It is the GUID of one of those size modifier options that appears in this value. If the `sizeName` value is Small, then the `sizeGuid` value would contain the Small modifier option’s GUID.\\n\\nWith Size Price and the Size/Sequence Price pricing strategies, the price of a modifier option changes based on the size of the menu item it is applied to, for example, a topping costs $1 on a small pizza and $2 on a large pizza. To determine which size and size-based price to use for a modifier option, the Toast POS system matches the size name of the modifier option to the size name of the menu item. For example, the Small size of a modifier option would match the Small size of a menu item. The `sizeName` value represents the modifier option size while the `sizeGuid` value represents the matching menu item size.\\n\\nThe Toast POS system does allow a configuration where the size of the modifier option is specified independently from the size of the menu item it applies to. In this scenario, you could order a Large menu item and apply a Small size of the modifier option to it. This configuration is unusual but the menus API supports it. When this configuration is in use, the `sizeName` value is populated with the modifier option size but there is no corresponding `sizeGuid` for the menu item size.\\n\\nThe `sizeGuid` value is null if the modifier group uses the Sequence Price pricing strategy because this strategy does not use sizes.\\n\\nSee the <a href=\\\"https://doc.toasttab.com/doc/platformguide/adminPricingStrategiesOverview.html\\\">Pricing strategies</a> section in the Toast Platform Guide for information on the Size Price, Sequence Price, and Size/Sequence Price pricing strategies.\\n\",\"nullable\":true},\"sequencePrices\":{\"type\":\"array\",\"description\":\"An array of `SequencePrices` objects that define the size, sequence, or size/sequence prices for the modifier options in this modifier group.\\n\\nBecause they are multi use objects, the `SequencePrices` objects always contain `sequence` and `price` values for all three pricing strategies. However, the `sequence` is always 1 for the Size Price pricing strategy because only one price is defined per size for that strategy. For example, the `sequencePrices` value for a modifier group priced using the Size Price pricing strategy looks similar to the following:\\n```\\n\\\"sizeSequencePricingRules\\\": [\\n      {\\n        \\\"sizeName\\\": \\\"Small\\\",\\n        \\\"sizeGuid\\\": \\\"e02d1a57-5f9f-4800-a8c3-a5fe1a0b029b\\\",\\n        \\\"sequencePrices\\\": [\\n          {\\n            \\\"sequence\\\": 1,\\n            \\\"price\\\": 2\\n          }\\n        ]\\n      },\\n      {\\n        \\\"sizeName\\\": \\\"Large\\\",\\n        \\\"sizeGuid\\\": \\\"0e206b2d-72ab-46d1-b273-a5425cbef9a5\\\",\\n        \\\"sequencePrices\\\": [\\n          {\\n            \\\"sequence\\\": 1,\\n            \\\"price\\\": 4\\n          }\\n        ]\\n      }\\n    ]\\n```             \\n\\nThe modifier options in this group cost $2.00 for the Small size and $4.00 for the Large size.\\n\\nThe `sequencePrices` value for a modifier group priced using the Sequence Price pricing strategy looks like this:\\n```\\n\\\"sizeSequencePricingRules\\\": [\\n      {\\n        \\\"sizeName\\\": null,\\n        \\\"sizeGuid\\\": null,\\n        \\\"sequencePrices\\\": [\\n          {\\n            \\\"sequence\\\": 1,\\n            \\\"price\\\": 1\\n          },\\n          {\\n            \\\"sequence\\\": 2,\\n            \\\"price\\\": 2\\n          },\\n          {\\n            \\\"sequence\\\": 3,\\n            \\\"price\\\": 2.5\\n          }\\n        ]\\n      }\\n    ]\\n```\\n\\nThe first modifier option in this group costs $1.00, the second modifier option costs $2.00, and any additional modifier options from this group costs $2.50.\\n\\nThe `sequencePrices` value for a modifier group using the Size/Sequence Price pricing strategy looks like this:\\n```\\n\\\"sizeSequencePricingRules\\\": [\\n      {\\n        \\\"sizeName\\\": \\\"Small\\\",\\n        \\\"sizeGuid\\\": \\\"e02d1a57-5f9f-4800-a8c3-a5fe1a0b029b\\\",\\n        \\\"sequencePrices\\\": [\\n          {\\n            \\\"sequence\\\": 1,\\n            \\\"price\\\": 1\\n          },\\n          {\\n            \\\"sequence\\\": 2,\\n            \\\"price\\\": 2\\n          }\\n        ]\\n      },\\n      {\\n        \\\"sizeName\\\": \\\"Large\\\",\\n        \\\"sizeGuid\\\": \\\"0e206b2d-72ab-46d1-b273-a5425cbef9a5\\\",\\n        \\\"sequencePrices\\\": [\\n          {\\n            \\\"sequence\\\": 1,\\n            \\\"price\\\": 3\\n          },\\n          {\\n            \\\"sequence\\\": 2,\\n            \\\"price\\\": 4\\n          }\\n        ]\\n      }\\n    ]\\n```\\n\\nThe first modifier option on a Small menu item costs $1.00 and additional modifier options on a Small cost $2.00, while the first modifier option on a Large menu item costs $3.00 and additional modifier options on a Large cost $4.00.\\n\",\"items\":{\"$ref\":\"#/components/schemas/SequencePrice\"}}}},\"SequencePrice\":{\"type\":\"object\",\"description\":\"Defines the size, sequence, or size/sequence prices for modifier options contained in a modifier group that uses the Size Price, Sequence Price, or Size/Sequence Price pricing strategy.\\n\",\"properties\":{\"sequence\":{\"type\":\"integer\",\"format\":\"int32\",\"description\":\"Specifies the order of the prices.\\n\\nFor modifier groups that use the Size Price pricing strategy, the `sequence` is always 1 because only one price is defined per size for that strategy.\\n\\nFor modifier groups that use the Sequence Price or Size/Sequence Price pricing strategy, this value starts at 1 and increases with each successive price in the sequence. For example, in the JSON snippet below, `\\\"sequence\\\":1` defines the first price in the sequence and `\\\"sequence\\\":2` defines the second price in the sequence.\\n```\\n\\\"sequencePrices\\\": [\\n          {\\n            \\\"sequence\\\": 1,\\n            \\\"price\\\": 3\\n          },\\n          {\\n            \\\"sequence\\\": 2,\\n            \\\"price\\\": 4\\n          }\\n        ]\\n```\\n\"},\"price\":{\"type\":\"number\",\"format\":\"double\",\"description\":\"The price for a modifier option when it is ordered at the specified point in the sequence.\\n\"}}},\"Image\":{\"type\":\"string\",\"description\":\"The URL to an image that has been uploaded for this menu entity. This value is null if no image has been specified.\\n\",\"nullable\":true},\"Visibility\":{\"type\":\"array\",\"description\":\"An array of strings that indicate where this menu entity is visible:\\n\\n* POS: The menu entity is visible in the Toast POS app. \\n\\n* KIOSK: The menu entity is visible on a Toast kiosk. \\n\\n* TOAST_ONLINE_ORDERING: The menu entity is visible in the Toast online\\n  ordering site for this restaurant. \\n\\n* ORDERING_PARTNERS: The restaurants wants this menu entity to be visible\\n  on online ordering sites that integrate with the Toast POS system using the orders API. \\n\\n* GRUBHUB: Deprecated. The menu entity is included during a menu sync to\\n  Grubhub and will be visible on the Grubhub online ordering service after a\\n  menu sync has completed. _Note:_ Conceptually, the _Grubhub_ configuration\\n  option that was associated with the `GRUBHUB` string in this array has\\n  been replaced by the more general _Online orders: Ordering partners_\\n  configuration option and restaurants that used the _Grubhub_ option have\\n  been automatically migrated to the new _Online orders: Ordering partners_\\n  option. This means that any menu entity that had the _Grubhub_ option set\\n  to _Yes_ will now have the _Online orders: Ordering partners_ option\\n  enabled and the `ORDERING_PARTNERS` enum will be present in the\\n  `visibility` array for it. To support backwards compatibility, the\\n  `visibility` array for these entities will also continue to contain the\\n  `GRUBHUB` enum for a short period of time. See <a\\n  href=\\\"https://doc.toasttab.com/doc/devguide/apiDeprecatedApiFunctions.html#apiMenuEntityVisibilityEnhancements\\\">Menu\\n  Visibility Enhancements (Rolled Out)</a> for more information.\\n\\nThe `visibility` array is empty if the menu entity is not configured to be visible for any of the use cases listed above.\\n\",\"items\":{\"type\":\"string\",\"enum\":[\"POS\",\"KIOSK\",\"GRUBHUB\",\"TOAST_ONLINE_ORDERING\",\"ORDERING_PARTNERS\"]}},\"MultiLocationId\":{\"type\":\"string\",\"description\":\"An identifier that is used to identify and consolidate menu entities that are versions of each other.\\n\\n`multiLocationId` replaces `masterId`. `multiLocationId` and `masterId` always have the same value.\\n\\nMenu entities can be versioned. Those versions can be assigned to specific restaurant locations, or groups of locations, in a management group. For example, you could have two versions of a burger, one for a Boston location and another for a New York City location. Versioned menu entities share the majority of, but not all of, their data. For example, the Boston version is called the Minuteman Burger and has pickles, while the New York City version is called the Empire Burger and does not.\\n\\nYou use the `multiLocationId` to identify menu entities that are versions of each other. To continue the example above, the Minuteman Burger in the JSON returned for the Boston location has the same `multilocationId` as the Empire Burger in the JSON returned for the New York City location. These matching `multlocationId` values indicate that the two items are related versions of the same item. In Toast reports, this allows a restaurant to track sales of the burger across both locations.\\n\\nThe Toast POS system ensures that once a `multilocationId` value is assigned to a set of versions within a management group, that `multiLocationId` is not used for any other version sets in the same management group. It does not guarantee, however, that the `multiLocationId` is not used by another management group to identify a set of versions within it.\\n\\nSee <a href=\\\"https://doc.toasttab.com/doc/devguide/portalToastIdentifiers.html\\\">Toast identifiers</a> in the Toast Developer Guide for more information on the `multiLocationId` and its relationship to other Toast identifiers.\\n\\nSee <a href=\\\"https://doc.toasttab.com/doc/platformguide/sharingMenusAndOtherInformationAmongRestaurants.html\\\">Enterprise module overview</a> in the Toast Platform Guide for more information on the enterprise module and versioning.\\n\"},\"MasterId\":{\"type\":\"integer\",\"format\":\"int64\",\"description\":\"This value is deprecated. Instead of `masterId`, use `multiLocationId`.\\n\\nAn identifier that is used to identify and consolidate menu entities that are versions of each other.\\n\"},\"PosName\":{\"type\":\"string\",\"description\":\"The button label name that appears for this menu entity in the Toast POS app. `posName` contains an empty string if a `posName` has not been defined for the menu entity and the `name` value is used for the button label instead.\\n\"},\"PosButtonColorLight\":{\"type\":\"string\",\"description\":\"The color of the menu entity's button on the Toast POS app, when the app is running in light mode.\\n     \\nWhen an employee configures a POS button's color, they select a color pairing that consists of two colors, one for light mode and one for dark mode. `posButtonColorLight` contains the HEX code for the light mode color.\\n\\n`posButtonColorLight` defaults to `#f7f7f7`, the HEX code when the `WHITE` color pairing is chosen.\\n\\nThe following list shows the possible HEX codes for `posButtonColorLight`, with the associated color pairing in parentheses.\\n\\n* #f7f7f7 (WHITE)\\n* #ffe6e9 (TERRACOTTA_1)\\n* #efa49f (TERRACOTTA_2)\\n* #f07166 (TERRACOTTA_3)\\n* #e45a4e (TERRACOTTA_4)\\n* #fbd9b6 (ORANGE_1)\\n* #f7be6e (ORANGE_2)\\n* #f98c1f (ORANGE_3)\\n* #e56f1a (ORANGE_4)    \\n* #fbf5b6 (YELLOW_1)\\n* #fed850 (YELLOW_2)\\n* #e9b10c (YELLOW_3)\\n* #c78605 (YELLOW_4)      \\n* #e8f7d4 (GRASS_1)\\n* #afe26c (GRASS_2)\\n* #71b314 (GRASS_3)\\n* #32a206 (GRASS_4)      \\n* #e3f0fb (SKY_1)\\n* #9fc5f0 (SKY_2)\\n* #77a5e4 (SKY_3)\\n* #558edd (SKY_4)      \\n* #f1e3fd (LAVENDER_1)\\n* #dab2f7 (LAVENDER_2)\\n* #b26ee2 (LAVENDER_3)\\n* #a270db (LAVENDER_4)      \\n* #d0d0d0 (GRAY_1)\\n* #c3c3c3 (GRAY_2)\\n* #b1b1b1 (GRAY_3)\\n* #989898 (GRAY_4)\\n\"},\"PosButtonColorDark\":{\"type\":\"string\",\"description\":\"The color of the menu entity's button on the Toast POS app, when the app is running in dark mode.\\n     \\nWhen an employee configures a POS button's color, they select a color pairing that consists of two colors, one for light mode and one for dark mode. `posButtonColorDark` contains the HEX code for the dark mode color.\\n\\n`posButtonColorDark` defaults to `#1a1c23`, the HEX code when the `WHITE` color pairing is chosen.\\n\\nThe following list shows the possible HEX codes for `posButtonColorDark`, with the associated color pairing in parentheses.\\n\\n* #1a1c23 (WHITE)\\n* #7e635d (TERRACOTTA_1)\\n* #74504D (TERRACOTTA_2)\\n* #722e25 (TERRACOTTA_3)\\n* #561408 (TERRACOTTA_4)\\n* #8f5f3d (ORANGE_1)\\n* #7e4116 (ORANGE_2)\\n* #803500 (ORANGE_3)\\n* #682d03 (ORANGE_4)    \\n* #7e6b44 (YELLOW_1)\\n* #7b5f27 (YELLOW_2)\\n* #7c5000 (YELLOW_3)\\n* #633d09 (YELLOW_4)      \\n* #657552 (GRASS_1)\\n* #556e34 (GRASS_2)\\n* #37570a (GRASS_3)\\n* #113a00 (GRASS_4)      \\n* #637486 (SKY_1)\\n* #4d6074 (SKY_2)\\n* #2a456b (SKY_3)\\n* #213554 (SKY_4)      \\n* #78668a (LAVENDER_1)\\n* #5e4776 (LAVENDER_2)\\n* #402960 (LAVENDER_3)\\n* #25174f (LAVENDER_4)      \\n* #6c6c6c (GRAY_1)\\n* #5f5f5f (GRAY_2)\\n* #474747 (GRAY_3)\\n* #404040 (GRAY_4)\\n\"},\"Length\":{\"type\":\"number\",\"description\":\"The length of the item or modifier. Use the `dimensionUnitOfMeasure` value to determine the unit of measurement.\\n\\nThe `length` value is `null` if no length is specified for the item or modifier.\\n\\nYou can use the `length`, `height`, and `width` values to determine the overall size of the item or modifier. This information is useful, for example, when determining shipping costs or choosing the size of delivery vehicle to use.\\n\",\"format\":\"float\",\"nullable\":true},\"Height\":{\"type\":\"number\",\"description\":\"The height of the item or modifier. Use the `dimensionUnitOfMeasure` value to determine the unit of measurement.\\n\\nThe `height` value is `null` if no height is specified for the item or modifier.\\n\\nYou can use the `length`, `height`, and `width` values to determine the overall size of the item or modifier. This information is useful, for example, when determining shipping costs or choosing the size of delivery vehicle to use.\\n\",\"format\":\"float\",\"nullable\":true},\"Width\":{\"type\":\"number\",\"description\":\"The width of the item or modifier. Use the `dimensionUnitOfMeasure` value to determine the unit of measurement.\\n\\nThe `width` value is `null` if no width is specified for the item or modifier.\\n\\nYou can use the `length`, `height`, and `width` values to determine the overall size of the item or modifier. This information is useful, for example, when determining shipping costs or choosing the size of delivery vehicle to use.\\n\",\"format\":\"float\",\"nullable\":true},\"DimensionUnitOfMeasure\":{\"type\":\"string\",\"enum\":[\"IN\",\"CM\",\"FT\",\"M\",\"MM\",\"YD\"],\"description\":\"The unit of measure assigned to the `length`, `height`, and `width` values.\\n    \\nPossible values include:\\n    \\n* IN: Inches\\n* CM: Centimeters\\n* FT: Feet\\n* M: Meters\\n* MM: Millimeters\\n* YD: Yards\\n    \\n`dimensionUnitOfMeasure` is `null` if no unit of measurement has been specified.\\n\",\"nullable\":true},\"Weight\":{\"type\":\"number\",\"description\":\"The weight of the item or modifier. Use the `weightUnitOfMeasure` value to determine the unit of measurement.\\n\\nTh `weight` value is `null` if no weight is specified for the item or modifier.\\n    \\nYou can use the `weight` value when determining shipping costs or choosing a delivery vehicle to use.\\n\",\"format\":\"float\",\"nullable\":true},\"WeightUnitOfMeasure\":{\"type\":\"string\",\"enum\":[\"NONE\",\"LB\",\"OZ\",\"KG\",\"G\"],\"description\":\"The unit of measure assigned to the `weight` value.\\n    \\nPossible values include:\\n    \\n* NONE: No unit of measurement is assigned. `weightUnitOfMeasure` can also be `null`. `NONE` and `null` are equivalent. \\n* LB: Pounds\\n* OZ: Ounces\\n* KG: Kilograms\\n* G: Grams\\n\",\"nullable\":true},\"Images\":{\"type\":\"array\",\"description\":\"An array of strings that contain URLs for images that have been uploaded for this item or modifier. The array is empty if no images have been uploaded.\\n    \\n_Note:_ The `images` array contains multiple URLs for multiple images for the same item or modifier. The older `image` value contains a single URL for a single image.\\n\",\"items\":{\"type\":\"string\"}},\"GuestCount\":{\"type\":\"number\",\"description\":\"The number of guests the item or modifier is expected to serve. This value is `null` if no guest count is specified.\\n\",\"format\":\"float\",\"nullable\":true},\"CatalogProductInfo\":{\"type\":\"object\",\"description\":\"Contains retail catalog product information for a menu item.\\n\",\"properties\":{\"product\":{\"$ref\":\"#/components/schemas/CatalogProduct\"},\"productVariant\":{\"$ref\":\"#/components/schemas/CatalogProductVariant\"}},\"nullable\":true},\"CatalogProduct\":{\"type\":\"object\",\"description\":\"Retail catalog product information for a menu item.\\n\",\"properties\":{\"id\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"The unique identifier of the retail product in the retail product catalog. This is different from the menu item identifier.\\n\"},\"name\":{\"type\":\"string\",\"description\":\"The name of the product, for example, \\\"T-Shirt\\\".\\n\"},\"description\":{\"type\":\"string\",\"description\":\"The description of the product.\\n\",\"nullable\":true},\"type\":{\"type\":\"string\",\"enum\":[\"SINGLE\",\"OPTION\",\"UNSPECIFIED\"],\"description\":\"The type of product. Possible values include:\\n\\n* `SINGLE`: The product has exactly one variant and does not have any options.\\n* `OPTION`: The product is an option-type product and will contain at least one variant and at least one option.\\n* `UNSPECIFIED`: Product type is not specified or unknown.\\n\"},\"images\":{\"type\":\"array\",\"description\":\"List of image URLs for the product. A product can have different images than its variants.\\n\",\"items\":{\"type\":\"string\"}},\"availableOptions\":{\"type\":\"array\",\"description\":\"List of available options for the product.\\n\",\"items\":{\"$ref\":\"#/components/schemas/CatalogProductOption\"}}}},\"CatalogProductVariant\":{\"type\":\"object\",\"description\":\"The specific version of the retail product that this menu item represents, defined by a unique combination of option values (for example, a T-Shirt with options `Red` and size `Small`).\\n\",\"properties\":{\"id\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"The unique identifier for the product variant.\\n\"},\"name\":{\"type\":\"string\",\"description\":\"The name of the variant, for example, \\\"T-Shirt - Small\\\".\\n\"},\"description\":{\"type\":\"string\",\"description\":\"The description of the variant.\\n\",\"nullable\":true},\"selectedOptions\":{\"type\":\"array\",\"description\":\"List of selected options for the variant.\\n\",\"items\":{\"$ref\":\"#/components/schemas/CatalogProductVariantOption\"}}}},\"CatalogProductOption\":{\"type\":\"object\",\"description\":\"An option for a retail product.\\n\",\"properties\":{\"id\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"The unique identifier for the product option.\\n\"},\"name\":{\"type\":\"string\",\"description\":\"The name of the product option, for example, \\\"size\\\".\\n\"},\"sortOrder\":{\"type\":\"integer\",\"description\":\"The sort order of the product option.\\n\"},\"values\":{\"type\":\"array\",\"description\":\"List of values for the product option.\\n\",\"items\":{\"$ref\":\"#/components/schemas/CatalogProductOptionValue\"}}}},\"CatalogProductVariantOption\":{\"type\":\"object\",\"description\":\"A selected option for a retail product variant.\\n\",\"properties\":{\"id\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"The unique identifier for the product variant option.\\n\"},\"name\":{\"type\":\"string\",\"description\":\"The name of the product variant option, for example, \\\"size\\\".\\n\"},\"sortOrder\":{\"type\":\"integer\",\"description\":\"The sort order of the product variant option.\\n\"},\"value\":{\"$ref\":\"#/components/schemas/CatalogProductOptionValue\"}}},\"CatalogProductOptionValue\":{\"type\":\"object\",\"description\":\"A value within a catalog product option.\\n\",\"properties\":{\"id\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"The unique identifier for the product option value.\\n\"},\"name\":{\"type\":\"string\",\"description\":\"The name of the product option value, for example, \\\"small\\\".\\n\"},\"sortOrder\":{\"type\":\"integer\",\"description\":\"The sort order of the product option value.\\n\"}}}}}}},\"options\":{\"hideTryItPanel\":true,\"pagination\":\"item\",\"generateCodeSamples\":{\"languages\":[{\"lang\":\"curl\"},{\"lang\":\"Java\"},{\"lang\":\"Python\"},{\"lang\":\"Node.js\"},{\"lang\":\"C#\"}]},\"showConsole\":false,\"hideHostname\":true,\"hideDownloadButton\":false,\"sortPropsAlphabetically\":true,\"schemaDefinitionsTagName\":\"Data definitions\",\"showAccessMode\":true,\"downloadDefinitionUrl\":\"https://doc.toasttab.com/toast-api-specifications/toast-menus-api.yaml\",\"disableSearch\":true,\"ctrlFHijack\":false,\"disableSidebar\":true,\"theme\":{\"overrides\":{\"DownloadButton\":{\"custom\":\"\"},\"NextSectionButton\":{\"custom\":\"\"}},\"codeBlock\":{\"tokens\":{}},\"schema\":{\"constraints\":{},\"examples\":{}},\"rightPanel\":{\"textColor\":\"#eeeeee\"},\"typography\":{\"heading1\":{},\"heading2\":{},\"heading3\":{},\"rightPanelHeading\":{}}}}}","redocHasSecurityDefinitions":false,"redocInfoPageLink":"/menus/overview/","redocItemId":"tag/Data-definitions/schema/Portion","redocHasInfoPage":false,"settings":{"generateCodeSamples":{"languages":[{"lang":"curl"},{"lang":"Java"},{"lang":"Python"},{"lang":"Node.js"},{"lang":"C#"}]},"showConsole":false,"hideHostname":true,"hideDownloadButton":false,"sortPropsAlphabetically":true,"schemaDefinitionsTagName":"Data definitions","hideTryItPanel":true,"showAccessMode":true,"downloadDefinitionUrl":"https://doc.toasttab.com/toast-api-specifications/toast-menus-api.yaml"},"requestLogin":false,"lastModified":"2024-09-05T12:56:37.000Z"},"seo":{"title":"Portion"}}},"pageContext":{"id":"c7399dc7-f5b6-50f4-bcf4-8d5264626edetag/Data-definitions/schema/Portion/__redocly content/menus/tag/Data-definitions/schema/Portion/","seo":{"title":"Portion","description":"<SchemaDefinition showWriteOnly={true} schemaRef=\"#/components/schemas/Portion\" />","image":"","keywords":null,"jsonLd":null,"lang":null},"pageId":"menus.reference.page.yaml#tag/Data-definitions/schema/Portion/","pageBaseUrl":"/menus","type":"redoc-operation","toc":{"enable":true,"maxDepth":4,"headings":null},"data":{},"catalogInfo":null,"link":"/menus/tag/Data-definitions/schema/Portion/","sidebarName":"api-reference","isLanding":false,"showPrevButton":null,"showNextButton":null,"apiVersions":[{"definitionId":"menus","id":"menus","title":"menus","isDefault":true,"apiId":null}],"apiVersionId":null,"isDefaultApiVersion":true}},"staticQueryHashes":["1123603147","1180902673","1302185487","1344209882","1398840060","1520077861","1975142765","2667623876","2950305614","3743992808","561138138"]}