# 
# OpenAPI Petstore
# 
# 
# This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
# 
# Version: 1.0.0
# 
# Generated by OpenAPI Generator: https://openapi-generator.tech

# package petstore

# pet_api



input AddPetInput {
    # Pet object that needs to be added to the store
    body: PetInput
}

input DeletePetInput {
    # Pet id to delete
    petId: Int!, 
    
    apiKey: String!
}

input UpdatePetInput {
    # Pet object that needs to be added to the store
    body: PetInput
}

input UpdatePetWithFormInput {
    # ID of pet that needs to be updated
    petId: Int!, 
    # Updated name of the pet
    name: String!, 
    # Updated status of the pet
    status: String!
}

input UploadFileInput {
    # ID of pet to update
    petId: Int!, 
    # Additional data to pass to server
    additionalMetadata: String!, 
    # file to upload
    file: String!
}

type Mutation {
  # Add a new pet to the store
  # @param Pet body Pet object that needs to be added to the store
  # @return [Boolean]
  AddPet(input: AddPetInput!): Boolean
  # Deletes a pet
  # @param Int! petId Pet id to delete
  # @param String! apiKey 
  # @return [Boolean]
  DeletePet(input: DeletePetInput!): Boolean
  # Update an existing pet
  # @param Pet body Pet object that needs to be added to the store
  # @return [Boolean]
  UpdatePet(input: UpdatePetInput!): Boolean
  # Updates a pet in the store with form data
  # @param Int! petId ID of pet that needs to be updated
  # @param String! name Updated name of the pet
  # @param String! status Updated status of the pet
  # @return [Boolean]
  UpdatePetWithForm(input: UpdatePetWithFormInput!): Boolean
  # uploads an image
  # @param Int! petId ID of pet to update
  # @param String! additionalMetadata Additional data to pass to server
  # @param String! file file to upload
  # @return [ApiResponse]
  UploadFile(input: UploadFileInput!): ApiResponse
}

type Query {
  # Finds Pets by status
  # Multiple status values can be provided with comma separated strings
  # @param String! status Status values that need to be considered for filter
  # @return [Pet]
  FindPetsByStatus(status: String!): Pet
  # Finds Pets by tags
  # Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
  # @param String! tags Tags to filter by
  # @return [Pet]
  FindPetsByTags(tags: String!): Pet
  # Find pet by ID
  # Returns a single pet
  # @param Int! petId ID of pet to return
  # @return [Pet]
  GetPetById(petId: Int!): Pet
}

