{"openapi":"3.1.0","info":{"description":"The JSON API of the demo pet shop of OctoPerf, in one mode.","title":"Octopet API","version":"1"},"servers":[{"url":"https://pet.octoperf.com/fixed","description":"Generated server url"}],"paths":{"/api/account":{"get":{"operationId":"account","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"OK"}},"security":[{"bearer":[]}],"tags":["account-api"]}},"/api/account/cart":{"get":{"operationId":"accountCart","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}},"description":"OK"}},"security":[{"bearer":[]}],"tags":["account-api"]}},"/api/auth/login":{"post":{"operationId":"login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credentials"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenPair"}}},"description":"OK"}},"tags":["auth-api"]}},"/api/auth/refresh":{"post":{"operationId":"refresh","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenPair"}}},"description":"OK"}},"tags":["auth-api"]}},"/api/carts":{"post":{"operationId":"create","responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}},"description":"Created"}},"tags":["cart-api"]}},"/api/carts/{id}":{"get":{"operationId":"cart","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}},"description":"OK"}},"tags":["cart-api"]}},"/api/carts/{id}/claim":{"post":{"operationId":"claim","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}},"description":"OK"}},"security":[{"bearer":[]}],"tags":["cart-api"]}},"/api/carts/{id}/lines":{"post":{"operationId":"add","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LineRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}},"description":"OK"}},"tags":["cart-api"]}},"/api/carts/{id}/lines/{itemId}":{"delete":{"operationId":"remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"itemId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}},"description":"OK"}},"tags":["cart-api"]},"put":{"operationId":"update","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"itemId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuantityRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cart"}}},"description":"OK"}},"tags":["cart-api"]}},"/api/categories":{"get":{"operationId":"categories","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Category"}}}},"description":"OK"}},"tags":["catalog-api"]}},"/api/categories/{id}":{"get":{"operationId":"category","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Category"}}},"description":"OK"}},"tags":["catalog-api"]}},"/api/categories/{id}/products":{"get":{"operationId":"products","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"filter","required":false,"schema":{"type":"string","enum":["YOUNG","ADULT","SMALL","LARGE","HYPOALLERGENIC"]}},{"in":"query","name":"sort","required":false,"schema":{"type":"string","default":"FEATURED","enum":["FEATURED","PRICE_ASC","PRICE_DESC","NEWEST"]}},{"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":6}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageProductSummary"}}},"description":"OK"}},"tags":["catalog-api"]}},"/api/orders":{"get":{"operationId":"orders","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Order"}}}},"description":"OK"}},"security":[{"bearer":[]}],"tags":["order-api"]},"post":{"operationId":"place","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"description":"Created"}},"security":[{"bearer":[]}],"tags":["order-api"]}},"/api/orders/{number}":{"get":{"operationId":"order","parameters":[{"in":"path","name":"number","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}},"description":"OK"}},"security":[{"bearer":[]}],"tags":["order-api"]}},"/api/products/{id}":{"get":{"operationId":"product","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}},"description":"OK"}},"tags":["catalog-api"]}},"/api/search":{"get":{"operationId":"search","parameters":[{"in":"query","name":"q","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":6}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageProductSummary"}}},"description":"OK"}},"tags":["catalog-api"]}}},"components":{"schemas":{"Account":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"card":{"$ref":"#/components/schemas/Card"},"email":{"type":"string"},"firstName":{"type":"string"},"id":{"type":"integer","format":"int64"},"lastName":{"type":"string"},"phone":{"type":"string"},"role":{"type":"string","enum":["CUSTOMER","ADMIN"]},"username":{"type":"string"}}},"Address":{"type":"object","properties":{"city":{"type":"string"},"state":{"type":"string"},"street":{"type":"string"},"zip":{"type":"string"}}},"Card":{"type":"object","properties":{"expiry":{"type":"string"},"number":{"type":"string"}}},"Cart":{"type":"object","properties":{"accountId":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"lines":{"type":"array","items":{"$ref":"#/components/schemas/CartLine"}},"subtotal":{"type":"number"}}},"CartLine":{"type":"object","properties":{"item":{"$ref":"#/components/schemas/Item"},"quantity":{"type":"integer","format":"int32"},"total":{"type":"number"}}},"Category":{"type":"object","properties":{"available":{"type":"integer","format":"int64"},"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}}},"CheckoutRequest":{"type":"object","properties":{"cartId":{"type":"string","format":"uuid"},"delivery":{"type":"string","enum":["GENTLE","NEXT_DAY"]}},"required":["cartId","delivery"]},"Credentials":{"type":"object","properties":{"password":{"type":"string","minLength":1},"username":{"type":"string","minLength":1}},"required":["password","username"]},"Facts":{"type":"object","properties":{"adultSize":{"type":"string"},"energy":{"type":"string"},"goodWith":{"type":"string"},"grooming":{"type":"string"}}},"Item":{"type":"object","properties":{"age":{"type":"string","enum":["YOUNG","ADULT"]},"detail":{"type":"string"},"id":{"type":"string"},"price":{"type":"number"},"productId":{"type":"string"},"productName":{"type":"string"},"stock":{"type":"integer","format":"int32"},"title":{"type":"string"}}},"LineRequest":{"type":"object","properties":{"itemId":{"type":"string","minLength":1},"quantity":{"type":"integer","format":"int32","exclusiveMinimum":0}},"required":["itemId"]},"Order":{"type":"object","properties":{"accountId":{"type":"integer","format":"int64"},"delivery":{"type":"string","enum":["GENTLE","NEXT_DAY"]},"deliveryPrice":{"type":"number"},"lines":{"type":"array","items":{"$ref":"#/components/schemas/OrderLine"}},"number":{"type":"integer","format":"int64"},"payment":{"type":"string"},"placedAt":{"type":"string","format":"date-time"},"shipName":{"type":"string"},"shipTo":{"$ref":"#/components/schemas/Address"},"subtotal":{"type":"number"},"total":{"type":"number"}}},"OrderLine":{"type":"object","properties":{"itemId":{"type":"string"},"line":{"type":"integer","format":"int32"},"productName":{"type":"string"},"quantity":{"type":"integer","format":"int32"},"title":{"type":"string"},"unitPrice":{"type":"number"}}},"PageProductSummary":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ProductSummary"}},"request":{"$ref":"#/components/schemas/PageRequest"},"total":{"type":"integer","format":"int64"}}},"PageRequest":{"type":"object","properties":{"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"}}},"Product":{"type":"object","properties":{"categoryId":{"type":"string"},"description":{"type":"string"},"facts":{"$ref":"#/components/schemas/Facts"},"hypoallergenic":{"type":"boolean"},"id":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Item"}},"name":{"type":"string"},"rating":{"$ref":"#/components/schemas/Rating"},"size":{"type":"string","enum":["SMALL","MEDIUM","LARGE"]},"tagline":{"type":"string"}}},"ProductSummary":{"type":"object","properties":{"available":{"type":"integer","format":"int64"},"categoryId":{"type":"string"},"fromPrice":{"type":"number"},"id":{"type":"string"},"name":{"type":"string"},"newestListing":{"type":"string","format":"date"},"sold":{"type":"integer","format":"int64"},"tagline":{"type":"string"}}},"QuantityRequest":{"type":"object","properties":{"quantity":{"type":"integer","format":"int32","minimum":0}}},"Rating":{"type":"object","properties":{"reviews":{"type":"integer","format":"int32"},"stars":{"type":"number"}}},"RefreshRequest":{"type":"object","properties":{"refreshToken":{"type":"string","minLength":1}},"required":["refreshToken"]},"TokenPair":{"type":"object","properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"integer","format":"int64"},"refreshToken":{"type":"string"},"tokenType":{"type":"string"}}}},"securitySchemes":{"bearer":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}}}