This commit is contained in:
Stephen Zhou
2026-01-24 23:38:32 +08:00
parent 393c530647
commit 62ac2dd811
6 changed files with 41 additions and 7013 deletions

View File

@ -1,137 +1,15 @@
// This file is auto-generated by @hey-api/openapi-ts
import { oc } from '@orpc/contract'
import { zAddPetData, zAddPetResponse, zCreateUserData, zCreateUsersWithListInputData, zCreateUsersWithListInputResponse, zDeleteOrderData, zDeletePetData, zDeletePetResponse, zDeleteUserData, zFindPetsByStatusData, zFindPetsByStatusResponse, zFindPetsByTagsData, zFindPetsByTagsResponse, zGetInventoryResponse, zGetOrderByIdData, zGetOrderByIdResponse, zGetPetByIdData, zGetPetByIdResponse, zGetUserByNameData, zGetUserByNameResponse, zLoginUserData, zLoginUserResponse, zPlaceOrderData, zPlaceOrderPatchData, zPlaceOrderPatchResponse, zPlaceOrderResponse, zUpdatePetData, zUpdatePetResponse, zUpdatePetWithFormData, zUpdateUserData, zUploadFileData, zUploadFileResponse } from './zod.gen'
import { zGetConsoleApiPingResponse } from './zod.gen'
export const base = oc.$route({ inputStructure: 'detailed' })
/**
* Add a new pet to the store
* Health check endpoint for connection testing.
*/
export const addPetContract = base.route({ path: '/pet', method: 'POST' }).input(zAddPetData).output(zAddPetResponse)
export const getConsoleApiPingContract = base.route({ path: '/console/api/ping', method: 'GET' }).output(zGetConsoleApiPingResponse)
/**
* Update an existing pet by Id
*/
export const updatePetContract = base.route({ path: '/pet', method: 'PUT' }).input(zUpdatePetData).output(zUpdatePetResponse)
/**
* Multiple status values can be provided with comma separated strings
*/
export const findPetsByStatusContract = base.route({ path: '/pet/findByStatus', method: 'GET' }).input(zFindPetsByStatusData).output(zFindPetsByStatusResponse)
/**
* Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
*/
export const findPetsByTagsContract = base.route({ path: '/pet/findByTags', method: 'GET' }).input(zFindPetsByTagsData).output(zFindPetsByTagsResponse)
/**
* delete a pet
*/
export const deletePetContract = base.route({ path: '/pet/{petId}', method: 'DELETE' }).input(zDeletePetData).output(zDeletePetResponse)
/**
* Returns a single pet
*/
export const getPetByIdContract = base.route({ path: '/pet/{petId}', method: 'GET' }).input(zGetPetByIdData).output(zGetPetByIdResponse)
/**
* Updates a pet in the store with form data
*/
export const updatePetWithFormContract = base.route({ path: '/pet/{petId}', method: 'POST' }).input(zUpdatePetWithFormData)
/**
* uploads an image
*/
export const uploadFileContract = base.route({ path: '/pet/{petId}/uploadImage', method: 'POST' }).input(zUploadFileData).output(zUploadFileResponse)
/**
* Returns a map of status codes to quantities
*/
export const getInventoryContract = base.route({ path: '/store/inventory', method: 'GET' }).output(zGetInventoryResponse)
/**
* Place a new order in the store with patch
*/
export const placeOrderPatchContract = base.route({ path: '/store/order', method: 'PATCH' }).input(zPlaceOrderPatchData).output(zPlaceOrderPatchResponse)
/**
* Place a new order in the store
*/
export const placeOrderContract = base.route({ path: '/store/order', method: 'POST' }).input(zPlaceOrderData).output(zPlaceOrderResponse)
/**
* For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
*/
export const deleteOrderContract = base.route({ path: '/store/order/{orderId}', method: 'DELETE' }).input(zDeleteOrderData)
/**
* For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions.
*/
export const getOrderByIdContract = base.route({ path: '/store/order/{orderId}', method: 'GET' }).input(zGetOrderByIdData).output(zGetOrderByIdResponse)
/**
* This can only be done by the logged in user.
*/
export const createUserContract = base.route({ path: '/user', method: 'POST' }).input(zCreateUserData)
/**
* Creates list of users with given input array
*/
export const createUsersWithListInputContract = base.route({ path: '/user/createWithList', method: 'POST' }).input(zCreateUsersWithListInputData).output(zCreateUsersWithListInputResponse)
/**
* Logs user into the system
*/
export const loginUserContract = base.route({ path: '/user/login', method: 'GET' }).input(zLoginUserData).output(zLoginUserResponse)
/**
* Logs out current logged in user session
*/
export const logoutUserContract = base.route({ path: '/user/logout', method: 'GET' })
/**
* This can only be done by the logged in user.
*/
export const deleteUserContract = base.route({ path: '/user/{username}', method: 'DELETE' }).input(zDeleteUserData)
/**
* Get user by user name
*/
export const getUserByNameContract = base.route({ path: '/user/{username}', method: 'GET' }).input(zGetUserByNameData).output(zGetUserByNameResponse)
/**
* This can only be done by the logged in user.
*/
export const updateUserContract = base.route({ path: '/user/{username}', method: 'PUT' }).input(zUpdateUserData)
export const contracts = {
pet: {
addPetContract,
updatePetContract,
findPetsByStatusContract,
findPetsByTagsContract,
deletePetContract,
getPetByIdContract,
updatePetWithFormContract,
uploadFileContract,
},
store: {
getInventoryContract,
placeOrderPatchContract,
placeOrderContract,
deleteOrderContract,
getOrderByIdContract,
},
user: {
createUserContract,
createUsersWithListInputContract,
loginUserContract,
logoutUserContract,
deleteUserContract,
getUserByNameContract,
updateUserContract,
},
}
export const contracts = { console: { getConsoleApiPingContract } }
export type Contracts = typeof contracts

View File

@ -1,696 +1,42 @@
// This file is auto-generated by @hey-api/openapi-ts
export type ClientOptions = {
baseUrl: 'https://petstore3.swagger.io/api/v3' | (string & {})
baseUrl: `${string}://${string}` | (string & {})
}
export type Order = {
id?: number
petId?: number
quantity?: number
shipDate?: string
/**
* Order Status
*/
status?: '' | string
/**
* HTTP Status
*/
http_status?: 200 | 400 | 500
complete?: boolean
}
export type Customer = {
id?: number
username?: string
address?: Array<Address>
}
export type HappyCustomer = Customer & {
isHappy?: true
}
export type UnhappyCustomer = Customer & {
reasonToBeUnhappy?: string
isHappy?: false
}
export type Address = {
streetName?: string
streetNumber?: string
city?: string
state?: string
zip?: string
}
export type Category = {
id?: number
name?: string
}
export type User = {
id?: number
username?: string
firstName?: string
lastName?: string
email?: string
password?: string
phone?: string
/**
* User Status
*/
userStatus?: number
}
export type Tag = {
id?: number
name?: string
}
export type Pet = (({
type: 'dog'
} & Dog) | ({
type: 'cat'
} & Cat)) & {
id?: number
type: 'dog' | 'cat'
name: string
category?: OpenapiCategory
photoUrls: Array<string>
readonly tags?: Array<Tag>
/**
* pet status in the store
*/
status?: 'available' | 'pending' | 'sold'
}
export type Cat = {
readonly type?: string
name?: string
}
export type Dog = {
readonly type?: string
bark?: string
}
export type FullAddress = Address & {
streetName: string
streetNumber: string
}
export type AddPetRequest = {
id?: number
name: string
category?: Category
photoUrls: Array<string>
tags?: Array<Tag>
/**
* pet status in the store
*/
status?: 'available' | 'pending' | 'sold' | 'in store'
}
export type ApiResponse = {
code?: number
type?: string
message?: string
}
export type OpenapiCategory = {
id?: number
name?: string
}
export type PetWritable = (({
type: 'DogWritable'
} & DogWritable) | ({
type: 'CatWritable'
} & CatWritable)) & {
id?: number
name: string
category?: OpenapiCategory
photoUrls: Array<string>
/**
* pet status in the store
*/
status?: 'available' | 'pending' | 'sold'
}
export type CatWritable = {
name?: string
}
export type DogWritable = {
bark?: string
export type ErrorSchema = {
error: {
type: string
message: string
status: number
details?: string
}
}
/**
* to request with required page number or pagination
* PingResponse
*/
export type Page = string
/**
* to request with required page size
*/
export type PageSize = string
/**
* Pet object that needs to be added to the store
*/
export type Pet2 = PetWritable
/**
* List of user object
*/
export type UserArray = Array<User>
export type AddPetData = {
export type PingResponse = {
/**
* Create a new pet in the store
* Result
*
* Health check result
*/
body: AddPetRequest
path?: never
query?: never
url: '/pet'
result: string
}
export type AddPetErrors = {
/**
* Pet not found
*/
405: {
code?: number
message?: string
}
}
export type AddPetError = AddPetErrors[keyof AddPetErrors]
export type AddPetResponses = {
/**
* Successful operation
*/
200: Pet
}
export type AddPetResponse = AddPetResponses[keyof AddPetResponses]
export type UpdatePetData = {
/**
* Update an existent pet in the store
*/
body: PetWritable
path?: never
query?: never
url: '/pet'
}
export type UpdatePetErrors = {
/**
* Invalid ID supplied
*/
400: unknown
/**
* Pet not found
*/
404: unknown
/**
* Validation exception
*/
405: unknown
}
export type UpdatePetResponses = {
/**
* Successful operation
*/
200: Pet
}
export type UpdatePetResponse = UpdatePetResponses[keyof UpdatePetResponses]
export type FindPetsByStatusData = {
body?: never
path?: never
query?: {
/**
* Status values that need to be considered for filter
*/
status?: 'available' | 'pending' | 'sold'
}
url: '/pet/findByStatus'
}
export type FindPetsByStatusErrors = {
/**
* Invalid status value
*/
400: unknown
}
export type FindPetsByStatusResponses = {
/**
* successful operation
*/
200: Array<Pet>
}
export type FindPetsByStatusResponse = FindPetsByStatusResponses[keyof FindPetsByStatusResponses]
export type FindPetsByTagsData = {
body?: never
path?: never
query?: {
/**
* Tags to filter by
*/
tags?: Array<string>
/**
* to request with required page number or pagination
*/
page?: string
/**
* to request with required page size
*/
pageSize?: string
}
url: '/pet/findByTags'
}
export type FindPetsByTagsErrors = {
/**
* Invalid tag value
*/
400: unknown
}
export type FindPetsByTagsResponses = {
/**
* successful operation
*/
200: Array<Pet>
}
export type FindPetsByTagsResponse = FindPetsByTagsResponses[keyof FindPetsByTagsResponses]
export type DeletePetData = {
body?: never
headers?: {
api_key?: string
}
path: {
/**
* Pet id to delete
*/
petId: number
}
query?: never
url: '/pet/{petId}'
}
export type DeletePetErrors = {
/**
* Invalid pet value
*/
400: unknown
}
export type DeletePetResponses = {
/**
* items
*/
200: Array<'TYPE1' | 'TYPE2' | 'TYPE3'>
}
export type DeletePetResponse = DeletePetResponses[keyof DeletePetResponses]
export type GetPetByIdData = {
body?: never
path: {
/**
* ID of pet to return
*/
petId: number
}
query?: never
url: '/pet/{petId}'
}
export type GetPetByIdErrors = {
/**
* Invalid ID supplied
*/
400: unknown
/**
* Pet not found
*/
404: unknown
}
export type GetPetByIdResponses = {
/**
* successful operation
*/
200: Pet
}
export type GetPetByIdResponse = GetPetByIdResponses[keyof GetPetByIdResponses]
export type UpdatePetWithFormData = {
body?: never
path: {
/**
* ID of pet that needs to be updated
*/
petId: number
}
query?: {
/**
* Name of pet that needs to be updated
*/
name?: string
/**
* Status of pet that needs to be updated
*/
status?: string
}
url: '/pet/{petId}'
}
export type UpdatePetWithFormErrors = {
/**
* Invalid input
*/
405: unknown
}
export type UploadFileData = {
body?: Blob | File
path: {
/**
* ID of pet to update
*/
petId: number
}
query?: {
/**
* Additional Metadata
*/
additionalMetadata?: string
}
url: '/pet/{petId}/uploadImage'
}
export type UploadFileResponses = {
/**
* successful operation
*/
200: ApiResponse
}
export type UploadFileResponse = UploadFileResponses[keyof UploadFileResponses]
export type GetInventoryData = {
export type GetConsoleApiPingData = {
body?: never
path?: never
query?: never
url: '/store/inventory'
url: '/console/api/ping'
}
export type GetInventoryResponses = {
export type GetConsoleApiPingResponses = {
/**
* successful operation
* OK
*/
200: {
[key: string]: number
}
200: PingResponse
}
export type GetInventoryResponse = GetInventoryResponses[keyof GetInventoryResponses]
export type PlaceOrderPatchData = {
body?: Order
path?: never
query?: never
url: '/store/order'
}
export type PlaceOrderPatchErrors = {
/**
* Invalid input
*/
405: unknown
}
export type PlaceOrderPatchResponses = {
/**
* successful operation
*/
200: Order
}
export type PlaceOrderPatchResponse = PlaceOrderPatchResponses[keyof PlaceOrderPatchResponses]
export type PlaceOrderData = {
/**
* Order description
*/
body?: Order
path?: never
query?: never
url: '/store/order'
}
export type PlaceOrderErrors = {
/**
* Invalid input
*/
405: unknown
}
export type PlaceOrderResponses = {
/**
* successful operation
*/
200: Order
}
export type PlaceOrderResponse = PlaceOrderResponses[keyof PlaceOrderResponses]
export type DeleteOrderData = {
body?: never
path: {
/**
* ID of the order that needs to be deleted
*/
orderId: number
}
query?: never
url: '/store/order/{orderId}'
}
export type DeleteOrderErrors = {
/**
* Invalid ID supplied
*/
400: unknown
/**
* Order not found
*/
404: unknown
}
export type GetOrderByIdData = {
body?: never
path: {
/**
* ID of order that needs to be fetched
*/
orderId: number
}
query?: never
url: '/store/order/{orderId}'
}
export type GetOrderByIdErrors = {
/**
* Invalid ID supplied
*/
400: unknown
/**
* Order not found
*/
404: unknown
}
export type GetOrderByIdResponses = {
/**
* successful operation
*/
200: Order
}
export type GetOrderByIdResponse = GetOrderByIdResponses[keyof GetOrderByIdResponses]
export type CreateUserData = {
/**
* Created user object
*/
body?: User
path?: never
query?: never
url: '/user'
}
export type CreateUserResponses = {
/**
* successful operation
*/
default: User
}
export type CreateUserResponse = CreateUserResponses[keyof CreateUserResponses]
export type CreateUsersWithListInputData = {
body?: Array<User>
path?: never
query?: never
url: '/user/createWithList'
}
export type CreateUsersWithListInputResponses = {
/**
* Successful operation
*/
200: User
/**
* successful operation
*/
default: unknown
}
export type CreateUsersWithListInputResponse = CreateUsersWithListInputResponses[keyof CreateUsersWithListInputResponses]
export type LoginUserData = {
body?: never
path?: never
query?: {
/**
* The user name for login
*/
username?: string
/**
* The password for login in clear text
*/
password?: string
}
url: '/user/login'
}
export type LoginUserErrors = {
/**
* Invalid username/password supplied
*/
400: unknown
}
export type LoginUserResponses = {
/**
* successful operation
*/
200: string
}
export type LoginUserResponse = LoginUserResponses[keyof LoginUserResponses]
export type LogoutUserData = {
body?: never
path?: never
query?: never
url: '/user/logout'
}
export type LogoutUserResponses = {
/**
* successful operation
*/
default: unknown
}
export type DeleteUserData = {
body?: never
path: {
/**
* The name that needs to be deleted
*/
username: string
}
query?: never
url: '/user/{username}'
}
export type DeleteUserErrors = {
/**
* Invalid username supplied
*/
400: unknown
/**
* User not found
*/
404: unknown
}
export type GetUserByNameData = {
body?: never
path: {
/**
* The name that needs to be fetched. Use user1 for testing.
*/
username: string
}
query?: never
url: '/user/{username}'
}
export type GetUserByNameErrors = {
/**
* Invalid username supplied
*/
400: unknown
/**
* User not found
*/
404: unknown
}
export type GetUserByNameResponses = {
/**
* successful operation
*/
200: User
}
export type GetUserByNameResponse = GetUserByNameResponses[keyof GetUserByNameResponses]
export type UpdateUserData = {
/**
* Update an existent user in the store
*/
body?: User
path: {
/**
* name that need to be deleted
*/
username: string
}
query?: never
url: '/user/{username}'
}
export type UpdateUserResponses = {
/**
* successful operation
*/
default: unknown
}
export type GetConsoleApiPingResponse = GetConsoleApiPingResponses[keyof GetConsoleApiPingResponses]

View File

@ -2,523 +2,37 @@
import { z } from 'zod'
export const zOrder = z.object({
id: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
petId: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
quantity: z.number().int().min(-2147483648, { message: 'Invalid value: Expected int32 to be >= -2147483648' }).max(2147483647, { message: 'Invalid value: Expected int32 to be <= 2147483647' }).optional(),
shipDate: z.string().datetime().optional(),
status: z.union([
z.literal(''),
z.string().email(),
]).optional(),
http_status: z.union([
z.literal(200),
z.literal(400),
z.literal(500),
]).describe('HTTP Status').optional(),
complete: z.boolean().optional(),
})
export type OrderZodType = z.infer<typeof zOrder>
export const zAddress = z.object({
streetName: z.string().optional(),
streetNumber: z.string().optional(),
city: z.string().optional(),
state: z.string().optional(),
zip: z.string().optional(),
})
export type AddressZodType = z.infer<typeof zAddress>
export const zCustomer = z.object({
id: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
username: z.string().optional(),
address: z.array(zAddress).optional(),
})
export type CustomerZodType = z.infer<typeof zCustomer>
export const zHappyCustomer = zCustomer.and(z.object({
isHappy: z.literal(true).optional(),
}))
export type HappyCustomerZodType = z.infer<typeof zHappyCustomer>
export const zUnhappyCustomer = zCustomer.and(z.object({
reasonToBeUnhappy: z.string().optional(),
isHappy: z.literal(false).optional(),
}))
export type UnhappyCustomerZodType = z.infer<typeof zUnhappyCustomer>
export const zCategory = z.object({
id: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
name: z.string().optional(),
})
export type CategoryZodType = z.infer<typeof zCategory>
export const zUser = z.object({
id: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
username: z.string().optional(),
firstName: z.string().optional(),
lastName: z.string().optional(),
email: z.string().optional(),
password: z.string().optional(),
phone: z.string().optional(),
userStatus: z.number().int().min(-2147483648, { message: 'Invalid value: Expected int32 to be >= -2147483648' }).max(2147483647, { message: 'Invalid value: Expected int32 to be <= 2147483647' }).describe('User Status').optional(),
})
export type UserZodType = z.infer<typeof zUser>
export const zTag = z.object({
id: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
name: z.string().optional(),
})
export type TagZodType = z.infer<typeof zTag>
export const zCat = z.object({
type: z.string().min(1).readonly().optional(),
name: z.string().optional(),
})
export type CatZodType = z.infer<typeof zCat>
export const zDog = z.object({
type: z.string().min(1).readonly().optional(),
bark: z.string().optional(),
})
export type DogZodType = z.infer<typeof zDog>
export const zFullAddress = zAddress.and(z.object({
streetName: z.string(),
streetNumber: z.string(),
}))
export type FullAddressZodType = z.infer<typeof zFullAddress>
export const zAddPetRequest = z.object({
id: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
name: z.string(),
category: zCategory.optional(),
photoUrls: z.array(z.string()),
tags: z.array(zTag).optional(),
status: z.enum([
'available',
'pending',
'sold',
'in store',
]).describe('pet status in the store').optional(),
})
export type AddPetRequestZodType = z.infer<typeof zAddPetRequest>
export const zApiResponse = z.object({
code: z.number().int().min(-2147483648, { message: 'Invalid value: Expected int32 to be >= -2147483648' }).max(2147483647, { message: 'Invalid value: Expected int32 to be <= 2147483647' }).optional(),
type: z.string().optional(),
message: z.string().optional(),
})
export type ApiResponseZodType = z.infer<typeof zApiResponse>
export const zOpenapiCategory = z.object({
id: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
name: z.string().optional(),
})
export type OpenapiCategoryZodType = z.infer<typeof zOpenapiCategory>
export const zPet = z.intersection(z.union([
z.object({
type: z.literal('dog'),
}).and(zDog),
z.object({
type: z.literal('cat'),
}).and(zCat),
]), z.object({
id: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
type: z.enum(['dog', 'cat']),
name: z.string(),
category: zOpenapiCategory.optional(),
photoUrls: z.array(z.string()),
tags: z.array(zTag).readonly().optional(),
status: z.enum([
'available',
'pending',
'sold',
]).describe('pet status in the store').optional(),
}))
export type PetZodType = z.infer<typeof zPet>
export const zCatWritable = z.object({
name: z.string().optional(),
})
export type CatWritableZodType = z.infer<typeof zCatWritable>
export const zDogWritable = z.object({
bark: z.string().optional(),
})
export type DogWritableZodType = z.infer<typeof zDogWritable>
export const zPetWritable = z.intersection(z.union([
z.object({
type: z.literal('DogWritable'),
}).and(zDogWritable),
z.object({
type: z.literal('CatWritable'),
}).and(zCatWritable),
]), z.object({
id: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).optional(),
name: z.string(),
category: zOpenapiCategory.optional(),
photoUrls: z.array(z.string()),
status: z.enum([
'available',
'pending',
'sold',
]).describe('pet status in the store').optional(),
}))
export type PetWritableZodType = z.infer<typeof zPetWritable>
/**
* to request with required page number or pagination
*/
export const zPage = z.string().describe('to request with required page number or pagination')
export type PageZodType = z.infer<typeof zPage>
/**
* to request with required page size
*/
export const zPageSize = z.string().describe('to request with required page size')
export type PageSizeZodType = z.infer<typeof zPageSize>
/**
* Pet object that needs to be added to the store
*/
export const zPet2 = zPetWritable
export type PetZodType2 = z.infer<typeof zPet2>
/**
* List of user object
*/
export const zUserArray = z.array(zUser).describe('List of user object')
export type UserArrayZodType = z.infer<typeof zUserArray>
export const zAddPetData = z.object({
body: zAddPetRequest,
path: z.never().optional(),
query: z.never().optional(),
})
export type AddPetDataZodType = z.infer<typeof zAddPetData>
/**
* Successful operation
*/
export const zAddPetResponse = zPet
export type AddPetResponseZodType = z.infer<typeof zAddPetResponse>
export const zUpdatePetData = z.object({
body: zPetWritable,
path: z.never().optional(),
query: z.never().optional(),
})
export type UpdatePetDataZodType = z.infer<typeof zUpdatePetData>
/**
* Successful operation
*/
export const zUpdatePetResponse = zPet
export type UpdatePetResponseZodType = z.infer<typeof zUpdatePetResponse>
export const zFindPetsByStatusData = z.object({
body: z.never().optional(),
path: z.never().optional(),
query: z.object({
status: z.enum([
'available',
'pending',
'sold',
]).describe('Status values that need to be considered for filter').optional(),
}).optional(),
})
export type FindPetsByStatusDataZodType = z.infer<typeof zFindPetsByStatusData>
/**
* successful operation
*/
export const zFindPetsByStatusResponse = z.array(zPet).describe('successful operation')
export type FindPetsByStatusResponseZodType = z.infer<typeof zFindPetsByStatusResponse>
export const zFindPetsByTagsData = z.object({
body: z.never().optional(),
path: z.never().optional(),
query: z.object({
tags: z.array(z.string()).describe('Tags to filter by').optional(),
page: z.string().describe('to request with required page number or pagination').optional(),
pageSize: z.string().describe('to request with required page size').optional(),
}).optional(),
})
export type FindPetsByTagsDataZodType = z.infer<typeof zFindPetsByTagsData>
/**
* successful operation
*/
export const zFindPetsByTagsResponse = z.array(zPet).describe('successful operation')
export type FindPetsByTagsResponseZodType = z.infer<typeof zFindPetsByTagsResponse>
export const zDeletePetData = z.object({
body: z.never().optional(),
path: z.object({
petId: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).describe('Pet id to delete'),
export const zErrorSchema = z.object({
error: z.object({
type: z.string(),
message: z.string(),
status: z.number().int(),
details: z.string().optional(),
}),
query: z.never().optional(),
headers: z.object({
api_key: z.string().optional(),
}).optional(),
})
export type DeletePetDataZodType = z.infer<typeof zDeletePetData>
export type ErrorSchemaZodType = z.infer<typeof zErrorSchema>
/**
* items
* PingResponse
*/
export const zDeletePetResponse = z.array(z.enum([
'TYPE1',
'TYPE2',
'TYPE3',
])).describe('items')
export type DeletePetResponseZodType = z.infer<typeof zDeletePetResponse>
export const zGetPetByIdData = z.object({
body: z.never().optional(),
path: z.object({
petId: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).describe('ID of pet to return'),
}),
query: z.never().optional(),
export const zPingResponse = z.object({
result: z.string().describe('Health check result'),
})
export type GetPetByIdDataZodType = z.infer<typeof zGetPetByIdData>
export type PingResponseZodType = z.infer<typeof zPingResponse>
/**
* successful operation
*/
export const zGetPetByIdResponse = zPet
export type GetPetByIdResponseZodType = z.infer<typeof zGetPetByIdResponse>
export const zUpdatePetWithFormData = z.object({
body: z.never().optional(),
path: z.object({
petId: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).describe('ID of pet that needs to be updated'),
}),
query: z.object({
name: z.string().describe('Name of pet that needs to be updated').optional(),
status: z.string().describe('Status of pet that needs to be updated').optional(),
}).optional(),
})
export type UpdatePetWithFormDataZodType = z.infer<typeof zUpdatePetWithFormData>
export const zUploadFileData = z.object({
body: z.string().optional(),
path: z.object({
petId: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).describe('ID of pet to update'),
}),
query: z.object({
additionalMetadata: z.string().describe('Additional Metadata').optional(),
}).optional(),
})
export type UploadFileDataZodType = z.infer<typeof zUploadFileData>
/**
* successful operation
*/
export const zUploadFileResponse = zApiResponse
export type UploadFileResponseZodType = z.infer<typeof zUploadFileResponse>
export const zGetInventoryData = z.object({
export const zGetConsoleApiPingData = z.object({
body: z.never().optional(),
path: z.never().optional(),
query: z.never().optional(),
})
export type GetInventoryDataZodType = z.infer<typeof zGetInventoryData>
export type GetConsoleApiPingDataZodType = z.infer<typeof zGetConsoleApiPingData>
/**
* successful operation
* OK
*/
export const zGetInventoryResponse = z.record(z.number().int().min(-2147483648, { message: 'Invalid value: Expected int32 to be >= -2147483648' }).max(2147483647, { message: 'Invalid value: Expected int32 to be <= 2147483647' })).describe('successful operation')
export const zGetConsoleApiPingResponse = zPingResponse
export type GetInventoryResponseZodType = z.infer<typeof zGetInventoryResponse>
export const zPlaceOrderPatchData = z.object({
body: zOrder.optional(),
path: z.never().optional(),
query: z.never().optional(),
})
export type PlaceOrderPatchDataZodType = z.infer<typeof zPlaceOrderPatchData>
/**
* successful operation
*/
export const zPlaceOrderPatchResponse = zOrder
export type PlaceOrderPatchResponseZodType = z.infer<typeof zPlaceOrderPatchResponse>
export const zPlaceOrderData = z.object({
body: zOrder.optional(),
path: z.never().optional(),
query: z.never().optional(),
})
export type PlaceOrderDataZodType = z.infer<typeof zPlaceOrderData>
/**
* successful operation
*/
export const zPlaceOrderResponse = zOrder
export type PlaceOrderResponseZodType = z.infer<typeof zPlaceOrderResponse>
export const zDeleteOrderData = z.object({
body: z.never().optional(),
path: z.object({
orderId: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).describe('ID of the order that needs to be deleted'),
}),
query: z.never().optional(),
})
export type DeleteOrderDataZodType = z.infer<typeof zDeleteOrderData>
export const zGetOrderByIdData = z.object({
body: z.never().optional(),
path: z.object({
orderId: z.coerce.bigint().min(BigInt('-9223372036854775808'), { message: 'Invalid value: Expected int64 to be >= -9223372036854775808' }).max(BigInt('9223372036854775807'), { message: 'Invalid value: Expected int64 to be <= 9223372036854775807' }).describe('ID of order that needs to be fetched'),
}),
query: z.never().optional(),
})
export type GetOrderByIdDataZodType = z.infer<typeof zGetOrderByIdData>
/**
* successful operation
*/
export const zGetOrderByIdResponse = zOrder
export type GetOrderByIdResponseZodType = z.infer<typeof zGetOrderByIdResponse>
export const zCreateUserData = z.object({
body: zUser.optional(),
path: z.never().optional(),
query: z.never().optional(),
})
export type CreateUserDataZodType = z.infer<typeof zCreateUserData>
/**
* successful operation
*/
export const zCreateUserResponse = zUser
export type CreateUserResponseZodType = z.infer<typeof zCreateUserResponse>
export const zCreateUsersWithListInputData = z.object({
body: z.array(zUser).optional(),
path: z.never().optional(),
query: z.never().optional(),
})
export type CreateUsersWithListInputDataZodType = z.infer<typeof zCreateUsersWithListInputData>
export const zCreateUsersWithListInputResponse = z.union([
zUser,
z.unknown().describe('successful operation'),
])
export type CreateUsersWithListInputResponseZodType = z.infer<typeof zCreateUsersWithListInputResponse>
export const zLoginUserData = z.object({
body: z.never().optional(),
path: z.never().optional(),
query: z.object({
username: z.string().describe('The user name for login').optional(),
password: z.string().describe('The password for login in clear text').optional(),
}).optional(),
})
export type LoginUserDataZodType = z.infer<typeof zLoginUserData>
/**
* successful operation
*/
export const zLoginUserResponse = z.string().describe('successful operation')
export type LoginUserResponseZodType = z.infer<typeof zLoginUserResponse>
export const zLogoutUserData = z.object({
body: z.never().optional(),
path: z.never().optional(),
query: z.never().optional(),
})
export type LogoutUserDataZodType = z.infer<typeof zLogoutUserData>
export const zDeleteUserData = z.object({
body: z.never().optional(),
path: z.object({
username: z.string().describe('The name that needs to be deleted'),
}),
query: z.never().optional(),
})
export type DeleteUserDataZodType = z.infer<typeof zDeleteUserData>
export const zGetUserByNameData = z.object({
body: z.never().optional(),
path: z.object({
username: z.string().describe('The name that needs to be fetched. Use user1 for testing. '),
}),
query: z.never().optional(),
})
export type GetUserByNameDataZodType = z.infer<typeof zGetUserByNameData>
/**
* successful operation
*/
export const zGetUserByNameResponse = zUser
export type GetUserByNameResponseZodType = z.infer<typeof zGetUserByNameResponse>
export const zUpdateUserData = z.object({
body: zUser.optional(),
path: z.object({
username: z.string().describe('name that need to be deleted'),
}),
query: z.never().optional(),
})
export type UpdateUserDataZodType = z.infer<typeof zUpdateUserData>
export type GetConsoleApiPingResponseZodType = z.infer<typeof zGetConsoleApiPingResponse>

File diff suppressed because it is too large Load Diff

View File

@ -1,985 +0,0 @@
openapi: 3.1.0
info:
title: Swagger Petstore - OpenAPI 3.0
description: |-
This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about
Swagger at [https://swagger.io](https://swagger.io). In the third iteration of the pet store, we've switched to the design first approach!
You can now help us improve the API whether it's by making changes to the definition itself or to the code.
That way, with time, we can improve the API in general, and expose some of the new features in OAS3.
Some useful links:
- [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)
- [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)
termsOfService: http://swagger.io/terms/
contact:
email: apiteam@swagger.io
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: 1.0.11
externalDocs:
description: Find out more about Swagger
url: http://swagger.io
servers:
- url: https://petstore3.swagger.io/api/v3
tags:
- name: pet
description: Everything about your Pets
externalDocs:
description: Find out more
url: http://swagger.io
- name: store
description: Access to Petstore orders
externalDocs:
description: Find out more about our store
url: http://swagger.io
- name: user
description: Operations about user
paths:
/pet:
put:
tags:
- pet
summary: Update an existing pet
description: Update an existing pet by Id
operationId: updatePet
requestBody:
description: Update an existent pet in the store
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Pet'
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid ID supplied
'404':
description: Pet not found
'405':
description: Validation exception
security:
- petstore_auth:
- write:pets
- read:pets
post:
tags:
- pet
summary: Add a new pet to the store
description: Add a new pet to the store
operationId: addPet
requestBody:
description: Create a new pet in the store
content:
application/json:
schema:
$ref: '#/components/schemas/AddPetRequest'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Pet'
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
'405':
description: Invalid input
$ref: '#/components/responses/PetNotFound'
security:
- petstore_auth:
- write:pets
- read:pets
/pet/findByStatus:
get:
tags:
- pet
summary: Finds Pets by status
description: Multiple status values can be provided with comma separated strings
operationId: findPetsByStatus
parameters:
- name: status
in: query
description: Status values that need to be considered for filter
required: false
explode: true
schema:
type: string
default: available
enum:
- available
- pending
- sold
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid status value
security:
- petstore_auth:
- write:pets
- read:pets
/pet/findByTags:
get:
tags:
- pet
summary: Finds Pets by tags
description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
operationId: findPetsByTags
parameters:
- name: tags
in: query
description: Tags to filter by
required: false
explode: true
schema:
type: array
items:
type: string
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/pageSize'
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid tag value
security:
- petstore_auth:
- write:pets
- read:pets
/pet/{petId}:
get:
tags:
- pet
summary: Find pet by ID
description: Returns a single pet
operationId: getPetById
parameters:
- name: petId
in: path
description: ID of pet to return
required: true
schema:
type: integer
format: int64
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid ID supplied
'404':
description: Pet not found
security:
- api_key: []
- petstore_auth:
- write:pets
- read:pets
post:
tags:
- pet
summary: Updates a pet in the store with form data
description: ''
operationId: updatePetWithForm
parameters:
- name: petId
in: path
description: ID of pet that needs to be updated
required: true
schema:
type: integer
format: int64
- name: name
in: query
description: Name of pet that needs to be updated
schema:
type: string
- name: status
in: query
description: Status of pet that needs to be updated
schema:
type: string
responses:
'405':
description: Invalid input
security:
- petstore_auth:
- write:pets
- read:pets
delete:
tags:
- pet
summary: Deletes a pet
description: delete a pet
operationId: deletePet
parameters:
- name: api_key
in: header
description: ''
required: false
schema:
type: string
- name: petId
in: path
description: Pet id to delete
required: true
schema:
type: integer
format: int64
responses:
'200':
description: items
content:
application/json:
schema:
type: array
items:
type: string
enum:
- TYPE1
- TYPE2
- TYPE3
'400':
description: Invalid pet value
security:
- petstore_auth:
- write:pets
- read:pets
/pet/{petId}/uploadImage:
post:
tags:
- pet
summary: uploads an image
description: ''
operationId: uploadFile
parameters:
- name: petId
in: path
description: ID of pet to update
required: true
schema:
type: integer
format: int64
- name: additionalMetadata
in: query
description: Additional Metadata
required: false
schema:
type: string
requestBody:
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
security:
- petstore_auth:
- write:pets
- read:pets
/store/inventory:
get:
tags:
- store
summary: Returns pet inventories by status
description: Returns a map of status codes to quantities
operationId: getInventory
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
additionalProperties:
type: integer
format: int32
security:
- api_key: []
/store/order:
post:
tags:
- store
summary: Place an order for a pet
description: Place a new order in the store
operationId: placeOrder
requestBody:
content:
application/json:
schema:
description: Order description
pattern: '^[a-zA-Z0-9]{1,13}$'
$ref: '#/components/schemas/Order'
application/xml:
schema:
$ref: '#/components/schemas/Order'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Order'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'405':
description: Invalid input
patch:
tags:
- store
summary: Place an order for a pet with patch
description: Place a new order in the store with patch
operationId: placeOrderPatch
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
application/xml:
schema:
$ref: '#/components/schemas/Order'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Order'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'405':
description: Invalid input
/store/order/{orderId}:
get:
tags:
- store
summary: Find purchase order by ID
description: For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions.
operationId: getOrderById
parameters:
- name: orderId
in: path
description: ID of order that needs to be fetched
required: true
schema:
type: integer
format: int64
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
application/xml:
schema:
$ref: '#/components/schemas/Order'
'400':
description: Invalid ID supplied
'404':
description: Order not found
delete:
tags:
- store
summary: Delete purchase order by ID
description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
operationId: deleteOrder
parameters:
- name: orderId
in: path
description: ID of the order that needs to be deleted
required: true
schema:
type: integer
format: int64
responses:
'400':
description: Invalid ID supplied
'404':
description: Order not found
/user:
post:
tags:
- user
summary: Create user
description: This can only be done by the logged in user.
operationId: createUser
requestBody:
description: Created user object
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/xml:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
responses:
default:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/xml:
schema:
$ref: '#/components/schemas/User'
/user/createWithList:
post:
tags:
- user
summary: Creates list of users with given input array
description: Creates list of users with given input array
operationId: createUsersWithListInput
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/xml:
schema:
$ref: '#/components/schemas/User'
default:
description: successful operation
/user/login:
get:
tags:
- user
summary: Logs user into the system
description: ''
operationId: loginUser
parameters:
- name: username
in: query
description: The user name for login
required: false
schema:
type: string
- name: password
in: query
description: The password for login in clear text
required: false
schema:
type: string
responses:
'200':
description: successful operation
headers:
X-Rate-Limit:
description: calls per hour allowed by the user
schema:
type: integer
format: int32
X-Expires-After:
description: date in UTC when token expires
schema:
type: string
format: date-time
content:
application/xml:
schema:
type: string
application/json:
schema:
type: string
'400':
description: Invalid username/password supplied
/user/logout:
get:
tags:
- user
summary: Logs out current logged in user session
description: ''
operationId: logoutUser
parameters: []
responses:
default:
description: successful operation
/user/{username}:
get:
tags:
- user
summary: Get user by user name
description: ''
operationId: getUserByName
parameters:
- name: username
in: path
description: 'The name that needs to be fetched. Use user1 for testing. '
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/xml:
schema:
$ref: '#/components/schemas/User'
'400':
description: Invalid username supplied
'404':
description: User not found
put:
tags:
- user
summary: Update user
description: This can only be done by the logged in user.
operationId: updateUser
parameters:
- name: username
in: path
description: name that need to be deleted
required: true
schema:
type: string
requestBody:
description: Update an existent user in the store
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/xml:
schema:
$ref: '#/components/schemas/User'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/User'
responses:
default:
description: successful operation
delete:
tags:
- user
summary: Delete user
description: This can only be done by the logged in user.
operationId: deleteUser
parameters:
- name: username
in: path
description: The name that needs to be deleted
required: true
schema:
type: string
nullable: true
responses:
'400':
description: Invalid username supplied
'404':
description: User not found
components:
schemas:
Order:
type: object
properties:
id:
type: integer
format: int64
example: 10
petId:
type: integer
format: int64
example: 198772
quantity:
type: integer
format: int32
example: 7
shipDate:
type: string
format: date-time
status:
description: Order Status
anyOf:
- type: string
const: ''
- type: string
format: email
http_status:
type: number
description: HTTP Status
example: 200
enum:
- 200
- 400
- 500
complete:
type: boolean
xml:
name: order
Customer:
type: object
properties:
id:
type: integer
format: int64
example: 100000
username:
type: string
example: fehguy
address:
type: array
xml:
name: addresses
wrapped: true
items:
$ref: '#/components/schemas/Address'
xml:
name: customer
HappyCustomer:
allOf:
- $ref: '#/components/schemas/Customer'
- type: object
properties:
isHappy:
type: boolean
const: true
UnhappyCustomer:
allOf:
- $ref: '#/components/schemas/Customer'
- type: object
properties:
reasonToBeUnhappy:
type: string
isHappy:
type: boolean
const: false
Address:
type: object
properties:
streetName:
type: string
streetNumber:
type: string
city:
type: string
example: Palo Alto
state:
type: string
example: CA
zip:
type: string
example: '94301'
xml:
name: address
Category:
type: object
properties:
id:
type: integer
format: int64
example: 1
name:
type: string
example: Dogs
xml:
name: category
User:
type: object
properties:
id:
type: integer
format: int64
example: 10
username:
type: string
example: theUser
firstName:
type: string
example: John
lastName:
type: string
example: James
email:
type: string
example: john@email.com
password:
type: string
example: '12345'
phone:
type: string
example: '12345'
userStatus:
type: integer
description: User Status
format: int32
example: 1
xml:
name: user
Tag:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
xml:
name: tag
Pet:
required:
- name
- photoUrls
- type
type: object
oneOf:
- $ref: '#/components/schemas/Dog'
- $ref: '#/components/schemas/Cat'
discriminator:
propertyName: type
mapping:
dog: '#/components/schemas/Dog'
cat: '#/components/schemas/Cat'
properties:
id:
type: integer
format: int64
example: 10
type:
minLength: 1
enum:
- dog
- cat
type: string
readOnly: true
name:
type: string
example: doggie
category:
$ref: 'https://petstore3.swagger.io/api/v3/openapi.json#/components/schemas/Category'
photoUrls:
type: array
xml:
wrapped: true
items:
type: string
xml:
name: photoUrl
tags:
type: array
xml:
wrapped: true
readOnly: true
items:
$ref: '#/components/schemas/Tag'
status:
type: string
description: pet status in the store
enum:
- available
- pending
- sold
xml:
name: pet
Cat:
type: object
# all other properties specific to a `Cat`
properties:
type:
minLength: 1
type: string
readOnly: true
name:
type: string
Dog:
type: object
# all other properties specific to a `Dog`
properties:
type:
minLength: 1
type: string
readOnly: true
bark:
type: string
FullAddress:
properties:
streetName:
type: string
allOf:
- $ref: '#/components/schemas/Address'
required:
- streetName
- streetNumber
AddPetRequest:
required:
- name
- photoUrls
type: object
properties:
id:
type: integer
format: int64
example: 10
name:
type: string
example: doggie
category:
$ref: '#/components/schemas/Category'
photoUrls:
type: array
xml:
wrapped: true
items:
type: string
xml:
name: photoUrl
tags:
type: array
xml:
wrapped: true
items:
$ref: '#/components/schemas/Tag'
status:
type: string
description: pet status in the store
enum:
- available
- pending
- sold
- in store
xml:
name: pet
ApiResponse:
type: object
properties:
code:
type: integer
format: int32
type:
type: string
message:
type: string
xml:
name: '##default'
requestBodies:
Pet:
description: Pet object that needs to be added to the store
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
UserArray:
description: List of user object
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
securitySchemes:
petstore_auth:
type: oauth2
flows:
implicit:
authorizationUrl: https://petstore3.swagger.io/oauth/authorize
scopes:
write:pets: modify pets in your account
read:pets: read your pets
api_key:
type: apiKey
name: api_key
in: header
parameters:
page:
description: to request with required page number or pagination
in: query
name: page
required: false
schema:
type: string
pageSize:
description: to request with required page size
in: query
name: pageSize
required: false
schema:
type: string
responses:
PetNotFound:
content:
application/json:
schema:
properties:
code:
format: int32
type: integer
message:
type: string
description: Pet not found

View File

@ -3,7 +3,7 @@ import { defineConfig } from '@hey-api/openapi-ts'
import { defineConfig as defineOrpcConfig } from './plugins/hey-api-orpc/config'
export default defineConfig({
input: './open-api/petStore.yaml',
input: '../open-api/fastopenapi.json',
output: {
indexFile: false,
path: './gen',