{"files":{"SKILL.md":"---\nname: swagger-petstore-openapi-30\ndescription: \"Swagger Petstore - OpenAPI 3.0 API skill. Use when working with Swagger Petstore - OpenAPI 3.0 for pet, store, user. Covers 19 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Swagger Petstore - OpenAPI 3.0\nAPI version: 1.0.27\n\n## Auth\nOAuth2 | ApiKey api_key in header\n\n## Base URL\n/api/v3\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /pet/findByStatus -- finds pets by status.\n3. POST /pet -- create first pet\n\n## Endpoints\n19 endpoints across 3 groups. See references/api-spec.lap for full details.\n\n### Pet\n| Method | Path | Description |\n|--------|------|-------------|\n| PUT | /pet | Update an existing pet. |\n| POST | /pet | Add a new pet to the store. |\n| GET | /pet/findByStatus | Finds Pets by status. |\n| GET | /pet/findByTags | Finds Pets by tags. |\n| GET | /pet/{petId} | Find pet by ID. |\n| POST | /pet/{petId} | Updates a pet in the store with form data. |\n| DELETE | /pet/{petId} | Deletes a pet. |\n| POST | /pet/{petId}/uploadImage | Uploads an image. |\n\n### Store\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /store/inventory | Returns pet inventories by status. |\n| POST | /store/order | Place an order for a pet. |\n| GET | /store/order/{orderId} | Find purchase order by ID. |\n| DELETE | /store/order/{orderId} | Delete purchase order by identifier. |\n\n### User\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /user | Create user. |\n| POST | /user/createWithList | Creates list of users with given input array. |\n| GET | /user/login | Logs user into the system. |\n| GET | /user/logout | Logs out current logged in user session. |\n| GET | /user/{username} | Get user by user name. |\n| PUT | /user/{username} | Update user resource. |\n| DELETE | /user/{username} | Delete user resource. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a pet?\" -> POST /pet\n- \"List all findByStatus?\" -> GET /pet/findByStatus\n- \"List all findByTags?\" -> GET /pet/findByTags\n- \"Get pet details?\" -> GET /pet/{petId}\n- \"Delete a pet?\" -> DELETE /pet/{petId}\n- \"Create a uploadImage?\" -> POST /pet/{petId}/uploadImage\n- \"List all inventory?\" -> GET /store/inventory\n- \"Create a order?\" -> POST /store/order\n- \"Get order details?\" -> GET /store/order/{orderId}\n- \"Delete a order?\" -> DELETE /store/order/{orderId}\n- \"Create a user?\" -> POST /user\n- \"Create a createWithList?\" -> POST /user/createWithList\n- \"List all login?\" -> GET /user/login\n- \"List all logout?\" -> GET /user/logout\n- \"Get user details?\" -> GET /user/{username}\n- \"Update a user?\" -> PUT /user/{username}\n- \"Delete a user?\" -> DELETE /user/{username}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Swagger Petstore - OpenAPI 3.0\n@base /api/v3\n@version 1.0.27\n@auth OAuth2 | ApiKey api_key in header\n@endpoints 19\n@toc pet(8), store(4), user(7)\n\n@group pet\n@endpoint PUT /pet\n@desc Update an existing pet.\n@required {name: str, photoUrls: [str]}\n@optional {id: int(int64), category: map{id: int(int64), name: str}, tags: [map{id: int(int64), name: str}], status: str(available/pending/sold) # pet status in the store}\n@returns(200) {id: int(int64), name: str, category: map{id: int(int64), name: str}, photoUrls: [str], tags: [map], status: str} # Successful operation\n@errors {400: Invalid ID supplied, 404: Pet not found, 422: Validation exception}\n\n@endpoint POST /pet\n@desc Add a new pet to the store.\n@required {name: str, photoUrls: [str]}\n@optional {id: int(int64), category: map{id: int(int64), name: str}, tags: [map{id: int(int64), name: str}], status: str(available/pending/sold) # pet status in the store}\n@returns(200) {id: int(int64), name: str, category: map{id: int(int64), name: str}, photoUrls: [str], tags: [map], status: str} # Successful operation\n@errors {400: Invalid input, 422: Validation exception}\n\n@endpoint GET /pet/findByStatus\n@desc Finds Pets by status.\n@required {status: str(available/pending/sold)=available # Status values that need to be considered for filter}\n@returns(200) successful operation\n@errors {400: Invalid status value}\n\n@endpoint GET /pet/findByTags\n@desc Finds Pets by tags.\n@required {tags: [str] # Tags to filter by}\n@returns(200) successful operation\n@errors {400: Invalid tag value}\n\n@endpoint GET /pet/{petId}\n@desc Find pet by ID.\n@required {petId: int(int64) # ID of pet to return}\n@returns(200) {id: int(int64), name: str, category: map{id: int(int64), name: str}, photoUrls: [str], tags: [map], status: str} # successful operation\n@errors {400: Invalid ID supplied, 404: Pet not found}\n\n@endpoint POST /pet/{petId}\n@desc Updates a pet in the store with form data.\n@required {petId: int(int64) # ID of pet that needs to be updated}\n@optional {name: str # Name of pet that needs to be updated, status: str # Status of pet that needs to be updated}\n@returns(200) {id: int(int64), name: str, category: map{id: int(int64), name: str}, photoUrls: [str], tags: [map], status: str} # successful operation\n@errors {400: Invalid input}\n\n@endpoint DELETE /pet/{petId}\n@desc Deletes a pet.\n@required {petId: int(int64) # Pet id to delete}\n@optional {api_key: str}\n@returns(200) Pet deleted\n@errors {400: Invalid pet value}\n\n@endpoint POST /pet/{petId}/uploadImage\n@desc Uploads an image.\n@required {petId: int(int64) # ID of pet to update}\n@optional {additionalMetadata: str # Additional Metadata}\n@returns(200) {code: int(int32), type: str, message: str} # successful operation\n@errors {400: No file uploaded, 404: Pet not found}\n\n@endgroup\n\n@group store\n@endpoint GET /store/inventory\n@desc Returns pet inventories by status.\n@returns(200) successful operation\n\n@endpoint POST /store/order\n@desc Place an order for a pet.\n@optional {id: int(int64), petId: int(int64), quantity: int(int32), shipDate: str(date-time), status: str(placed/approved/delivered) # Order Status, complete: bool}\n@returns(200) {id: int(int64), petId: int(int64), quantity: int(int32), shipDate: str(date-time), status: str, complete: bool} # successful operation\n@errors {400: Invalid input, 422: Validation exception}\n\n@endpoint GET /store/order/{orderId}\n@desc Find purchase order by ID.\n@required {orderId: int(int64) # ID of order that needs to be fetched}\n@returns(200) {id: int(int64), petId: int(int64), quantity: int(int32), shipDate: str(date-time), status: str, complete: bool} # successful operation\n@errors {400: Invalid ID supplied, 404: Order not found}\n\n@endpoint DELETE /store/order/{orderId}\n@desc Delete purchase order by identifier.\n@required {orderId: int(int64) # ID of the order that needs to be deleted}\n@returns(200) order deleted\n@errors {400: Invalid ID supplied, 404: Order not found}\n\n@endgroup\n\n@group user\n@endpoint POST /user\n@desc Create user.\n@optional {id: int(int64), username: str, firstName: str, lastName: str, email: str, password: str, phone: str, userStatus: int(int32) # User Status}\n@returns(200) {id: int(int64), username: str, firstName: str, lastName: str, email: str, password: str, phone: str, userStatus: int(int32)} # successful operation\n\n@endpoint POST /user/createWithList\n@desc Creates list of users with given input array.\n@returns(200) {id: int(int64), username: str, firstName: str, lastName: str, email: str, password: str, phone: str, userStatus: int(int32)} # Successful operation\n\n@endpoint GET /user/login\n@desc Logs user into the system.\n@optional {username: str # The user name for login, password: str # The password for login in clear text}\n@returns(200) successful operation\n@errors {400: Invalid username/password supplied}\n\n@endpoint GET /user/logout\n@desc Logs out current logged in user session.\n@returns(200) successful operation\n\n@endpoint GET /user/{username}\n@desc Get user by user name.\n@required {username: str # The name that needs to be fetched. Use user1 for testing}\n@returns(200) {id: int(int64), username: str, firstName: str, lastName: str, email: str, password: str, phone: str, userStatus: int(int32)} # successful operation\n@errors {400: Invalid username supplied, 404: User not found}\n\n@endpoint PUT /user/{username}\n@desc Update user resource.\n@required {username: str # name that need to be deleted}\n@optional {id: int(int64), username: str, firstName: str, lastName: str, email: str, password: str, phone: str, userStatus: int(int32) # User Status}\n@returns(200) successful operation\n@errors {400: bad request, 404: user not found}\n\n@endpoint DELETE /user/{username}\n@desc Delete user resource.\n@required {username: str # The name that needs to be deleted}\n@returns(200) User deleted\n@errors {400: Invalid username supplied, 404: User not found}\n\n@endgroup\n\n@end\n"}}