{
  "openapi": "3.2.0",
  "info": {
    "title": "Buggy API",
    "description": "A deliberately buggy shopping cart API for API testing practice.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://apichallenges.com",
      "description": "cloud hosted version"
    },
    {
      "url": "http://localhost:4567",
      "description": "local execution"
    }
  ],
  "paths": {
    "/shop/products": {
      "get": {
        "summary": "return all the instances of product",
        "description": "return all the instances of product",
        "parameters": [
          {
            "name": "_sortBy",
            "in": "query",
            "description": "Sort collection results by a field. Use +field or field for ascending order, and -field for descending order. Multiple fields can be combined with commas, e.g. +field,-other.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "+id"
          }
        ],
        "responses": {
          "200": {
            "description": "All the products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/products"
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "description": "products",
                  "items": {
                    "type": "object",
                    "description": "A safe fixed catalogue item with internally maintained stock.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Unique product identifier. Field is an ID and should not be amended or set.",
                        "example": 51
                      },
                      "productCode": {
                        "type": "string",
                        "description": "Safe catalogue code for the product. Value must be an Enum (BOOK_REST, CD_HEADERS, MUG_TESTER, USB_CABLE, PEN_RED, POSTER_API, BLURAY_HTTP, DVD_BUGS, PUZZLE_CACHE, STICKER_HTTP, PUZZLE_PROXY, NOTEBOOK_LOGS, STICKER_PACK, POSTER_BUG, BOOK_API, BOOK_TESTS, MUG_CLIENT, NOTEBOOK_GRID, GAME_JSON, USB_HUB, CD_STATUS, GAME_TOKENS, PEN_BLUE, DVD_STATUS) value. Value is mandatory.",
                        "example": "BOOK_REST"
                      },
                      "category": {
                        "type": "string",
                        "description": "Safe category for the product. Value must be an Enum (cd, game, electronics, art, dvd, book, homeware, stationery, blu-ray) value. Value is mandatory.",
                        "example": "cd"
                      },
                      "unitPrice": {
                        "type": "number",
                        "description": "Current unit price used for new cart lines. Value must be a Float of min 0.010000 and max 500.000000. Value is mandatory.",
                        "example": 1.00
                      },
                      "stock": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Current available stock count maintained by the API. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                        "example": 0
                      }
                    },
                    "required": [
                      "category",
                      "id",
                      "productCode",
                      "stock",
                      "unitPrice"
                    ],
                    "title": "product",
                    "xml": {
                      "name": "product",
                      "wrapped": true
                    }
                  },
                  "title": "products",
                  "xml": {
                    "name": "products",
                    "wrapped": true
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "type": "array",
                  "description": "products",
                  "items": {
                    "type": "object",
                    "description": "A safe fixed catalogue item with internally maintained stock.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Unique product identifier. Field is an ID and should not be amended or set.",
                        "example": 51
                      },
                      "productCode": {
                        "type": "string",
                        "description": "Safe catalogue code for the product. Value must be an Enum (BOOK_REST, CD_HEADERS, MUG_TESTER, USB_CABLE, PEN_RED, POSTER_API, BLURAY_HTTP, DVD_BUGS, PUZZLE_CACHE, STICKER_HTTP, PUZZLE_PROXY, NOTEBOOK_LOGS, STICKER_PACK, POSTER_BUG, BOOK_API, BOOK_TESTS, MUG_CLIENT, NOTEBOOK_GRID, GAME_JSON, USB_HUB, CD_STATUS, GAME_TOKENS, PEN_BLUE, DVD_STATUS) value. Value is mandatory.",
                        "example": "BOOK_REST"
                      },
                      "category": {
                        "type": "string",
                        "description": "Safe category for the product. Value must be an Enum (cd, game, electronics, art, dvd, book, homeware, stationery, blu-ray) value. Value is mandatory.",
                        "example": "cd"
                      },
                      "unitPrice": {
                        "type": "number",
                        "description": "Current unit price used for new cart lines. Value must be a Float of min 0.010000 and max 500.000000. Value is mandatory.",
                        "example": 1.00
                      },
                      "stock": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Current available stock count maintained by the API. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                        "example": 0
                      }
                    },
                    "required": [
                      "category",
                      "id",
                      "productCode",
                      "stock",
                      "unitPrice"
                    ],
                    "title": "product",
                    "xml": {
                      "name": "product",
                      "wrapped": true
                    }
                  },
                  "title": "products",
                  "xml": {
                    "name": "products",
                    "wrapped": true
                  }
                }
              }
            }
          }
        }
      },
      "options": {
        "summary": "show all Options for endpoint of /shop/products",
        "description": "show all Options for endpoint of /shop/products",
        "responses": {
          "200": {
            "description": "the endpoint verb options"
          }
        }
      },
      "head": {
        "summary": "headers for all the instances of product",
        "description": "headers for all the instances of product",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "query": {
        "summary": "query all the instances of product using application/x-www-form-urlencoded, application/jsonpath, application/vnd.thingifier.query+json query content",
        "description": "query all the instances of product using application/x-www-form-urlencoded, application/jsonpath, application/vnd.thingifier.query+json query content",
        "parameters": [
          {
            "name": "_sortBy",
            "in": "query",
            "description": "Sort collection results by a field. Use +field or field for ascending order, and -field for descending order. Multiple fields can be combined with commas, e.g. +field,-other.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "+id"
          }
        ],
        "responses": {
          "200": {
            "description": "All the matching products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/products"
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "description": "products",
                  "items": {
                    "type": "object",
                    "description": "A safe fixed catalogue item with internally maintained stock.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Unique product identifier. Field is an ID and should not be amended or set.",
                        "example": 84
                      },
                      "productCode": {
                        "type": "string",
                        "description": "Safe catalogue code for the product. Value must be an Enum (BOOK_REST, CD_HEADERS, MUG_TESTER, USB_CABLE, PEN_RED, POSTER_API, BLURAY_HTTP, DVD_BUGS, PUZZLE_CACHE, STICKER_HTTP, PUZZLE_PROXY, NOTEBOOK_LOGS, STICKER_PACK, POSTER_BUG, BOOK_API, BOOK_TESTS, MUG_CLIENT, NOTEBOOK_GRID, GAME_JSON, USB_HUB, CD_STATUS, GAME_TOKENS, PEN_BLUE, DVD_STATUS) value. Value is mandatory.",
                        "example": "BOOK_REST"
                      },
                      "category": {
                        "type": "string",
                        "description": "Safe category for the product. Value must be an Enum (cd, game, electronics, art, dvd, book, homeware, stationery, blu-ray) value. Value is mandatory.",
                        "example": "cd"
                      },
                      "unitPrice": {
                        "type": "number",
                        "description": "Current unit price used for new cart lines. Value must be a Float of min 0.010000 and max 500.000000. Value is mandatory.",
                        "example": 1.00
                      },
                      "stock": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Current available stock count maintained by the API. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                        "example": 0
                      }
                    },
                    "required": [
                      "category",
                      "id",
                      "productCode",
                      "stock",
                      "unitPrice"
                    ],
                    "title": "product",
                    "xml": {
                      "name": "product",
                      "wrapped": true
                    }
                  },
                  "title": "products",
                  "xml": {
                    "name": "products",
                    "wrapped": true
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "type": "array",
                  "description": "products",
                  "items": {
                    "type": "object",
                    "description": "A safe fixed catalogue item with internally maintained stock.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Unique product identifier. Field is an ID and should not be amended or set.",
                        "example": 84
                      },
                      "productCode": {
                        "type": "string",
                        "description": "Safe catalogue code for the product. Value must be an Enum (BOOK_REST, CD_HEADERS, MUG_TESTER, USB_CABLE, PEN_RED, POSTER_API, BLURAY_HTTP, DVD_BUGS, PUZZLE_CACHE, STICKER_HTTP, PUZZLE_PROXY, NOTEBOOK_LOGS, STICKER_PACK, POSTER_BUG, BOOK_API, BOOK_TESTS, MUG_CLIENT, NOTEBOOK_GRID, GAME_JSON, USB_HUB, CD_STATUS, GAME_TOKENS, PEN_BLUE, DVD_STATUS) value. Value is mandatory.",
                        "example": "BOOK_REST"
                      },
                      "category": {
                        "type": "string",
                        "description": "Safe category for the product. Value must be an Enum (cd, game, electronics, art, dvd, book, homeware, stationery, blu-ray) value. Value is mandatory.",
                        "example": "cd"
                      },
                      "unitPrice": {
                        "type": "number",
                        "description": "Current unit price used for new cart lines. Value must be a Float of min 0.010000 and max 500.000000. Value is mandatory.",
                        "example": 1.00
                      },
                      "stock": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Current available stock count maintained by the API. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                        "example": 0
                      }
                    },
                    "required": [
                      "category",
                      "id",
                      "productCode",
                      "stock",
                      "unitPrice"
                    ],
                    "title": "product",
                    "xml": {
                      "name": "product",
                      "wrapped": true
                    }
                  },
                  "title": "products",
                  "xml": {
                    "name": "products",
                    "wrapped": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Error processing request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "413": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "415": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "422": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "application/jsonpath": {
              "schema": {
                "type": "string"
              }
            },
            "application/vnd.thingifier.query+json": {
              "schema": {
                "type": "object",
                "properties": {
                  "filter": {
                    "type": "object"
                  },
                  "sort": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "offset": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              }
            }
          }
        }
      }
    },
    "/shop/products/{id}": {
      "get": {
        "summary": "return a specific instances of product using a id",
        "description": "return a specific instances of product using a id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique product identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 95
          }
        ],
        "responses": {
          "200": {
            "description": "A specific product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/product"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/product"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/product"
                }
              }
            }
          },
          "404": {
            "description": "Could not find a specific product",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          }
        }
      },
      "options": {
        "summary": "show all Options for endpoint of /shop/products/:id",
        "description": "show all Options for endpoint of /shop/products/:id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique product identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 54
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "head": {
        "summary": "headers for a specific instances of product using a id",
        "description": "headers for a specific instances of product using a id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique product identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 94
          }
        ],
        "responses": {
          "200": {
            "description": "Headers for a specific product"
          },
          "404": {
            "description": "Could not find a specific product"
          }
        }
      }
    },
    "/shop/carts": {
      "get": {
        "summary": "return all the instances of cart",
        "description": "return all the instances of cart",
        "parameters": [
          {
            "name": "_sortBy",
            "in": "query",
            "description": "Sort collection results by a field. Use +field or field for ascending order, and -field for descending order. Multiple fields can be combined with commas, e.g. +field,-other.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "+id"
          }
        ],
        "responses": {
          "200": {
            "description": "All the carts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCart"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCart"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCart"
                }
              }
            }
          }
        }
      },
      "options": {
        "summary": "show all Options for endpoint of /shop/carts",
        "description": "show all Options for endpoint of /shop/carts",
        "responses": {
          "200": {
            "description": "the endpoint verb options"
          }
        }
      },
      "head": {
        "summary": "headers for all the instances of cart",
        "description": "headers for all the instances of cart",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "query": {
        "summary": "query all the instances of cart using application/x-www-form-urlencoded, application/jsonpath, application/vnd.thingifier.query+json query content",
        "description": "query all the instances of cart using application/x-www-form-urlencoded, application/jsonpath, application/vnd.thingifier.query+json query content",
        "parameters": [
          {
            "name": "_sortBy",
            "in": "query",
            "description": "Sort collection results by a field. Use +field or field for ascending order, and -field for descending order. Multiple fields can be combined with commas, e.g. +field,-other.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "+id"
          }
        ],
        "responses": {
          "200": {
            "description": "All the matching carts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCart"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCart"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCart"
                }
              }
            }
          },
          "400": {
            "description": "Error processing request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "413": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "415": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "422": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "application/jsonpath": {
              "schema": {
                "type": "string"
              }
            },
            "application/vnd.thingifier.query+json": {
              "schema": {
                "type": "object",
                "properties": {
                  "filter": {
                    "type": "object"
                  },
                  "sort": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "offset": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              }
            }
          }
        }
      }
    },
    "/shop/carts/{id}": {
      "get": {
        "summary": "return a specific instances of cart using a id",
        "description": "return a specific instances of cart using a id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique cart identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 87
          }
        ],
        "responses": {
          "200": {
            "description": "A specific cart",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCart"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCart"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCart"
                }
              }
            }
          },
          "404": {
            "description": "Could not find a specific cart",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "delete or abandon a cart using the cart bearer token",
        "description": "delete or abandon a cart using the cart bearer token",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique cart identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 17
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted a specific cart"
          },
          "404": {
            "description": "Could not find a specific cart",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          }
        },
        "security": [
          {
            "cartToken": []
          }
        ]
      },
      "options": {
        "summary": "show all Options for endpoint of /shop/carts/:id",
        "description": "show all Options for endpoint of /shop/carts/:id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique cart identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 51
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "head": {
        "summary": "headers for a specific instances of cart using a id",
        "description": "headers for a specific instances of cart using a id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique cart identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 76
          }
        ],
        "responses": {
          "200": {
            "description": "Headers for a specific cart"
          },
          "404": {
            "description": "Could not find a specific cart"
          }
        }
      }
    },
    "/shop/carts/{id}/items": {
      "get": {
        "summary": "return all the cartitem items related to cart, with given id, by the relationship named items",
        "description": "return all the cartitem items related to cart, with given id, by the relationship named items",
        "parameters": [
          {
            "name": "_sortBy",
            "in": "query",
            "description": "Sort collection results by a field. Use +field or field for ascending order, and -field for descending order. Multiple fields can be combined with commas, e.g. +field,-other.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "+id"
          },
          {
            "name": "id",
            "in": "path",
            "description": "Unique cart identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 88
          }
        ],
        "responses": {
          "200": {
            "description": "all the related cartitem items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cartitems"
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "description": "cartitems",
                  "items": {
                    "type": "object",
                    "description": "A product line in a shopping cart.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Unique cart item identifier. Field is an ID and should not be amended or set.",
                        "example": 71
                      },
                      "productId": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Product identifier requested for this cart line. Value must be an Integer of min 1 and max 24. Value is mandatory.",
                        "example": 1
                      },
                      "quantity": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Requested quantity for this cart line. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                        "example": 1
                      },
                      "unitPriceAtAdd": {
                        "type": "number",
                        "description": "Product unit price captured when the line was added. Value must be a Float of min 0.000000 and max 500.000000.",
                        "example": 0.00
                      },
                      "stockAtAdd": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Product stock captured when the line was added. Value must be an Integer of min -1000 and max 9999.",
                        "example": 0
                      }
                    },
                    "required": [
                      "id",
                      "productId",
                      "quantity",
                      "stockAtAdd",
                      "unitPriceAtAdd"
                    ],
                    "title": "cartitem",
                    "xml": {
                      "name": "cartitem",
                      "wrapped": true
                    }
                  },
                  "title": "cartitems",
                  "xml": {
                    "name": "cartitems",
                    "wrapped": true
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "type": "array",
                  "description": "cartitems",
                  "items": {
                    "type": "object",
                    "description": "A product line in a shopping cart.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Unique cart item identifier. Field is an ID and should not be amended or set.",
                        "example": 71
                      },
                      "productId": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Product identifier requested for this cart line. Value must be an Integer of min 1 and max 24. Value is mandatory.",
                        "example": 1
                      },
                      "quantity": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Requested quantity for this cart line. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                        "example": 1
                      },
                      "unitPriceAtAdd": {
                        "type": "number",
                        "description": "Product unit price captured when the line was added. Value must be a Float of min 0.000000 and max 500.000000.",
                        "example": 0.00
                      },
                      "stockAtAdd": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Product stock captured when the line was added. Value must be an Integer of min -1000 and max 9999.",
                        "example": 0
                      }
                    },
                    "required": [
                      "id",
                      "productId",
                      "quantity",
                      "stockAtAdd",
                      "unitPriceAtAdd"
                    ],
                    "title": "cartitem",
                    "xml": {
                      "name": "cartitem",
                      "wrapped": true
                    }
                  },
                  "title": "cartitems",
                  "xml": {
                    "name": "cartitems",
                    "wrapped": true
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "add a product line to a cart using the cart bearer token",
        "description": "add a product line to a cart using the cart bearer token",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique cart identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 93
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/create_AddedCartItem"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/create_AddedCartItem"
              }
            },
            "text/xml": {
              "schema": {
                "$ref": "#/components/schemas/create_AddedCartItem"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "created the relationship",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddedCartItem"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AddedCartItem"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AddedCartItem"
                }
              }
            }
          },
          "400": {
            "description": "error when creating the relationship",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "404": {
            "description": "relationship source or target not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "422": {
            "description": "validation error when creating the relationship",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "409": {
            "description": "conflict when creating the relationship",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "415": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          }
        },
        "security": [
          {
            "cartToken": []
          }
        ]
      },
      "options": {
        "summary": "show all Options for endpoint of /shop/carts/:id/items",
        "description": "show all Options for endpoint of /shop/carts/:id/items",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "head": {
        "summary": "headers for the cartitem items related to cart, with given id, by the relationship named items",
        "description": "headers for the cartitem items related to cart, with given id, by the relationship named items",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique cart identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 70
          }
        ],
        "responses": {
          "200": {
            "description": "headers for all the related cartitem items"
          }
        }
      },
      "query": {
        "summary": "query all the cartitem items related to cart, with given id, by the relationship named items using application/x-www-form-urlencoded, application/jsonpath, application/vnd.thingifier.query+json query content",
        "description": "query all the cartitem items related to cart, with given id, by the relationship named items using application/x-www-form-urlencoded, application/jsonpath, application/vnd.thingifier.query+json query content",
        "parameters": [
          {
            "name": "_sortBy",
            "in": "query",
            "description": "Sort collection results by a field. Use +field or field for ascending order, and -field for descending order. Multiple fields can be combined with commas, e.g. +field,-other.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "+id"
          },
          {
            "name": "id",
            "in": "path",
            "description": "Unique cart identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 98
          }
        ],
        "responses": {
          "200": {
            "description": "all the matching related cartitem items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cartitems"
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "description": "cartitems",
                  "items": {
                    "type": "object",
                    "description": "A product line in a shopping cart.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Unique cart item identifier. Field is an ID and should not be amended or set.",
                        "example": 80
                      },
                      "productId": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Product identifier requested for this cart line. Value must be an Integer of min 1 and max 24. Value is mandatory.",
                        "example": 1
                      },
                      "quantity": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Requested quantity for this cart line. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                        "example": 1
                      },
                      "unitPriceAtAdd": {
                        "type": "number",
                        "description": "Product unit price captured when the line was added. Value must be a Float of min 0.000000 and max 500.000000.",
                        "example": 0.00
                      },
                      "stockAtAdd": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Product stock captured when the line was added. Value must be an Integer of min -1000 and max 9999.",
                        "example": 0
                      }
                    },
                    "required": [
                      "id",
                      "productId",
                      "quantity",
                      "stockAtAdd",
                      "unitPriceAtAdd"
                    ],
                    "title": "cartitem",
                    "xml": {
                      "name": "cartitem",
                      "wrapped": true
                    }
                  },
                  "title": "cartitems",
                  "xml": {
                    "name": "cartitems",
                    "wrapped": true
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "type": "array",
                  "description": "cartitems",
                  "items": {
                    "type": "object",
                    "description": "A product line in a shopping cart.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Unique cart item identifier. Field is an ID and should not be amended or set.",
                        "example": 80
                      },
                      "productId": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Product identifier requested for this cart line. Value must be an Integer of min 1 and max 24. Value is mandatory.",
                        "example": 1
                      },
                      "quantity": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Requested quantity for this cart line. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                        "example": 1
                      },
                      "unitPriceAtAdd": {
                        "type": "number",
                        "description": "Product unit price captured when the line was added. Value must be a Float of min 0.000000 and max 500.000000.",
                        "example": 0.00
                      },
                      "stockAtAdd": {
                        "type": "integer",
                        "format": "int32",
                        "description": "Product stock captured when the line was added. Value must be an Integer of min -1000 and max 9999.",
                        "example": 0
                      }
                    },
                    "required": [
                      "id",
                      "productId",
                      "quantity",
                      "stockAtAdd",
                      "unitPriceAtAdd"
                    ],
                    "title": "cartitem",
                    "xml": {
                      "name": "cartitem",
                      "wrapped": true
                    }
                  },
                  "title": "cartitems",
                  "xml": {
                    "name": "cartitems",
                    "wrapped": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Error processing request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "413": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "415": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "422": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "application/jsonpath": {
              "schema": {
                "type": "string"
              }
            },
            "application/vnd.thingifier.query+json": {
              "schema": {
                "type": "object",
                "properties": {
                  "filter": {
                    "type": "object"
                  },
                  "sort": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "offset": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              }
            }
          }
        }
      }
    },
    "/shop/carts/{id}/items/{relatedId}": {
      "delete": {
        "summary": "delete a product line from a cart using the cart bearer token",
        "description": "delete a product line from a cart using the cart bearer token",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique cart identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 84
          },
          {
            "name": "relatedId",
            "in": "path",
            "description": "Unique cart item identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 1
          }
        ],
        "responses": {
          "204": {
            "description": "deleted the relationship"
          },
          "400": {
            "description": "error when deleting the relationship",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "404": {
            "description": "relationship not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "422": {
            "description": "validation error when deleting the relationship",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "409": {
            "description": "conflict when deleting the relationship",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          }
        },
        "security": [
          {
            "cartToken": []
          }
        ]
      },
      "options": {
        "summary": "show all Options for endpoint of /shop/carts/:id/items/:relatedId",
        "description": "show all Options for endpoint of /shop/carts/:id/items/:relatedId",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/shop/register": {
      "post": {
        "summary": "create a new open cart and return its bearer token",
        "description": "create a new open cart and return its bearer token",
        "responses": {
          "201": {
            "description": "OK, Created"
          }
        }
      }
    },
    "/shop/checkout/{cartId}": {
      "post": {
        "summary": "checkout a cart using its bearer token in the Authorization header",
        "description": "checkout a cart using its bearer token in the Authorization header",
        "parameters": [
          {
            "name": "cartId",
            "in": "path",
            "description": "Cart identifier returned by POST /shop/register.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "403": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          },
          "409": {
            "description": "Standard Status Code Meaning",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              },
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              },
              "application/jsonl": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json-seq": {
                "schema": {
                  "type": "string"
                }
              },
              "text/tab-separated-values": {
                "schema": {
                  "type": "string"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ThingifierError"
                }
              }
            }
          }
        },
        "security": [
          {
            "cartToken": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "product": {
        "type": "object",
        "description": "A safe fixed catalogue item with internally maintained stock.",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "Unique product identifier. Field is an ID and should not be amended or set.",
            "example": 18
          },
          "productCode": {
            "type": "string",
            "description": "Safe catalogue code for the product. Value must be an Enum (BOOK_REST, CD_HEADERS, MUG_TESTER, USB_CABLE, PEN_RED, POSTER_API, BLURAY_HTTP, DVD_BUGS, PUZZLE_CACHE, STICKER_HTTP, PUZZLE_PROXY, NOTEBOOK_LOGS, STICKER_PACK, POSTER_BUG, BOOK_API, BOOK_TESTS, MUG_CLIENT, NOTEBOOK_GRID, GAME_JSON, USB_HUB, CD_STATUS, GAME_TOKENS, PEN_BLUE, DVD_STATUS) value. Value is mandatory.",
            "example": "BOOK_REST"
          },
          "category": {
            "type": "string",
            "description": "Safe category for the product. Value must be an Enum (cd, game, electronics, art, dvd, book, homeware, stationery, blu-ray) value. Value is mandatory.",
            "example": "cd"
          },
          "unitPrice": {
            "type": "number",
            "description": "Current unit price used for new cart lines. Value must be a Float of min 0.010000 and max 500.000000. Value is mandatory.",
            "example": 1.00,
            "maximum": 500.0,
            "minimum": 0.009999999776482582
          },
          "stock": {
            "type": "integer",
            "format": "int32",
            "description": "Current available stock count maintained by the API. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
            "example": 0,
            "maximum": 9999,
            "minimum": -1000
          }
        },
        "title": "product",
        "xml": {
          "name": "product",
          "wrapped": true
        }
      },
      "create_product": {
        "type": "object",
        "description": "A safe fixed catalogue item with internally maintained stock.",
        "properties": {
          "productCode": {
            "type": "string",
            "description": "Safe catalogue code for the product. Value must be an Enum (BOOK_REST, CD_HEADERS, MUG_TESTER, USB_CABLE, PEN_RED, POSTER_API, BLURAY_HTTP, DVD_BUGS, PUZZLE_CACHE, STICKER_HTTP, PUZZLE_PROXY, NOTEBOOK_LOGS, STICKER_PACK, POSTER_BUG, BOOK_API, BOOK_TESTS, MUG_CLIENT, NOTEBOOK_GRID, GAME_JSON, USB_HUB, CD_STATUS, GAME_TOKENS, PEN_BLUE, DVD_STATUS) value. Value is mandatory.",
            "example": "BOOK_REST"
          },
          "category": {
            "type": "string",
            "description": "Safe category for the product. Value must be an Enum (cd, game, electronics, art, dvd, book, homeware, stationery, blu-ray) value. Value is mandatory.",
            "example": "cd"
          },
          "unitPrice": {
            "type": "number",
            "description": "Current unit price used for new cart lines. Value must be a Float of min 0.010000 and max 500.000000. Value is mandatory.",
            "example": 1.00,
            "maximum": 500.0,
            "minimum": 0.009999999776482582
          },
          "stock": {
            "type": "integer",
            "format": "int32",
            "description": "Current available stock count maintained by the API. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
            "example": 0,
            "maximum": 9999,
            "minimum": -1000
          }
        },
        "required": [
          "category",
          "productCode",
          "stock",
          "unitPrice"
        ],
        "title": "create product",
        "xml": {
          "name": "product",
          "wrapped": true
        }
      },
      "products": {
        "type": "object",
        "description": "products",
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "A safe fixed catalogue item with internally maintained stock.",
              "properties": {
                "id": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Unique product identifier. Field is an ID and should not be amended or set.",
                  "example": 19
                },
                "productCode": {
                  "type": "string",
                  "description": "Safe catalogue code for the product. Value must be an Enum (BOOK_REST, CD_HEADERS, MUG_TESTER, USB_CABLE, PEN_RED, POSTER_API, BLURAY_HTTP, DVD_BUGS, PUZZLE_CACHE, STICKER_HTTP, PUZZLE_PROXY, NOTEBOOK_LOGS, STICKER_PACK, POSTER_BUG, BOOK_API, BOOK_TESTS, MUG_CLIENT, NOTEBOOK_GRID, GAME_JSON, USB_HUB, CD_STATUS, GAME_TOKENS, PEN_BLUE, DVD_STATUS) value. Value is mandatory.",
                  "example": "BOOK_REST"
                },
                "category": {
                  "type": "string",
                  "description": "Safe category for the product. Value must be an Enum (cd, game, electronics, art, dvd, book, homeware, stationery, blu-ray) value. Value is mandatory.",
                  "example": "cd"
                },
                "unitPrice": {
                  "type": "number",
                  "description": "Current unit price used for new cart lines. Value must be a Float of min 0.010000 and max 500.000000. Value is mandatory.",
                  "example": 1.00
                },
                "stock": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Current available stock count maintained by the API. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                  "example": 0
                }
              },
              "required": [
                "category",
                "id",
                "productCode",
                "stock",
                "unitPrice"
              ],
              "title": "product",
              "xml": {
                "name": "product",
                "wrapped": true
              }
            }
          }
        },
        "required": [
          "products"
        ],
        "title": "products"
      },
      "cart": {
        "type": "object",
        "description": "A user's shopping cart, created through registration.",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "Unique cart identifier. Field is an ID and should not be amended or set.",
            "example": 1
          },
          "token": {
            "type": "string",
            "format": "uuid",
            "description": "Protected bearer token for cart mutation. Field is an ID and should not be amended or set. Value is mandatory.",
            "example": "23ad7770-e0bd-4e05-886f-65ce83221a3d"
          },
          "state": {
            "type": "string",
            "description": "Lifecycle state of the cart. Value must be an Enum (closed, abandoned, open) value. Value is mandatory.",
            "example": "closed"
          },
          "createdTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when the cart was created. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          },
          "updatedTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when the cart was last changed. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          },
          "checkoutTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when checkout last completed. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          }
        },
        "title": "cart",
        "xml": {
          "name": "cart",
          "wrapped": true
        }
      },
      "create_cart": {
        "type": "object",
        "description": "A user's shopping cart, created through registration.",
        "properties": {
          "state": {
            "type": "string",
            "description": "Lifecycle state of the cart. Value must be an Enum (closed, abandoned, open) value. Value is mandatory.",
            "example": "closed"
          },
          "createdTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when the cart was created. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          },
          "updatedTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when the cart was last changed. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          },
          "checkoutTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when checkout last completed. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          }
        },
        "required": [
          "state"
        ],
        "title": "create cart",
        "xml": {
          "name": "cart",
          "wrapped": true
        }
      },
      "carts": {
        "type": "object",
        "description": "carts",
        "properties": {
          "carts": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "A user's shopping cart, created through registration.",
              "properties": {
                "id": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Unique cart identifier. Field is an ID and should not be amended or set.",
                  "example": 21
                },
                "token": {
                  "type": "string",
                  "format": "uuid",
                  "description": "Protected bearer token for cart mutation. Field is an ID and should not be amended or set. Value is mandatory.",
                  "example": "722c400b-f47f-4b55-9092-ee1d13cdbff8"
                },
                "state": {
                  "type": "string",
                  "description": "Lifecycle state of the cart. Value must be an Enum (closed, abandoned, open) value. Value is mandatory.",
                  "example": "closed"
                },
                "createdTick": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Internal tick when the cart was created. Value must be an Integer of min 0 and max 999999.",
                  "example": 0
                },
                "updatedTick": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Internal tick when the cart was last changed. Value must be an Integer of min 0 and max 999999.",
                  "example": 0
                },
                "checkoutTick": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Internal tick when checkout last completed. Value must be an Integer of min 0 and max 999999.",
                  "example": 0
                }
              },
              "required": [
                "checkoutTick",
                "createdTick",
                "id",
                "state",
                "token",
                "updatedTick"
              ],
              "title": "cart",
              "xml": {
                "name": "cart",
                "wrapped": true
              }
            }
          }
        },
        "required": [
          "carts"
        ],
        "title": "carts"
      },
      "PublicCart": {
        "type": "object",
        "description": "A user's shopping cart, created through registration.",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "Unique cart identifier. Field is an ID and should not be amended or set.",
            "example": 37
          },
          "state": {
            "type": "string",
            "description": "Lifecycle state of the cart. Value must be an Enum (closed, abandoned, open) value. Value is mandatory.",
            "example": "closed"
          },
          "createdTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when the cart was created. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          },
          "updatedTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when the cart was last changed. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          },
          "checkoutTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when checkout last completed. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          }
        },
        "title": "PublicCart",
        "xml": {
          "name": "cart",
          "wrapped": true
        }
      },
      "create_PublicCart": {
        "type": "object",
        "description": "A user's shopping cart, created through registration.",
        "properties": {
          "state": {
            "type": "string",
            "description": "Lifecycle state of the cart. Value must be an Enum (closed, abandoned, open) value. Value is mandatory.",
            "example": "closed"
          },
          "createdTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when the cart was created. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          },
          "updatedTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when the cart was last changed. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          },
          "checkoutTick": {
            "type": "integer",
            "format": "int32",
            "description": "Internal tick when checkout last completed. Value must be an Integer of min 0 and max 999999.",
            "example": 0,
            "maximum": 999999,
            "minimum": 0
          }
        },
        "required": [
          "state"
        ],
        "title": "create PublicCart",
        "xml": {
          "name": "cart",
          "wrapped": true
        }
      },
      "cartitem": {
        "type": "object",
        "description": "A product line in a shopping cart.",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "Unique cart item identifier. Field is an ID and should not be amended or set.",
            "example": 31
          },
          "productId": {
            "type": "integer",
            "format": "int32",
            "description": "Product identifier requested for this cart line. Value must be an Integer of min 1 and max 24. Value is mandatory.",
            "example": 1,
            "maximum": 24,
            "minimum": 1
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "Requested quantity for this cart line. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
            "example": 1,
            "maximum": 9999,
            "minimum": -1000
          },
          "unitPriceAtAdd": {
            "type": "number",
            "description": "Product unit price captured when the line was added. Value must be a Float of min 0.000000 and max 500.000000.",
            "example": 0.00,
            "maximum": 500.0,
            "minimum": 0.0
          },
          "stockAtAdd": {
            "type": "integer",
            "format": "int32",
            "description": "Product stock captured when the line was added. Value must be an Integer of min -1000 and max 9999.",
            "example": 0,
            "maximum": 9999,
            "minimum": -1000
          }
        },
        "title": "cartitem",
        "xml": {
          "name": "cartitem",
          "wrapped": true
        }
      },
      "create_cartitem": {
        "type": "object",
        "description": "A product line in a shopping cart.",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int32",
            "description": "Product identifier requested for this cart line. Value must be an Integer of min 1 and max 24. Value is mandatory.",
            "example": 1,
            "maximum": 24,
            "minimum": 1
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "Requested quantity for this cart line. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
            "example": 1,
            "maximum": 9999,
            "minimum": -1000
          },
          "unitPriceAtAdd": {
            "type": "number",
            "description": "Product unit price captured when the line was added. Value must be a Float of min 0.000000 and max 500.000000.",
            "example": 0.00,
            "maximum": 500.0,
            "minimum": 0.0
          },
          "stockAtAdd": {
            "type": "integer",
            "format": "int32",
            "description": "Product stock captured when the line was added. Value must be an Integer of min -1000 and max 9999.",
            "example": 0,
            "maximum": 9999,
            "minimum": -1000
          }
        },
        "required": [
          "productId",
          "quantity"
        ],
        "title": "create cartitem",
        "xml": {
          "name": "cartitem",
          "wrapped": true
        }
      },
      "cartitems": {
        "type": "object",
        "description": "cartitems",
        "properties": {
          "cartitems": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "A product line in a shopping cart.",
              "properties": {
                "id": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Unique cart item identifier. Field is an ID and should not be amended or set.",
                  "example": 51
                },
                "productId": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Product identifier requested for this cart line. Value must be an Integer of min 1 and max 24. Value is mandatory.",
                  "example": 1
                },
                "quantity": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Requested quantity for this cart line. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
                  "example": 1
                },
                "unitPriceAtAdd": {
                  "type": "number",
                  "description": "Product unit price captured when the line was added. Value must be a Float of min 0.000000 and max 500.000000.",
                  "example": 0.00
                },
                "stockAtAdd": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Product stock captured when the line was added. Value must be an Integer of min -1000 and max 9999.",
                  "example": 0
                }
              },
              "required": [
                "id",
                "productId",
                "quantity",
                "stockAtAdd",
                "unitPriceAtAdd"
              ],
              "title": "cartitem",
              "xml": {
                "name": "cartitem",
                "wrapped": true
              }
            }
          }
        },
        "required": [
          "cartitems"
        ],
        "title": "cartitems"
      },
      "AddedCartItem": {
        "type": "object",
        "description": "A product line in a shopping cart.",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "description": "Unique cart item identifier. Field is an ID and should not be amended or set.",
            "example": 28
          },
          "productId": {
            "type": "integer",
            "format": "int32",
            "description": "Product identifier requested for this cart line. Value must be an Integer of min 1 and max 24. Value is mandatory.",
            "example": 1,
            "maximum": 24,
            "minimum": 1
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "Requested quantity for this cart line. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
            "example": 1,
            "maximum": 9999,
            "minimum": -1000
          },
          "unitPriceAtAdd": {
            "type": "number",
            "description": "Product unit price captured when the line was added. Value must be a Float of min 0.000000 and max 500.000000.",
            "example": 0.00,
            "maximum": 500.0,
            "minimum": 0.0
          },
          "stockAtAdd": {
            "type": "integer",
            "format": "int32",
            "description": "Product stock captured when the line was added. Value must be an Integer of min -1000 and max 9999.",
            "example": 0,
            "maximum": 9999,
            "minimum": -1000
          }
        },
        "title": "AddedCartItem",
        "xml": {
          "name": "cartitem",
          "wrapped": true
        }
      },
      "create_AddedCartItem": {
        "type": "object",
        "description": "A product line in a shopping cart.",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int32",
            "description": "Product identifier requested for this cart line. Value must be an Integer of min 1 and max 24. Value is mandatory.",
            "example": 1,
            "maximum": 24,
            "minimum": 1
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "Requested quantity for this cart line. Value must be an Integer of min -1000 and max 9999. Value is mandatory.",
            "example": 1,
            "maximum": 9999,
            "minimum": -1000
          }
        },
        "required": [
          "productId",
          "quantity"
        ],
        "title": "create AddedCartItem",
        "xml": {
          "name": "cartitem",
          "wrapped": true
        }
      },
      "ThingifierError": {
        "type": "object",
        "description": "Standard Thingifier error response",
        "properties": {
          "errorMessages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "errorMessages"
        ],
        "title": "ThingifierError"
      }
    },
    "securitySchemes": {
      "cartToken": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}